summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-11-19 22:25:19 -0800
committerKaz Kylheku <kaz@kylheku.com>2019-11-19 22:25:19 -0800
commitf30d8a13f0d022fca7127c88258c884047e28cf8 (patch)
tree5697919bda7ef048534395a904306aa6d573480d
parentfc6285604f2a005e6479b692b7395552cb0d1501 (diff)
downloadtxr-f30d8a13f0d022fca7127c88258c884047e28cf8.tar.gz
txr-f30d8a13f0d022fca7127c88258c884047e28cf8.tar.bz2
txr-f30d8a13f0d022fca7127c88258c884047e28cf8.zip
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.
-rw-r--r--parser.y8
1 files changed, 8 insertions, 0 deletions
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); }
;