* transformExpr - * Analyze and transform expressions. Type checking and type casting is * done here. This processing converts the raw grammar output into * expression trees with fully determined semantics. */
| 95 | * expression trees with fully determined semantics. |
| 96 | */ |
| 97 | Node * |
| 98 | transformExpr(ParseState *pstate, Node *expr, ParseExprKind exprKind) |
| 99 | { |
| 100 | Node *result; |
| 101 | ParseExprKind sv_expr_kind; |
| 102 | |
| 103 | /* Save and restore identity of expression type we're parsing */ |
| 104 | Assert(exprKind != EXPR_KIND_NONE); |
| 105 | sv_expr_kind = pstate->p_expr_kind; |
| 106 | pstate->p_expr_kind = exprKind; |
| 107 | |
| 108 | result = transformExprRecurse(pstate, expr); |
| 109 | |
| 110 | pstate->p_expr_kind = sv_expr_kind; |
| 111 | |
| 112 | return result; |
| 113 | } |
| 114 | |
| 115 | static Node * |
| 116 | transformExprRecurse(ParseState *pstate, Node *expr) |
no test coverage detected