Esempio n. 1
0
 def get_boolean_expression(self):
     tok = self.lex.get_next_token()
     if tok.get_tok_type() == TokenType.EQ_TOK:
         self.match(tok, TokenType.EQ_TOK)
         rel_op = RelativeOperator.EQ_OP
     elif tok.get_tok_type() == TokenType.NE_TOK:
         self.match(tok, TokenType.NE_TOK)
         rel_op = RelativeOperator.NE_OP
     elif tok.get_tok_type() == TokenType.LT_TOK:
         self.match(tok, TokenType.LT_TOK)
         rel_op = RelativeOperator.LT_OP
     elif tok.get_tok_type() == TokenType.GT_TOK:
         self.match(tok, TokenType.GT_TOK)
         rel_op = RelativeOperator.GT_OP
     elif tok.get_tok_type() == TokenType.LE_TOK:
         self.match(tok, TokenType.LE_TOK)
         rel_op = RelativeOperator.LE_OP
     elif tok.get_tok_type() == TokenType.GE_TOK:
         self.match(tok, TokenType.GE_TOK)
         rel_op = RelativeOperator.GE_OP
     else:
         raise Exceptions.ParserError(Enumerated.RelativeOperator, tok)
     expr1 = self.get_expression()
     expr2 = self.get_expression()
     return Expression.BooleanExpression(rel_op, expr1, expr2)
 def Expr(self, p):
     return Expression.BooleanExpression(p[0])