Пример #1
0
    def parse(tokens):
        position = tokens.peek().position

        if tokens.peek() != '(':
            return None
        tokens.expect('(')

        childExpression = LogicalExpression.parse(tokens)
        if childExpression is None:
            raise error.SyntaxError(position, 'Expected expression, got %r' % tokens.peek())

        if tokens.peek() != ')':
            raise error.SyntaxError, "Expected ')', got %r" % tokens.peek()
        tokens.getNext()

        return ParenthExpression(childExpression)
Пример #2
0
 def testBadParse(self):
     tokens = lex("1 and ")
     self.failUnlessRaises(
         error.SyntaxError,
         lambda: LogicalExpression.parse(tokens)
     )
Пример #3
0
 def testParseOr(self):
     le = LogicalExpression.parse(lex("1 or 1"))
     self.failUnless(isinstance(le, LogicalExpression))