From 98fe899f21eadf2eff1aa455c6f77edd09ff717f Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 19 Nov 2019 22:25:19 -0800 Subject: parser: forgotten top-level .? cases. * parser.y (hash_semi_or_n_expr, hash_semi_or_i_expr): We need to handle OREFDOT here so that .?sym can parse as a top-level expression. Issue reported by vapnik spaknik. --- parser.y | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/parser.y b/parser.y index a461fa4f..21414ed5 100644 --- a/parser.y +++ b/parser.y @@ -211,8 +211,12 @@ hash_semi_or_n_expr : HASH_SEMI { parser->ignore = 1; } | HASH_SEMI '.' { parser->ignore = 1; } n_expr { parser->ignore = 0; $$ = nao; } + | HASH_SEMI OREFDOT { parser->ignore = 1; } + n_expr { parser->ignore = 0; + $$ = nao; } | n_expr { $$ = $1; } | '.' n_expr { $$ = uref_helper(parser, $2); } + | OREFDOT n_expr { $$ = uoref_helper(parser, $2); } ; hash_semi_or_i_expr : HASH_SEMI { parser->ignore = 1; } @@ -221,8 +225,12 @@ hash_semi_or_i_expr : HASH_SEMI { parser->ignore = 1; } | HASH_SEMI '.' { parser->ignore = 1; } i_expr { parser->ignore = 0; $$ = nao; } + | HASH_SEMI OREFDOT { parser->ignore = 1; } + i_expr { parser->ignore = 0; + $$ = nao; } | i_expr { $$ = $1; } | '.' i_expr { $$ = uref_helper(parser, $2); } + | OREFDOT i_expr { $$ = uoref_helper(parser, $2); } ; -- cgit v1.2.3