Skip to content

Commit 3bca5f2

Browse files
committed
Bison grammar: fix precedence with ranges followed by blocks
1 parent 03cc48c commit 3bca5f2

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/grammar/parser-lalr.y

+3-1
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,8 @@ extern char *yytext;
177177

178178
%precedence '{' '[' '(' '.'
179179

180+
%precedence RANGE
181+
180182
%start crate
181183

182184
%%
@@ -1475,7 +1477,7 @@ expr_nostruct
14751477
| expr_nostruct '*' expr_nostruct { $$ = mk_node("ExprBinary", 3, mk_atom("BiMul"), $1, $3); }
14761478
| expr_nostruct '/' expr_nostruct { $$ = mk_node("ExprBinary", 3, mk_atom("BiDiv"), $1, $3); }
14771479
| expr_nostruct '%' expr_nostruct { $$ = mk_node("ExprBinary", 3, mk_atom("BiRem"), $1, $3); }
1478-
| expr_nostruct DOTDOT { $$ = mk_node("ExprRange", 2, $1, mk_none()); }
1480+
| expr_nostruct DOTDOT %prec RANGE { $$ = mk_node("ExprRange", 2, $1, mk_none()); }
14791481
| expr_nostruct DOTDOT expr_nostruct { $$ = mk_node("ExprRange", 2, $1, $3); }
14801482
| DOTDOT expr_nostruct { $$ = mk_node("ExprRange", 2, mk_none(), $2); }
14811483
| DOTDOT { $$ = mk_node("ExprRange", 2, mk_none(), mk_none()); }

0 commit comments

Comments
 (0)