Changeset 04f6a4 in git for modules/openmathserver/omxmlreader.py
- Timestamp:
- Jun 15, 2005, 12:37:39 PM (18 years ago)
- Branches:
- (u'spielwiese', '91e5db82acc17434e4062bcfa44e6efa7d41fd30')
- Children:
- 16678227fe277530e8904f607ce8e6128f93df2a
- Parents:
- c0124632d28789a5766a1280af3eab471d401852
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/openmathserver/omxmlreader.py
rc012463 r04f6a4 12 12 from cd import * 13 13 from exceptions import * 14 from omexceptions import * 14 15 def readFile(input_file_name): 15 16 docstream = open(input_file_name) … … 43 44 class OMFromXMLBuilder: 44 45 def buildFromNode(self, node): 46 erg=None 45 47 if (node.nodeName=="OMI"): 46 48 content=get_text_in_children(node) 47 returnOMint(content)49 erg=OMint(content) 48 50 if (node.nodeName=="OMV"): 49 51 name=node.getAttribute("name") #node.attributes["name"] 50 52 #print dir(name) 51 returnOMvar(name)53 erg= OMvar(name) 52 54 if (node.nodeName=="OMS"): 53 55 if node.hasAttribute("cdbase"): … … 65 67 else: 66 68 cd=OMcd(cdname,cdbase) 67 returnOMsymbol(name,cd)69 erg=OMsymbol(name,cd) 68 70 if (node.nodeName=="OMA"): 69 71 children=[self.buildFromNode(c) for c in node.childNodes] 70 returnOMapplication(children[0],children[1:])72 erg= OMapplication(children[0],children[1:]) 71 73 if (node.nodeName=="OMBIND"): 72 74 children=[self.buildFromNode(c) for c in node.childNodes] 73 returnOMbinding(children[0],children[1:-1],children[-1])75 erg= OMbinding(children[0],children[1:-1],children[-1]) 74 76 if (node.nodeName=="OMF"): 75 77 if (node.hasAttribute("dec")): … … 77 79 else: 78 80 raise NotImplementedError 79 return OMfloat(value) 80 81 raise NotImplementedError 81 erg=OMfloat(value) 82 if (node.nodeName=="OMR"): 83 if node.hasAttribute("xref"): 84 erg=OMref(node.getAttribute("xref")) 85 self.refs.append(erg) 86 else: 87 raise UnresolvedReference 88 if None==erg: 89 raise NotImplementedError 90 else: 91 if node.hasAttribute("id"): 92 id=node.getAttribute("id") 93 self.ids[id]=erg 94 return erg 95 def __init__(self): 96 self.refs=[] 97 self.ids={} 82 98 def build(self, root): 83 99 remove_white_space(root) 84 return self.buildFromNode(root) 100 erg=self.buildFromNode(root) 101 for r in self.refs: 102 r.ref=self.ids[r.ref] 103 return erg 85 104 #TODO: handle hex floats 86 105 #TODO: handle floats
Note: See TracChangeset
for help on using the changeset viewer.