Пример #1
0
    def parse(tokens):
        from ast.multiplyexpression import MultiplyExpression
        pos = tokens.getPosition()
        operation = None

        expr = MultiplyExpression.parse(tokens)
        if expr is None:
            return None

        while True:
            peek = tokens.peek()
            if peek in lexer.AddOperators:
                tokens.getNext()
                rhs = MultiplyExpression.parse(tokens)
                if rhs is None:
                    raise SyntaxError, 'Expected expression, got %r' % tokens.peek()

                expr = AddExpression(expr, rhs, peek)
            else:
                return expr
Пример #2
0
 def testMod(self):
     tokens = lex("5 % 4")
     result = MultiplyExpression.parse(tokens)
     self.failUnless(isinstance(result, MultiplyExpression), repr(result))