Parser Yet another example: | for '(' expr_opt ';' expr_opt ';' expr_opt ')' statement { $$ = createFor ($1, $3 , $5 , $7, $9 ); } where ast *createFor (op, ast *init_expr, ast *cond_expr, ast *terminate_expr, ast *for_body);