/[navidoc]/navidoc/navidoc/parser.py
ViewVC logotype

Diff of /navidoc/navidoc/parser.py

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

revision 1.3 by humppake, Thu Mar 27 10:02:40 2003 UTC revision 1.4 by humppake, Thu Mar 27 11:56:21 2003 UTC
# Line 28  Line 28 
28  __docformat__ = 'reStructuredText'  __docformat__ = 'reStructuredText'
29    
30  #from __future__ import nested_scopes  #from __future__ import nested_scopes
31  import re, os, random, string  import re, random, string
32    
33  import navidoc.mp, navidoc.link  import navidoc.mp, navidoc.link
 from navidoc.mp.core import MetapostException  
34    
35  import config  import config
36    
37  dbg = config.dbg.shorthand('parser')  dbg = config.dbg.shorthand('parser')
38    
39  element_typs = {}  element_types = {}
40  link_types = {}  link_types = {}
41    
42  def __init__():  def __init__():
# Line 47  def __init__(): Line 46  def __init__():
46      #XXX: Fix key-name conflicts      #XXX: Fix key-name conflicts
47      element_types.update(keys4classes(navidoc.mp))      element_types.update(keys4classes(navidoc.mp))
48      for module in dir(navidoc.mp):      for module in dir(navidoc.mp):
49          module = getattr(root_module, module)          module = getattr(navidoc.mp, module)
50          element_types.update(keys4classes(module))          element_types.update(keys4classes(module))
51    
52      link_types.update(keys4classes(navidoc.link))      link_types.update(keys4classes(navidoc.link))
53      for module in dir(navidoc.link):      for module in dir(navidoc.link):
54          module = getattr(root_module, module)          module = getattr(navidoc.link, module)
55          link_types.update(keys4classes(module))          link_types.update(keys4classes(module))
56    
57  def keys4classes(module):  def keys4classes(module):
# Line 64  def keys4classes(module): Line 63  def keys4classes(module):
63      for elements in dir(module):      for elements in dir(module):
64          for element in elements:          for element in elements:
65              element = getattr(module, element)              element = getattr(module, element)
66              if hassattr(element, "key") \              if hasattr(element, "key") \
67                     and type(element.key) == type(''):                     and type(element.key) == type(''):
68                  d[element.key] = element                  d[element.key] = element
69      return d      return d
70    
71  class ParserException(Exception):  class ParserException(Exception):
72      def __init__(self, value):      def __init__(self, value):
73            Exception.__init__()
74          self.value = value          self.value = value
75      def __str__(self):      def __str__(self):
76          return self.value          return self.value
# Line 137  class Element: Line 137  class Element:
137      """      """
138      def __init__(self, list):      def __init__(self, list):
139          self.list = list          self.list = list
         self.link = None  
     def get_key(self):  
         return self.key  
140    
141  class NamedElement (Element):  class NamedElement (Element):
142      """      """
# Line 155  class NamedElement (Element): Line 152  class NamedElement (Element):
152              if len(link):              if len(link):
153                  self.link = link_types[el[0]](link[0][0])                  self.link = link_types[el[0]](link[0][0])
154              else:              else:
155                  self.link = self.defaultlink()                  self.link = self.defaultlink(link[0][0])
156          else:          else:
157              self.list.add_sub_element(self.name, el)              self.list.add_sub_element(self.name, el)
158      def defaultlink(self):      def defaultlink(self, link):
159          return navidoc.link.Link(link[0][0])          return navidoc.link.Link(link)
160    
161  class ElementList:  class ElementList:
162      """      """

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

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