Esempio n. 1
0
 def ParseFor(self,c):
     v = variable.variable()
     if self.t.checkNext() != "(":
         self.error("error for (")
     else:
         self.t.getNext()
     if self.t.checkNext() != ";":
         self.Expression(v, ";")
         l = len(v.x.code.c)
     else:
         self.t.getNext()
     if self.t.checkNext() != ";":
         self.Expression(v, ";")
         oc = code.jrf()
         v.pushcode(oc)
         b = len(v.x.code.c)
     else:
         self.t.getNext()
     x = variable.variable()
     if self.t.checkNext() != ")":
         self.Expression(x, ")")
     else:
         self.t.getNext()
     self.Statement(v)
     if x.x.code:
         v.x.code.c += x.x.code.c
     v.pushcode(code.jr(l-len(v.x.code.c)-1))
     if oc:
         oc.j = len(v.x.code.c)-b
     c.x.code.c += v.x.code.c
Esempio n. 2
0
 def ParseIf(self,c):
     v = variable.variable()
     if self.t.checkNext() != "(":
         self.error("error if (")
     else:
         self.t.getNext()
         self.Expression(v, ")")
     if v.x.code:
         oc = code.jrf()
         v.pushcode(oc)
     b = len(v.x.code.c)
     self.Statement(v)
     if oc:
         oc.j = len(v.x.code.c) - b
     c.x.code.c += v.x.code.c