code: def p_expr_trig(p):
      
      p[0] = make_builtin(p.lineno(1), p[1],
                          make_typecast(TYPE.float_, p[2], p.lineno(1)),
                          {'SIN': math.sin,
                           'COS': math.cos,
                           'TAN': math.tan,
                           'ASN': math.asin,
                           'ACS': math.acos,
                           'ATN': math.atan,
                           'LN': lambda y: math.log(y, math.exp(1)),  # LN(x)
                           'EXP': math.exp,
                           'SQR': math.sqrt
                           }[p[1]])
docs: bexpr : math_fn bexpr %prec UMINUS