@@ -96,7 +96,7 @@ public enum RustGrammar implements GrammarRuleKey {
96
96
EQ_EXPRESSION ,
97
97
ERROR_PROPAGATION_EXPRESSION ,
98
98
EXPRESSION ,
99
- EXPRESSION_EXCEPT_STRUCT ,
99
+ SCRUTINEE ,
100
100
EXPRESSION_STATEMENT ,
101
101
EXPRESSION_TERM ,
102
102
EXPRESSION_TERM_EXCEPT_STRUCT ,
@@ -1122,16 +1122,16 @@ public static void expressions(LexerlessGrammarBuilder b) {
1122
1122
1123
1123
));
1124
1124
1125
- b .rule (EXPRESSION_EXCEPT_STRUCT ).is (
1125
+ b .rule (SCRUTINEE ).is (
1126
1126
b .zeroOrMore (OUTER_ATTRIBUTE , SPC ),
1127
1127
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 )),
1129
1129
b .sequence (BOX_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1130
1130
b .sequence (CONTINUE_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1131
1131
b .sequence (RustPunctuator .DOTDOT , b .next (")" )),
1132
1132
b .sequence (RANGE_TO_INCLUSIVE_EXPR , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1133
1133
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 ),
1135
1135
b .sequence (LITERAL_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1136
1136
b .sequence (BLOCK_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1137
1137
b .sequence (MATCH_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
@@ -1142,7 +1142,7 @@ public static void expressions(LexerlessGrammarBuilder b) {
1142
1142
b .sequence (IF_LET_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1143
1143
b .sequence (CLOSURE_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1144
1144
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 )),
1146
1146
b .sequence (NEGATION_EXPRESSION_EXCEPT_STRUCT , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1147
1147
b .sequence (MACRO_INVOCATION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
1148
1148
b .sequence (RETURN_EXPRESSION , b .zeroOrMore (SPC , EXPRESSION_TERM_EXCEPT_STRUCT )),
@@ -1235,44 +1235,44 @@ public static void expressions(LexerlessGrammarBuilder b) {
1235
1235
b .rule (EXPRESSION_TERM_EXCEPT_STRUCT ).is (
1236
1236
b .firstOf (
1237
1237
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 )),
1240
1240
b .sequence (RustPunctuator .DOT , RustKeyword .KW_AWAIT , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1241
1241
b .sequence (RustPunctuator .DOT , PATH_EXPR_SEGMENT , SPC , "(" , SPC , b .optional (CALL_PARAMS , SPC ), ")" , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1242
1242
b .sequence (RustPunctuator .DOT , TUPLE_INDEX , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1243
1243
b .sequence (RustPunctuator .DOT , IDENTIFIER , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1244
1244
b .sequence ("(" , SPC , b .optional (CALL_PARAMS ), SPC , ")" , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1245
1245
b .sequence (RustPunctuator .QUESTION , SPC , EXPRESSION_TERM_EXCEPT_STRUCT ),
1246
1246
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 ),
1276
1276
b .sequence (RustPunctuator .DOT , RustKeyword .KW_AWAIT ),
1277
1277
b .sequence (RustPunctuator .DOT , PATH_EXPR_SEGMENT , SPC , "(" , SPC , b .optional (CALL_PARAMS , SPC ), ")" ),
1278
1278
b .sequence (RustPunctuator .DOT , TUPLE_INDEX ),
@@ -1281,35 +1281,35 @@ public static void expressions(LexerlessGrammarBuilder b) {
1281
1281
RustPunctuator .QUESTION ,
1282
1282
b .sequence (RustKeyword .KW_AS , SPC , TYPE_NO_BOUNDS ),
1283
1283
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 )));
1313
1313
1314
1314
b .rule (EXPRESSION_WITHOUT_BLOCK ).is (b .zeroOrMore (OUTER_ATTRIBUTE , SPC ),
1315
1315
b .firstOf (
@@ -1361,7 +1361,7 @@ private static void match(LexerlessGrammarBuilder b) {
1361
1361
b .rule (MATCH_EXPRESSION ).is (
1362
1362
RustKeyword .KW_MATCH , SPC ,
1363
1363
b .optional (RustKeyword .KW_MATCH , b .next (IDENTIFIER )),
1364
- EXPRESSION_EXCEPT_STRUCT ,
1364
+ SCRUTINEE ,
1365
1365
SPC , "{" , SPC ,
1366
1366
b .zeroOrMore (INNER_ATTRIBUTE , SPC ),
1367
1367
b .optional (MATCH_ARMS , SPC ),
@@ -1385,12 +1385,12 @@ private static void ifExpr(LexerlessGrammarBuilder b) {
1385
1385
b .rule (IF_EXPRESSION ).is (
1386
1386
RustKeyword .KW_IF , SPC ,
1387
1387
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 ,
1389
1389
b .optional (
1390
1390
1391
1391
RustKeyword .KW_ELSE , SPC , b .firstOf (BLOCK_EXPRESSION , IF_EXPRESSION , IF_LET_EXPRESSION )));
1392
1392
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
1394
1394
SPC , BLOCK_EXPRESSION , SPC ,
1395
1395
b .optional (RustKeyword .KW_ELSE , SPC , b .firstOf (BLOCK_EXPRESSION , IF_EXPRESSION , IF_LET_EXPRESSION )));
1396
1396
}
@@ -1423,14 +1423,14 @@ private static void loops(LexerlessGrammarBuilder b) {
1423
1423
b .rule (INFINITE_LOOP_EXPRESSION ).is (
1424
1424
RustKeyword .KW_LOOP , SPC , BLOCK_EXPRESSION );
1425
1425
b .rule (PREDICATE_LOOP_EXPRESSION ).is (
1426
- RustKeyword .KW_WHILE , SPC , EXPRESSION_EXCEPT_STRUCT , SPC ,
1426
+ RustKeyword .KW_WHILE , SPC , SCRUTINEE , SPC ,
1427
1427
BLOCK_EXPRESSION );
1428
1428
b .rule (PREDICATE_PATTERN_LOOP_EXPRESSION ).is (
1429
1429
RustKeyword .KW_WHILE , SPC , RustKeyword .KW_LET , SPC , PATTERN , SPC , RustPunctuator .EQ ,
1430
- SPC , EXPRESSION_EXCEPT_STRUCT ,
1430
+ SPC , SCRUTINEE ,
1431
1431
SPC , BLOCK_EXPRESSION );
1432
1432
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 ,
1434
1434
SPC , BLOCK_EXPRESSION );
1435
1435
b .rule (LOOP_LABEL ).is (LIFETIME_OR_LABEL , SPC , RustPunctuator .COLON );
1436
1436
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) {
1500
1500
b .sequence (RustPunctuator .NOT , SPC , EXPRESSION ), b .sequence ("-" , SPC , EXPRESSION )));
1501
1501
1502
1502
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 )));
1504
1504
1505
1505
b .rule (ARITHMETIC_OR_LOGICAL_EXPRESSION ).is (b .firstOf (
1506
1506
SHL_EXPRESSION ,
@@ -2020,7 +2020,7 @@ private static void integerliteral(LexerlessGrammarBuilder b) {
2020
2020
b .firstOf (HEX_LITERAL , OCT_LITERAL , BIN_LITERAL , DEC_LITERAL ),
2021
2021
b .optional (INTEGER_SUFFIX ), SPC )));
2022
2022
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 );
2024
2024
2025
2025
b .rule (BIN_LITERAL ).is ("0b" , b .zeroOrMore (b .firstOf (BIN_DIGIT , RustPunctuator .UNDERSCORE )));
2026
2026
b .rule (OCT_LITERAL ).is ("0o" , b .zeroOrMore (b .firstOf (OCT_DIGIT , RustPunctuator .UNDERSCORE )));
0 commit comments