Changeset 04f6a4 in git
- Timestamp:
- Jun 15, 2005, 12:37:39 PM (18 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 16678227fe277530e8904f607ce8e6128f93df2a
- Parents:
- c0124632d28789a5766a1280af3eab471d401852
- Location:
- modules/openmathserver
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
modules/openmathserver/cd.py
rc012463 r04f6a4 6 6 self.base=base 7 7 def __eq__(self, other): 8 return (self.name==other.name) and (self.base==other.base) 8 try: 9 return (self.name==other.name) and (self.base==other.base) 10 except: 11 return False 9 12 def __hash__(self): 10 13 return hash((self.name,self.base)) -
modules/openmathserver/objects.py
rc012463 r04f6a4 148 148 self.name=name 149 149 def __eq__(self, other): 150 return bool(other.name==self.name and self.cd==other.cd) 150 try: 151 return bool(other.name==self.name and self.cd==other.cd) 152 except: 153 return False 151 154 def __str__(self): 152 155 return "OMS("+self.name+", "+self.cd.name + ")" … … 203 206 def getXMLattributes(self): 204 207 return [XMLattribute("dec",str(self.value))] 205 208 class OMref(OMObjectBase): 209 def __init__(self, ref): 210 self.ref=ref 211 def evaluate(self, context): 212 return context.evaluate(self.ref) 213 def XMLencode(self, context): 214 "FIXME: maybe it should also be able to encode as reference" 215 return context.XMLEncodeObject(self.ref) 206 216 if __name__=='__main__': 207 217 from context import * -
modules/openmathserver/omexceptions.py
rc012463 r04f6a4 9 9 class UnsupportedOperationError(Exception): 10 10 pass 11 class UnresolvedReference(Exception): 12 pass -
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.