/[avr-libc]/avr-libc/xml/Desc-parser.py
ViewVC logotype

Diff of /avr-libc/xml/Desc-parser.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by arcanum, Tue Nov 2 18:16:07 2004 UTC revision 1.3 by joerg_wunsch, Fri Oct 21 20:55:19 2005 UTC
# Line 80  class MemorySizes (XML_Mixin): Line 80  class MemorySizes (XML_Mixin):
80  class Vector (XML_Mixin):  class Vector (XML_Mixin):
81      children = {      children = {
82          'description': PCData,          'description': PCData,
83          'sig_name': PCData          'sig_name': PCData,
84            'alt_name': PCData
85          }          }
86        def add_child (self, name, obj):
87            if name == "alt_name":
88                try:
89                    x = getattr (self, name)
90                    x.data.append(obj.data)
91                    setattr (self, name, x)
92                except AttributeError:
93                    x = obj.data
94                    obj.data = [x]
95                    self.xml_members.append (name)
96                    setattr (self, name, obj)
97            else:
98                self.xml_members.append (name)
99                setattr (self, name, obj)
100    
101    
102  class Interrupts (dict, XML_Mixin):  class Interrupts (dict, XML_Mixin):
103      children = {      children = {
# Line 130  class IORegisterDict (dict, XML_Mixin): Line 146  class IORegisterDict (dict, XML_Mixin):
146          XML_Mixin.__init__ (self, attrs)          XML_Mixin.__init__ (self, attrs)
147    
148      def add_child (self, name, obj):      def add_child (self, name, obj):
149          # Use the IORegister 'addr' attr as the key for the child object.          # Use the IORegister 'name' attr as the key for the child object.
150          if self.has_key (obj.addr):          if self.has_key (obj.name):
151              raise 'Duplicate io register entry', obj              raise 'Duplicate io register entry', obj
152          self[obj.addr] = obj          self[obj.name] = obj
153    
154  class BootMode (XML_Mixin):  class BootMode (XML_Mixin):
155      pass      pass
# Line 214  class DescHandler (ContentHandler): Line 230  class DescHandler (ContentHandler):
230          self.get_curr_obj().characters (ch)          self.get_curr_obj().characters (ch)
231    
232      def endDocument (self):      def endDocument (self):
233          print self.dev          #print self.dev
234            pass
235    
236  if __name__ == '__main__':  if __name__ == '__main__':
237      parser = make_parser ()      parser = make_parser ()
# Line 222  if __name__ == '__main__': Line 239  if __name__ == '__main__':
239      handler = DescHandler ()      handler = DescHandler ()
240      parser.setContentHandler (handler)      parser.setContentHandler (handler)
241    
242      parser.parse (open ('desc-90s1200.xml'))      if len(sys.argv) > 1:
243            parser.parse (open (sys.argv[1]))
244        else:
245            parser.parse (open ('desc-90s1200.xml'))
246    
247        l = parser.getContentHandler().dev.interrupts.keys()
248        l.sort(lambda x, y: cmp(int(x), int(y)))
249        for key in l:
250            ele = parser.getContentHandler().dev.interrupts[key]
251            print "/* " + ele.description.data + " */"
252            print "#define " + ele.sig_name.data + "\t_VECTOR(" + key + ")"
253            for x in ele.alt_name.data:
254                print "#define " + x + "\t_VECTOR(" + key + ")"
255            print ""

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26