diff --git a/node.h b/node.h index 334c221f2d..f725a38df4 100644 --- a/node.h +++ b/node.h @@ -192,6 +192,8 @@ typedef struct RNode { #define nd_set_first_column(n, v) ((n)->nd_loc.beg_pos.column = (v)) #define nd_first_lineno(n) ((int)((n)->nd_loc.beg_pos.lineno)) #define nd_set_first_lineno(n, v) ((n)->nd_loc.beg_pos.lineno = (v)) +#define nd_first_loc(n) ((n)->nd_loc.beg_pos) +#define nd_set_first_loc(n, v) (nd_first_loc(n) = (v)) #define nd_last_column(n) ((int)((n)->nd_loc.end_pos.column)) #define nd_set_last_column(n, v) ((n)->nd_loc.end_pos.column = (v)) diff --git a/parse.y b/parse.y index 9cb94fd644..431ad0118d 100644 --- a/parse.y +++ b/parse.y @@ -2443,6 +2443,9 @@ primary : literal lambda { $$ = $3; + /*%%%*/ + nd_set_first_loc($$, @1.beg_pos); + /*% %*/ } | k_if expr_value then compstmt