From 198fefbc1e74f2c9a046c40d69172876a3e10d46 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 19 May 2025 08:43:11 -0700 Subject: parser: compounds not attributed with format string. * parser.y (quasi_item): In the @ n_expr case, we must generate the sys:var expression if the @ is carrying a format string, regardless of whether n_expr is an integer or symbol. * y.tab.c.shipped: Regenerated. --- parser.y | 2 +- y.tab.c.shipped | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parser.y b/parser.y index 55a6da32..e183a95e 100644 --- a/parser.y +++ b/parser.y @@ -1421,7 +1421,7 @@ quasi_item : litchars { $$ = $1; } | q_var { $$ = $1; } | METANUM { $$ = cons(var_s, cons($1, nil)); rl($$, num(parser->lineno)); } - | '@' n_expr { if (integerp($2) || symbolp($2)) + | '@' n_expr { if (integerp($2) || symbolp($2) || $1) { $$ = rlcp_tree(if3($1, list(var_s, $2, nil, $1, nao), diff --git a/y.tab.c.shipped b/y.tab.c.shipped index 1a31c20f..f3433f68 100644 --- a/y.tab.c.shipped +++ b/y.tab.c.shipped @@ -6676,7 +6676,7 @@ yyreduce: /* Line 1806 of yacc.c */ #line 1424 "parser.y" - { if (integerp((yyvsp[(2) - (2)].val)) || symbolp((yyvsp[(2) - (2)].val))) + { if (integerp((yyvsp[(2) - (2)].val)) || symbolp((yyvsp[(2) - (2)].val)) || (yyvsp[(1) - (2)].val)) { (yyval.val) = rlcp_tree(if3((yyvsp[(1) - (2)].val), list(var_s, (yyvsp[(2) - (2)].val), nil, (yyvsp[(1) - (2)].val), nao), -- cgit v1.2.3