Пример #1
0
def p_logical_or_expression(p):
    """logical_or_expression : logical_and_expression
                             | logical_or_expression LOGICALOR logical_and_expression
    """
    if len(p) == 2:
        p[0] = p[1]
    else:
        p[0] = asts.BinOp(p[1], p[2], p[3])
Пример #2
0
def p_logical_and_expression(p):
    """logical_and_expression : equality_expression
                              | logical_and_expression LOGICALAND equality_expression
    """
    if len(p) == 2:
        p[0] = p[1]
    else:
        p[0] = asts.BinOp(p[1], p[2], p[3])
Пример #3
0
def p_pow_expression(p):
    """pow_expression : primary_expression
                      | primary_expression POW pow_expression
    """
    if len(p) == 2:
        p[0] = p[1]
    else:
        p[0] = asts.BinOp(p[1], p[2], p[3])
Пример #4
0
def p_additive_expression(p):
    """additive_expression : multiplicative_expression
                    | additive_expression PLUS multiplicative_expression
                    | additive_expression MINUS multiplicative_expression
    """
    if len(p) == 2:
        p[0] = p[1]
    else:
        p[0] = asts.BinOp(p[1], p[2], p[3])
Пример #5
0
def p_equality_expression(p):
    """equality_expression : relational_expression
                           | equality_expression EQUALTO relational_expression
                           | equality_expression NOTEQUALTO relational_expression           
    """
    if len(p) == 2:
        p[0] = p[1]
    else:
        p[0] = asts.BinOp(p[1], p[2], p[3])
Пример #6
0
def p_multiplicative_expression(p):
    """multiplicative_expression : cast_expression
                                 | multiplicative_expression TIMES cast_expression
                                 | multiplicative_expression DIVIDE cast_expression
                                 | multiplicative_expression MODULO cast_expression
    """
    if len(p) == 2:
        p[0] = p[1]
    else:
        p[0] = asts.BinOp(p[1], p[2], p[3])
Пример #7
0
def p_relational_expression(p):
    """relational_expression : additive_expression
                             | relational_expression GREATER additive_expression
                             | relational_expression GREATEREQ additive_expression
                             | relational_expression LESS additive_expression
                             | relational_expression LESSEQ additive_expression
    """
    if len(p) == 2:
        p[0] = p[1]
    else:
        p[0] = asts.BinOp(p[1], p[2], p[3])