@staticmethod
def p_expression_binop(p):
    """expression : expression '+' expression
                      | expression '-' expression
                      | expression '*' expression
                      | expression '/' expression
                      | expression '|' expression
                      | expression LSHIFT expression
                      | expression RSHIFT expression"""
    if p[2] == '+':
        p[0] = p[1] + p[3]
    elif p[2] == '-':
        p[0] = p[1] - p[3]
    elif p[2] == '*':
        p[0] = p[1] * p[3]
    elif p[2] == '/':
        p[0] = p[1] / p[3]
    elif p[2] == '<<':
        p[0] = p[1] << p[3]
    elif p[2] == '>>':
        p[0] = p[1] >> p[3]
    elif p[2] == '|':
        p[0] = p[1] | p[3]
