@@ -96,7 +96,7 @@ public enum RustGrammar implements GrammarRuleKey {
9696 EQ_EXPRESSION ,
9797 ERROR_PROPAGATION_EXPRESSION ,
9898 EXPRESSION ,
99- EXPRESSION_EXCEPT_STRUCT ,
99+ SCRUTINEE ,
100100 EXPRESSION_STATEMENT ,
101101 EXPRESSION_TERM ,
102102 EXPRESSION_TERM_EXCEPT_STRUCT ,
@@ -1122,16 +1122,16 @@ public static void expressions(LexerlessGrammarBuilder b) {
11221122
11231123 ));
11241124
1125- b .rule (EXPRESSION_EXCEPT_STRUCT ).is (
1125+ b .rule (SCRUTINEE ).is (
11261126 b .zeroOrMore (OUTER_ATTRIBUTE , SPC ),
11271127 b .firstOf (
1128- b .sequence (RustKeyword .KW_BREAK , SPC , b .optional (LIFETIME_OR_LABEL , SPC ), b .optional (EXPRESSION_EXCEPT_STRUCT , SPC ), b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1128+ b .sequence (RustKeyword .KW_BREAK , SPC , b .optional (LIFETIME_OR_LABEL , SPC ), b .optional (SCRUTINEE , SPC ), b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11291129 b .sequence (BOX_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11301130 b .sequence (CONTINUE_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11311131 b .sequence (RustPunctuator .DOTDOT , b .next (")" )),
11321132 b .sequence (RANGE_TO_INCLUSIVE_EXPR , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11331133 b .sequence (RustPunctuator .DOTDOT , b .nextNot (RustPunctuator .EQ ), b .endOfInput ()),
1134- b .sequence (RustPunctuator .DOTDOT , b .nextNot (RustPunctuator .EQ ), EXPRESSION_EXCEPT_STRUCT ),
1134+ b .sequence (RustPunctuator .DOTDOT , b .nextNot (RustPunctuator .EQ ), SCRUTINEE ),
11351135 b .sequence (LITERAL_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11361136 b .sequence (BLOCK_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11371137 b .sequence (MATCH_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
@@ -1142,7 +1142,7 @@ public static void expressions(LexerlessGrammarBuilder b) {
11421142 b .sequence (IF_LET_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11431143 b .sequence (CLOSURE_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11441144 b .sequence (BORROW_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1145- b .sequence (RustPunctuator .STAR , EXPRESSION_EXCEPT_STRUCT , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1145+ b .sequence (RustPunctuator .STAR , SCRUTINEE , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11461146 b .sequence (NEGATION_EXPRESSION_EXCEPT_STRUCT , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11471147 b .sequence (MACRO_INVOCATION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
11481148 b .sequence (RETURN_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
@@ -1235,44 +1235,44 @@ public static void expressions(LexerlessGrammarBuilder b) {
12351235 b .rule (EXPRESSION_TERM_EXCEPT_STRUCT ).is (
12361236 b .firstOf (
12371237 b .sequence (RustPunctuator .DOTDOT , b .nextNot (RustPunctuator .EQ ), b .endOfInput ()),
1238- b .sequence (RustPunctuator .DOTDOTEQ , EXPRESSION_EXCEPT_STRUCT ),
1239- b .sequence (RustPunctuator .DOTDOT , b .nextNot (RustPunctuator .EQ ), b .optional (EXPRESSION_EXCEPT_STRUCT )),
1238+ b .sequence (RustPunctuator .DOTDOTEQ , SCRUTINEE ),
1239+ b .sequence (RustPunctuator .DOTDOT , b .nextNot (RustPunctuator .EQ ), b .optional (SCRUTINEE )),
12401240 b .sequence (RustPunctuator .DOT , RustKeyword .KW_AWAIT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
12411241 b .sequence (RustPunctuator .DOT , PATH_EXPR_SEGMENT , SPC , "(" , SPC , b .optional (CALL_PARAMS , SPC ), ")" , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
12421242 b .sequence (RustPunctuator .DOT , TUPLE_INDEX , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
12431243 b .sequence (RustPunctuator .DOT , IDENTIFIER , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
12441244 b .sequence ("(" , SPC , b .optional (CALL_PARAMS ), SPC , ")" , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
12451245 b .sequence (RustPunctuator .QUESTION , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
12461246 b .sequence (RustKeyword .KW_AS , SPC , TYPE_NO_BOUNDS , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1247- b .sequence ("[" , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , "]" , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1248- b .sequence (RustPunctuator .OROR , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1249- b .sequence (RustPunctuator .ANDAND , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1250- b .sequence (RustPunctuator .NE , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1251- b .sequence (RustPunctuator .GT , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1252- b .sequence (RustPunctuator .LT , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1253- b .sequence (RustPunctuator .GE , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1254- b .sequence (RustPunctuator .LE , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1255- b .sequence (RustPunctuator .PLUS , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1256- b .sequence (RustPunctuator .MINUS , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1257- b .sequence (RustPunctuator .STAR , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1258- b .sequence (RustPunctuator .SLASH , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1259- b .sequence (RustPunctuator .PERCENT , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1260- b .sequence (RustPunctuator .AND , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1261- b .sequence (RustPunctuator .OR , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1262- b .sequence (RustPunctuator .CARET , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1263- b .sequence (RustPunctuator .SHL , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1264- b .sequence (RustPunctuator .SHR , SPC , EXPRESSION_EXCEPT_STRUCT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1265- b .sequence (RustPunctuator .EQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1266- b .sequence (RustPunctuator .PLUSEQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1267- b .sequence (RustPunctuator .MINUSEQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1268- b .sequence (RustPunctuator .STAREQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1269- b .sequence (RustPunctuator .SLASHEQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1270- b .sequence (RustPunctuator .PERCENTEQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1271- b .sequence (RustPunctuator .ANDEQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1272- b .sequence (RustPunctuator .OREQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1273- b .sequence (RustPunctuator .CARETEQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1274- b .sequence (RustPunctuator .SHLEQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1275- b .sequence (RustPunctuator .SHREQ , SPC , EXPRESSION_EXCEPT_STRUCT , EXPRESSION_TERM_EXCEPT_STRUCT ),
1247+ b .sequence ("[" , SPC , SCRUTINEE , SPC , "]" , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1248+ b .sequence (RustPunctuator .OROR , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1249+ b .sequence (RustPunctuator .ANDAND , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1250+ b .sequence (RustPunctuator .NE , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1251+ b .sequence (RustPunctuator .GT , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1252+ b .sequence (RustPunctuator .LT , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1253+ b .sequence (RustPunctuator .GE , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1254+ b .sequence (RustPunctuator .LE , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1255+ b .sequence (RustPunctuator .PLUS , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1256+ b .sequence (RustPunctuator .MINUS , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1257+ b .sequence (RustPunctuator .STAR , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1258+ b .sequence (RustPunctuator .SLASH , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1259+ b .sequence (RustPunctuator .PERCENT , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1260+ b .sequence (RustPunctuator .AND , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1261+ b .sequence (RustPunctuator .OR , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1262+ b .sequence (RustPunctuator .CARET , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1263+ b .sequence (RustPunctuator .SHL , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1264+ b .sequence (RustPunctuator .SHR , SPC , SCRUTINEE , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1265+ b .sequence (RustPunctuator .EQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1266+ b .sequence (RustPunctuator .PLUSEQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1267+ b .sequence (RustPunctuator .MINUSEQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1268+ b .sequence (RustPunctuator .STAREQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1269+ b .sequence (RustPunctuator .SLASHEQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1270+ b .sequence (RustPunctuator .PERCENTEQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1271+ b .sequence (RustPunctuator .ANDEQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1272+ b .sequence (RustPunctuator .OREQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1273+ b .sequence (RustPunctuator .CARETEQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1274+ b .sequence (RustPunctuator .SHLEQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
1275+ b .sequence (RustPunctuator .SHREQ , SPC , SCRUTINEE , EXPRESSION_TERM_EXCEPT_STRUCT ),
12761276 b .sequence (RustPunctuator .DOT , RustKeyword .KW_AWAIT ),
12771277 b .sequence (RustPunctuator .DOT , PATH_EXPR_SEGMENT , SPC , "(" , SPC , b .optional (CALL_PARAMS , SPC ), ")" ),
12781278 b .sequence (RustPunctuator .DOT , TUPLE_INDEX ),
@@ -1281,35 +1281,35 @@ public static void expressions(LexerlessGrammarBuilder b) {
12811281 RustPunctuator .QUESTION ,
12821282 b .sequence (RustKeyword .KW_AS , SPC , TYPE_NO_BOUNDS ),
12831283 b .sequence ("[" , SPC , EXPRESSION , SPC , "]" ),
1284- b .sequence (RustPunctuator .OROR , SPC , EXPRESSION_EXCEPT_STRUCT ),
1285- b .sequence (RustPunctuator .ANDAND , SPC , EXPRESSION_EXCEPT_STRUCT ),
1286- b .sequence (RustPunctuator .EQEQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1287- b .sequence (RustPunctuator .NE , SPC , EXPRESSION_EXCEPT_STRUCT ),
1288- b .sequence (RustPunctuator .GT , SPC , EXPRESSION_EXCEPT_STRUCT ),
1289- b .sequence (RustPunctuator .LT , SPC , EXPRESSION_EXCEPT_STRUCT ),
1290- b .sequence (RustPunctuator .GE , SPC , EXPRESSION_EXCEPT_STRUCT ),
1291- b .sequence (RustPunctuator .LE , SPC , EXPRESSION_EXCEPT_STRUCT ),
1292- b .sequence (RustPunctuator .PLUS , SPC , EXPRESSION_EXCEPT_STRUCT ),
1293- b .sequence (RustPunctuator .MINUS , SPC , EXPRESSION_EXCEPT_STRUCT ),
1294- b .sequence (RustPunctuator .STAR , SPC , EXPRESSION_EXCEPT_STRUCT ),
1295- b .sequence (RustPunctuator .SLASH , SPC , EXPRESSION_EXCEPT_STRUCT ),
1296- b .sequence (RustPunctuator .PERCENT , SPC , EXPRESSION_EXCEPT_STRUCT ),
1297- b .sequence (RustPunctuator .AND , SPC , EXPRESSION_EXCEPT_STRUCT ),
1298- b .sequence (RustPunctuator .OR , SPC , EXPRESSION_EXCEPT_STRUCT ),
1299- b .sequence (RustPunctuator .CARET , SPC , EXPRESSION_EXCEPT_STRUCT ),
1300- b .sequence (RustPunctuator .SHL , SPC , EXPRESSION_EXCEPT_STRUCT ),
1301- b .sequence (RustPunctuator .SHR , SPC , EXPRESSION_EXCEPT_STRUCT ),
1302- b .sequence (RustPunctuator .EQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1303- b .sequence (RustPunctuator .PLUSEQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1304- b .sequence (RustPunctuator .MINUSEQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1305- b .sequence (RustPunctuator .STAREQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1306- b .sequence (RustPunctuator .SLASHEQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1307- b .sequence (RustPunctuator .PERCENTEQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1308- b .sequence (RustPunctuator .ANDEQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1309- b .sequence (RustPunctuator .OREQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1310- b .sequence (RustPunctuator .CARETEQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1311- b .sequence (RustPunctuator .SHLEQ , SPC , EXPRESSION_EXCEPT_STRUCT ),
1312- b .sequence (RustPunctuator .SHREQ , SPC , EXPRESSION_EXCEPT_STRUCT )));
1284+ b .sequence (RustPunctuator .OROR , SPC , SCRUTINEE ),
1285+ b .sequence (RustPunctuator .ANDAND , SPC , SCRUTINEE ),
1286+ b .sequence (RustPunctuator .EQEQ , SPC , SCRUTINEE ),
1287+ b .sequence (RustPunctuator .NE , SPC , SCRUTINEE ),
1288+ b .sequence (RustPunctuator .GT , SPC , SCRUTINEE ),
1289+ b .sequence (RustPunctuator .LT , SPC , SCRUTINEE ),
1290+ b .sequence (RustPunctuator .GE , SPC , SCRUTINEE ),
1291+ b .sequence (RustPunctuator .LE , SPC , SCRUTINEE ),
1292+ b .sequence (RustPunctuator .PLUS , SPC , SCRUTINEE ),
1293+ b .sequence (RustPunctuator .MINUS , SPC , SCRUTINEE ),
1294+ b .sequence (RustPunctuator .STAR , SPC , SCRUTINEE ),
1295+ b .sequence (RustPunctuator .SLASH , SPC , SCRUTINEE ),
1296+ b .sequence (RustPunctuator .PERCENT , SPC , SCRUTINEE ),
1297+ b .sequence (RustPunctuator .AND , SPC , SCRUTINEE ),
1298+ b .sequence (RustPunctuator .OR , SPC , SCRUTINEE ),
1299+ b .sequence (RustPunctuator .CARET , SPC , SCRUTINEE ),
1300+ b .sequence (RustPunctuator .SHL , SPC , SCRUTINEE ),
1301+ b .sequence (RustPunctuator .SHR , SPC , SCRUTINEE ),
1302+ b .sequence (RustPunctuator .EQ , SPC , SCRUTINEE ),
1303+ b .sequence (RustPunctuator .PLUSEQ , SPC , SCRUTINEE ),
1304+ b .sequence (RustPunctuator .MINUSEQ , SPC , SCRUTINEE ),
1305+ b .sequence (RustPunctuator .STAREQ , SPC , SCRUTINEE ),
1306+ b .sequence (RustPunctuator .SLASHEQ , SPC , SCRUTINEE ),
1307+ b .sequence (RustPunctuator .PERCENTEQ , SPC , SCRUTINEE ),
1308+ b .sequence (RustPunctuator .ANDEQ , SPC , SCRUTINEE ),
1309+ b .sequence (RustPunctuator .OREQ , SPC , SCRUTINEE ),
1310+ b .sequence (RustPunctuator .CARETEQ , SPC , SCRUTINEE ),
1311+ b .sequence (RustPunctuator .SHLEQ , SPC , SCRUTINEE ),
1312+ b .sequence (RustPunctuator .SHREQ , SPC , SCRUTINEE )));
13131313
13141314 b .rule (EXPRESSION_WITHOUT_BLOCK ).is (b .zeroOrMore (OUTER_ATTRIBUTE , SPC ),
13151315 b .firstOf (
@@ -1361,7 +1361,7 @@ private static void match(LexerlessGrammarBuilder b) {
13611361 b .rule (MATCH_EXPRESSION ).is (
13621362 RustKeyword .KW_MATCH , SPC ,
13631363 b .optional (RustKeyword .KW_MATCH , b .next (IDENTIFIER )),
1364- EXPRESSION_EXCEPT_STRUCT ,
1364+ SCRUTINEE ,
13651365 SPC , "{" , SPC ,
13661366 b .zeroOrMore (INNER_ATTRIBUTE , SPC ),
13671367 b .optional (MATCH_ARMS , SPC ),
@@ -1385,12 +1385,12 @@ private static void ifExpr(LexerlessGrammarBuilder b) {
13851385 b .rule (IF_EXPRESSION ).is (
13861386 RustKeyword .KW_IF , SPC ,
13871387 b .optional (RustKeyword .KW_IF , b .next (IDENTIFIER )),
1388- EXPRESSION_EXCEPT_STRUCT , b .next (SPC , "{" ), SPC , BLOCK_EXPRESSION , SPC ,
1388+ SCRUTINEE , b .next (SPC , "{" ), SPC , BLOCK_EXPRESSION , SPC ,
13891389 b .optional (
13901390
13911391 RustKeyword .KW_ELSE , SPC , b .firstOf (BLOCK_EXPRESSION , IF_EXPRESSION , IF_LET_EXPRESSION )));
13921392 b .rule (IF_LET_EXPRESSION ).is (
1393- RustKeyword .KW_IF , SPC , RustKeyword .KW_LET , SPC , PATTERN , SPC , RustPunctuator .EQ , SPC , EXPRESSION_EXCEPT_STRUCT , // except struct or lazy boolean operator expression
1393+ RustKeyword .KW_IF , SPC , RustKeyword .KW_LET , SPC , PATTERN , SPC , RustPunctuator .EQ , SPC , SCRUTINEE , // except struct or lazy boolean operator expression
13941394 SPC , BLOCK_EXPRESSION , SPC ,
13951395 b .optional (RustKeyword .KW_ELSE , SPC , b .firstOf (BLOCK_EXPRESSION , IF_EXPRESSION , IF_LET_EXPRESSION )));
13961396 }
@@ -1423,14 +1423,14 @@ private static void loops(LexerlessGrammarBuilder b) {
14231423 b .rule (INFINITE_LOOP_EXPRESSION ).is (
14241424 RustKeyword .KW_LOOP , SPC , BLOCK_EXPRESSION );
14251425 b .rule (PREDICATE_LOOP_EXPRESSION ).is (
1426- RustKeyword .KW_WHILE , SPC , EXPRESSION_EXCEPT_STRUCT , SPC ,
1426+ RustKeyword .KW_WHILE , SPC , SCRUTINEE , SPC ,
14271427 BLOCK_EXPRESSION );
14281428 b .rule (PREDICATE_PATTERN_LOOP_EXPRESSION ).is (
14291429 RustKeyword .KW_WHILE , SPC , RustKeyword .KW_LET , SPC , PATTERN , SPC , RustPunctuator .EQ ,
1430- SPC , EXPRESSION_EXCEPT_STRUCT ,
1430+ SPC , SCRUTINEE ,
14311431 SPC , BLOCK_EXPRESSION );
14321432 b .rule (ITERATOR_LOOP_EXPRESSION ).is (
1433- RustKeyword .KW_FOR , SPC , PATTERN , SPC , RustKeyword .KW_IN , SPC , EXPRESSION_EXCEPT_STRUCT ,
1433+ RustKeyword .KW_FOR , SPC , PATTERN , SPC , RustKeyword .KW_IN , SPC , SCRUTINEE ,
14341434 SPC , BLOCK_EXPRESSION );
14351435 b .rule (LOOP_LABEL ).is (LIFETIME_OR_LABEL , SPC , RustPunctuator .COLON );
14361436 b .rule (BREAK_EXPRESSION ).is (RustKeyword .KW_BREAK , SPC , b .optional (LIFETIME_OR_LABEL , SPC ), b .optional (EXPRESSION , SPC ));
@@ -1500,7 +1500,7 @@ private static void operator(LexerlessGrammarBuilder b) {
15001500 b .sequence (RustPunctuator .NOT , SPC , EXPRESSION ), b .sequence ("-" , SPC , EXPRESSION )));
15011501
15021502 b .rule (NEGATION_EXPRESSION_EXCEPT_STRUCT ).is (b .firstOf (
1503- b .sequence (RustPunctuator .NOT , SPC , EXPRESSION_EXCEPT_STRUCT ), b .sequence ("-" , SPC , EXPRESSION_EXCEPT_STRUCT )));
1503+ b .sequence (RustPunctuator .NOT , SPC , SCRUTINEE ), b .sequence ("-" , SPC , SCRUTINEE )));
15041504
15051505 b .rule (ARITHMETIC_OR_LOGICAL_EXPRESSION ).is (b .firstOf (
15061506 SHL_EXPRESSION ,
@@ -2020,7 +2020,7 @@ private static void integerliteral(LexerlessGrammarBuilder b) {
20202020 b .firstOf (HEX_LITERAL , OCT_LITERAL , BIN_LITERAL , DEC_LITERAL ),
20212021 b .optional (INTEGER_SUFFIX ), SPC )));
20222022 b .rule (DEC_LITERAL ).is (DEC_DIGIT , b .zeroOrMore (b .firstOf (DEC_DIGIT , RustPunctuator .UNDERSCORE )));
2023- b .rule (TUPLE_INDEX ).is (b . firstOf ( "0" , b . sequence ( b . oneOrMore ( NON_ZERO_DEC_DIGIT ), b . optional ( DEC_DIGIT ))) );
2023+ b .rule (TUPLE_INDEX ).is (INTEGER_LITERAL );
20242024
20252025 b .rule (BIN_LITERAL ).is ("0b" , b .zeroOrMore (b .firstOf (BIN_DIGIT , RustPunctuator .UNDERSCORE )));
20262026 b .rule (OCT_LITERAL ).is ("0o" , b .zeroOrMore (b .firstOf (OCT_DIGIT , RustPunctuator .UNDERSCORE )));
0 commit comments