def construct_func_expr(n):
op = n[<NUM_LIT:0>]<EOL>if op.startswith('<STR_LIT:_>') and op.endswith('<STR_LIT:_>'):<EOL><INDENT>op = op.strip('<STR_LIT:_>')<EOL>if op == '<STR_LIT>':<EOL><INDENT>return Var(str(n[<NUM_LIT:1>]))<EOL><DEDENT>elif op == '<STR_LIT>':<EOL><INDENT>if isinstance(n[<NUM_LIT:1>], str):<EOL><INDENT>raise "<STR_LIT>"<EOL><DEDENT>return Constant(n[<NUM_LIT:1>])<EOL><DEDENT>elif op == '<STR_LIT>':<EOL><INDENT>raise "<STR_LIT>"<EOL><DEDENT><DEDENT>elif op in '<STR_LIT>':<EOL><INDENT>return ArithErrFunc(op, *list(map(construct_func_expr,n[<NUM_LIT:1>:])))<EOL><DEDENT>else:<EOL><INDENT>klass = __agg2f__.get(op, None)<EOL>if klass:<EOL><INDENT>return klass(list(map(construct_func_expr, n[<NUM_LIT:1>:])))<EOL><DEDENT>raise "<STR_LIT>"<EOL><DEDENT>
construct the function expression