def p_d_expression_binop(t): '''d_expression : d_expression PLUS d_expression | d_expression MINUS d_expression | d_expression TIMES d_expression | i_expression D i_expression | i_expression Q i_expression''' try: if t[2] == '+' : t[0] = t[1] + t[3] elif t[2] == '-' : t[0] = t[1] - t[3] elif t[2] == '*': t[0] = t[1] * t[3] elif t[2] == 'd': t[0] = t[1] ** d(t[3]) elif t[2] == 'q': t[0] = t[1] ** q(t[3]) except TypeError as te: error_expression_invalid(threading.currentThread().expr,MSG_ERROR_PLY_TYPE + "(%s)" % str(te))
def p_expression_ud(t): 'd_expression : D i_expression %prec UD' t[0] = d(t[2])