コード例 #1
0
 def minusEqStatement(self, ident):
     opr = self.next()
     self.consume()
     opr.value = '='
     root = Tree(opr)
     expr = self.expression()
     opr.value = '-'
     adder = Tree(opr)
     adder.addChildren(ident, expr)
     root.addChildren(ident, adder)
     return root
コード例 #2
0
 def forIndexExpression(self):
     if (self.match('(')):
         self.consume()
         ret = self.forIndexExpression()
         self.expect(')')
         return ret
     ident = self.identifier()
     if (self.match('=')):
         root = Tree(self.next())
         self.consume()
         expr = self.expression()
         root.addChildren(ident, expr)
         return root
     else:
         return ident
コード例 #3
0
 def ifStatement(self):
     root = self.expect(Token.TOK_IF)
     test = self.expression()
     self.statementSeperator()
     trueblock = self.statementList()
     root.addChildren(test, trueblock)
     while (self.match(Token.TOK_ELSEIF)):
         elseif = Tree(self.next())
         self.consume()
         test = self.expression()
         block = self.statementList()
         elseif.addChildren(test, block)
         root.addChild(elseif)
     if (self.match(Token.TOK_ELSE)):
         elseblk = Tree(self.next())
         self.consume()
         block = self.statementList()
         elseblk.addChild(block)
         root.addChild(elseblk)
     self.expect(Token.TOK_END, " IF block")
     return root
コード例 #4
0
 def switchStatement(self):
     root = self.expect(Token.TOK_SWITCH)
     swexpr = self.expression()
     root.addChild(swexpr)
     self.flushSeperators()
     while (self.match(Token.TOK_CASE)):
         caseblock = Tree(self.next())
     self.consume()
     csexpr = self.expression()
     self.statementSeperator()
     block = self.statementList()
     caseblock.addChildren(csexpr, block)
     root.addChild(caseblock)
     if (self.match(Token.TOK_OTHERWISE)):
         otherwise = Tree(self.next())
         self.consume()
         self.statementSeperator()
         block = self.statementList()
         otherwise.addChild(block)
         root.addChild(otherwise)
     self.expect(Token.TOK_END, " SWITCH block")
     return root