3838// eval_input: testlist NEWLINE* ENDMARKER
3939
4040DEF_RULE (single_input , nc , or (3 ), tok (NEWLINE ), rule (simple_stmt ), rule (compound_stmt ))
41- DEF_RULE (file_input , c (generic_all_nodes ), and (1 ), opt_rule (file_input_2 ))
41+ DEF_RULE (file_input , c (generic_all_nodes ), and_ident (1 ), opt_rule (file_input_2 ))
4242DEF_RULE (file_input_2 , c (generic_all_nodes ), one_or_more , rule (file_input_3 ))
4343DEF_RULE (file_input_3 , nc , or (2 ), tok (NEWLINE ), rule (stmt ))
44- DEF_RULE (eval_input , nc , and (2 ), rule (testlist ), opt_rule (eval_input_2 ))
44+ DEF_RULE (eval_input , nc , and_ident (2 ), rule (testlist ), opt_rule (eval_input_2 ))
4545DEF_RULE (eval_input_2 , nc , and (1 ), tok (NEWLINE ))
4646
4747// decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
@@ -57,40 +57,40 @@ DEF_RULE(eval_input_2, nc, and(1), tok(NEWLINE))
5757
5858DEF_RULE (decorator , nc , and (4 ), tok (DEL_AT ), rule (dotted_name ), opt_rule (trailer_paren ), tok (NEWLINE ))
5959DEF_RULE (decorators , nc , one_or_more , rule (decorator ))
60- DEF_RULE (decorated , c (decorated ), and (2 ), rule (decorators ), rule (decorated_body ))
60+ DEF_RULE (decorated , c (decorated ), and_ident (2 ), rule (decorators ), rule (decorated_body ))
6161#if MICROPY_PY_ASYNC_AWAIT
6262DEF_RULE (decorated_body , nc , or (3 ), rule (classdef ), rule (funcdef ), rule (async_funcdef ))
6363DEF_RULE (async_funcdef , nc , and (2 ), tok (KW_ASYNC ), rule (funcdef ))
6464#else
6565DEF_RULE (decorated_body , nc , or (2 ), rule (classdef ), rule (funcdef ))
6666#endif
67- DEF_RULE (funcdef , c (funcdef ), blank | and (8 ), tok (KW_DEF ), tok (NAME ), tok (DEL_PAREN_OPEN ), opt_rule (typedargslist ), tok (DEL_PAREN_CLOSE ), opt_rule (funcdefrettype ), tok (DEL_COLON ), rule (suite ))
68- DEF_RULE (funcdefrettype , nc , ident | and (2 ), tok (DEL_MINUS_MORE ), rule (test ))
67+ DEF_RULE (funcdef , c (funcdef ), and_blank (8 ), tok (KW_DEF ), tok (NAME ), tok (DEL_PAREN_OPEN ), opt_rule (typedargslist ), tok (DEL_PAREN_CLOSE ), opt_rule (funcdefrettype ), tok (DEL_COLON ), rule (suite ))
68+ DEF_RULE (funcdefrettype , nc , and_ident (2 ), tok (DEL_MINUS_MORE ), rule (test ))
6969// note: typedargslist lets through more than is allowed, compiler does further checks
7070DEF_RULE (typedargslist , nc , list_with_end , rule (typedargslist_item ), tok (DEL_COMMA ))
7171DEF_RULE (typedargslist_item , nc , or (3 ), rule (typedargslist_name ), rule (typedargslist_star ), rule (typedargslist_dbl_star ))
72- DEF_RULE (typedargslist_name , nc , ident | and (3 ), tok (NAME ), opt_rule (typedargslist_colon ), opt_rule (typedargslist_equal ))
72+ DEF_RULE (typedargslist_name , nc , and_ident (3 ), tok (NAME ), opt_rule (typedargslist_colon ), opt_rule (typedargslist_equal ))
7373DEF_RULE (typedargslist_star , nc , and (2 ), tok (OP_STAR ), opt_rule (tfpdef ))
7474DEF_RULE (typedargslist_dbl_star , nc , and (3 ), tok (OP_DBL_STAR ), tok (NAME ), opt_rule (typedargslist_colon ))
75- DEF_RULE (typedargslist_colon , nc , ident | and (2 ), tok (DEL_COLON ), rule (test ))
76- DEF_RULE (typedargslist_equal , nc , ident | and (2 ), tok (DEL_EQUAL ), rule (test ))
75+ DEF_RULE (typedargslist_colon , nc , and_ident (2 ), tok (DEL_COLON ), rule (test ))
76+ DEF_RULE (typedargslist_equal , nc , and_ident (2 ), tok (DEL_EQUAL ), rule (test ))
7777DEF_RULE (tfpdef , nc , and (2 ), tok (NAME ), opt_rule (typedargslist_colon ))
7878// note: varargslist lets through more than is allowed, compiler does further checks
7979DEF_RULE (varargslist , nc , list_with_end , rule (varargslist_item ), tok (DEL_COMMA ))
8080DEF_RULE (varargslist_item , nc , or (3 ), rule (varargslist_name ), rule (varargslist_star ), rule (varargslist_dbl_star ))
81- DEF_RULE (varargslist_name , nc , ident | and (2 ), tok (NAME ), opt_rule (varargslist_equal ))
81+ DEF_RULE (varargslist_name , nc , and_ident (2 ), tok (NAME ), opt_rule (varargslist_equal ))
8282DEF_RULE (varargslist_star , nc , and (2 ), tok (OP_STAR ), opt_rule (vfpdef ))
8383DEF_RULE (varargslist_dbl_star , nc , and (2 ), tok (OP_DBL_STAR ), tok (NAME ))
84- DEF_RULE (varargslist_equal , nc , ident | and (2 ), tok (DEL_EQUAL ), rule (test ))
85- DEF_RULE (vfpdef , nc , ident | and (1 ), tok (NAME ))
84+ DEF_RULE (varargslist_equal , nc , and_ident (2 ), tok (DEL_EQUAL ), rule (test ))
85+ DEF_RULE (vfpdef , nc , and_ident (1 ), tok (NAME ))
8686
8787// stmt: compound_stmt | simple_stmt
8888
8989DEF_RULE (stmt , nc , or (2 ), rule (compound_stmt ), rule (simple_stmt ))
9090
9191// simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
9292
93- DEF_RULE (simple_stmt , nc , and (2 ), rule (simple_stmt_2 ), tok (NEWLINE ))
93+ DEF_RULE (simple_stmt , nc , and_ident (2 ), rule (simple_stmt_2 ), tok (NEWLINE ))
9494DEF_RULE (simple_stmt_2 , c (generic_all_nodes ), list_with_end , rule (small_stmt ), tok (DEL_SEMICOLON ))
9595
9696// small_stmt: expr_stmt | del_stmt | pass_stmt | flow_stmt | import_stmt | global_stmt | nonlocal_stmt | assert_stmt
@@ -102,9 +102,9 @@ DEF_RULE(simple_stmt_2, c(generic_all_nodes), list_with_end, rule(small_stmt), t
102102DEF_RULE (small_stmt , nc , or (8 ), rule (del_stmt ), rule (pass_stmt ), rule (flow_stmt ), rule (import_stmt ), rule (global_stmt ), rule (nonlocal_stmt ), rule (assert_stmt ), rule (expr_stmt ))
103103DEF_RULE (expr_stmt , c (expr_stmt ), and (2 ), rule (testlist_star_expr ), opt_rule (expr_stmt_2 ))
104104DEF_RULE (expr_stmt_2 , nc , or (2 ), rule (expr_stmt_augassign ), rule (expr_stmt_assign_list ))
105- DEF_RULE (expr_stmt_augassign , nc , and (2 ), rule (augassign ), rule (expr_stmt_6 ))
105+ DEF_RULE (expr_stmt_augassign , nc , and_ident (2 ), rule (augassign ), rule (expr_stmt_6 ))
106106DEF_RULE (expr_stmt_assign_list , nc , one_or_more , rule (expr_stmt_assign ))
107- DEF_RULE (expr_stmt_assign , nc , ident | and (2 ), tok (DEL_EQUAL ), rule (expr_stmt_6 ))
107+ DEF_RULE (expr_stmt_assign , nc , and_ident (2 ), tok (DEL_EQUAL ), rule (expr_stmt_6 ))
108108DEF_RULE (expr_stmt_6 , nc , or (2 ), rule (yield_expr ), rule (testlist_star_expr ))
109109DEF_RULE (testlist_star_expr , c (generic_tuple ), list_with_end , rule (testlist_star_expr_2 ), tok (DEL_COMMA ))
110110DEF_RULE (testlist_star_expr_2 , nc , or (2 ), rule (star_expr ), rule (test ))
@@ -127,8 +127,8 @@ DEF_RULE(continue_stmt, c(continue_stmt), and(1), tok(KW_CONTINUE))
127127DEF_RULE (return_stmt , c (return_stmt ), and (2 ), tok (KW_RETURN ), opt_rule (testlist ))
128128DEF_RULE (yield_stmt , c (yield_stmt ), and (1 ), rule (yield_expr ))
129129DEF_RULE (raise_stmt , c (raise_stmt ), and (2 ), tok (KW_RAISE ), opt_rule (raise_stmt_arg ))
130- DEF_RULE (raise_stmt_arg , nc , and (2 ), rule (test ), opt_rule (raise_stmt_from ))
131- DEF_RULE (raise_stmt_from , nc , ident | and (2 ), tok (KW_FROM ), rule (test ))
130+ DEF_RULE (raise_stmt_arg , nc , and_ident (2 ), rule (test ), opt_rule (raise_stmt_from ))
131+ DEF_RULE (raise_stmt_from , nc , and_ident (2 ), tok (KW_FROM ), rule (test ))
132132
133133// import_stmt: import_name | import_from
134134// import_name: 'import' dotted_as_names
@@ -146,22 +146,22 @@ DEF_RULE(import_stmt, nc, or(2), rule(import_name), rule(import_from))
146146DEF_RULE (import_name , c (import_name ), and (2 ), tok (KW_IMPORT ), rule (dotted_as_names ))
147147DEF_RULE (import_from , c (import_from ), and (4 ), tok (KW_FROM ), rule (import_from_2 ), tok (KW_IMPORT ), rule (import_from_3 ))
148148DEF_RULE (import_from_2 , nc , or (2 ), rule (dotted_name ), rule (import_from_2b ))
149- DEF_RULE (import_from_2b , nc , and (2 ), rule (one_or_more_period_or_ellipsis ), opt_rule (dotted_name ))
149+ DEF_RULE (import_from_2b , nc , and_ident (2 ), rule (one_or_more_period_or_ellipsis ), opt_rule (dotted_name ))
150150DEF_RULE (import_from_3 , nc , or (3 ), tok (OP_STAR ), rule (import_as_names_paren ), rule (import_as_names ))
151- DEF_RULE (import_as_names_paren , nc , ident | and (3 ), tok (DEL_PAREN_OPEN ), rule (import_as_names ), tok (DEL_PAREN_CLOSE ))
151+ DEF_RULE (import_as_names_paren , nc , and_ident (3 ), tok (DEL_PAREN_OPEN ), rule (import_as_names ), tok (DEL_PAREN_CLOSE ))
152152DEF_RULE (one_or_more_period_or_ellipsis , nc , one_or_more , rule (period_or_ellipsis ))
153153DEF_RULE (period_or_ellipsis , nc , or (2 ), tok (DEL_PERIOD ), tok (ELLIPSIS ))
154154DEF_RULE (import_as_name , nc , and (2 ), tok (NAME ), opt_rule (as_name ))
155- DEF_RULE (dotted_as_name , nc , and (2 ), rule (dotted_name ), opt_rule (as_name ))
156- DEF_RULE (as_name , nc , ident | and (2 ), tok (KW_AS ), tok (NAME ))
155+ DEF_RULE (dotted_as_name , nc , and_ident (2 ), rule (dotted_name ), opt_rule (as_name ))
156+ DEF_RULE (as_name , nc , and_ident (2 ), tok (KW_AS ), tok (NAME ))
157157DEF_RULE (import_as_names , nc , list_with_end , rule (import_as_name ), tok (DEL_COMMA ))
158158DEF_RULE (dotted_as_names , nc , list , rule (dotted_as_name ), tok (DEL_COMMA ))
159159DEF_RULE (dotted_name , nc , list , tok (NAME ), tok (DEL_PERIOD ))
160160DEF_RULE (global_stmt , c (global_stmt ), and (2 ), tok (KW_GLOBAL ), rule (name_list ))
161161DEF_RULE (nonlocal_stmt , c (nonlocal_stmt ), and (2 ), tok (KW_NONLOCAL ), rule (name_list ))
162162DEF_RULE (name_list , nc , list , tok (NAME ), tok (DEL_COMMA ))
163163DEF_RULE (assert_stmt , c (assert_stmt ), and (3 ), tok (KW_ASSERT ), rule (test ), opt_rule (assert_stmt_extra ))
164- DEF_RULE (assert_stmt_extra , nc , ident | and (2 ), tok (DEL_COMMA ), rule (test ))
164+ DEF_RULE (assert_stmt_extra , nc , and_ident (2 ), tok (DEL_COMMA ), rule (test ))
165165
166166// compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated | async_stmt
167167// if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
@@ -189,18 +189,18 @@ DEF_RULE(while_stmt, c(while_stmt), and(5), tok(KW_WHILE), rule(test), tok(DEL_C
189189DEF_RULE (for_stmt , c (for_stmt ), and (7 ), tok (KW_FOR ), rule (exprlist ), tok (KW_IN ), rule (testlist ), tok (DEL_COLON ), rule (suite ), opt_rule (else_stmt ))
190190DEF_RULE (try_stmt , c (try_stmt ), and (4 ), tok (KW_TRY ), tok (DEL_COLON ), rule (suite ), rule (try_stmt_2 ))
191191DEF_RULE (try_stmt_2 , nc , or (2 ), rule (try_stmt_except_and_more ), rule (try_stmt_finally ))
192- DEF_RULE (try_stmt_except_and_more , nc , and (3 ), rule (try_stmt_except_list ), opt_rule (else_stmt ), opt_rule (try_stmt_finally ))
192+ DEF_RULE (try_stmt_except_and_more , nc , and_ident (3 ), rule (try_stmt_except_list ), opt_rule (else_stmt ), opt_rule (try_stmt_finally ))
193193DEF_RULE (try_stmt_except , nc , and (4 ), tok (KW_EXCEPT ), opt_rule (try_stmt_as_name ), tok (DEL_COLON ), rule (suite ))
194- DEF_RULE (try_stmt_as_name , nc , and (2 ), rule (test ), opt_rule (as_name ))
194+ DEF_RULE (try_stmt_as_name , nc , and_ident (2 ), rule (test ), opt_rule (as_name ))
195195DEF_RULE (try_stmt_except_list , nc , one_or_more , rule (try_stmt_except ))
196196DEF_RULE (try_stmt_finally , nc , and (3 ), tok (KW_FINALLY ), tok (DEL_COLON ), rule (suite ))
197- DEF_RULE (else_stmt , nc , ident | and (3 ), tok (KW_ELSE ), tok (DEL_COLON ), rule (suite ))
197+ DEF_RULE (else_stmt , nc , and_ident (3 ), tok (KW_ELSE ), tok (DEL_COLON ), rule (suite ))
198198DEF_RULE (with_stmt , c (with_stmt ), and (4 ), tok (KW_WITH ), rule (with_stmt_list ), tok (DEL_COLON ), rule (suite ))
199199DEF_RULE (with_stmt_list , nc , list , rule (with_item ), tok (DEL_COMMA ))
200- DEF_RULE (with_item , nc , and (2 ), rule (test ), opt_rule (with_item_as ))
201- DEF_RULE (with_item_as , nc , ident | and (2 ), tok (KW_AS ), rule (expr ))
200+ DEF_RULE (with_item , nc , and_ident (2 ), rule (test ), opt_rule (with_item_as ))
201+ DEF_RULE (with_item_as , nc , and_ident (2 ), tok (KW_AS ), rule (expr ))
202202DEF_RULE (suite , nc , or (2 ), rule (suite_block ), rule (simple_stmt ))
203- DEF_RULE (suite_block , nc , and (4 ), tok (NEWLINE ), tok (INDENT ), rule (suite_block_stmts ), tok (DEDENT ))
203+ DEF_RULE (suite_block , nc , and_ident (4 ), tok (NEWLINE ), tok (INDENT ), rule (suite_block_stmts ), tok (DEDENT ))
204204DEF_RULE (suite_block_stmts , c (generic_all_nodes ), one_or_more , rule (stmt ))
205205
206206// test: or_test ['if' or_test 'else' test] | lambdef
@@ -209,11 +209,11 @@ DEF_RULE(suite_block_stmts, c(generic_all_nodes), one_or_more, rule(stmt))
209209// lambdef_nocond: 'lambda' [varargslist] ':' test_nocond
210210
211211DEF_RULE (test , nc , or (2 ), rule (lambdef ), rule (test_if_expr ))
212- DEF_RULE (test_if_expr , c (test_if_expr ), and (2 ), rule (or_test ), opt_rule (test_if_else ))
212+ DEF_RULE (test_if_expr , c (test_if_expr ), and_ident (2 ), rule (or_test ), opt_rule (test_if_else ))
213213DEF_RULE (test_if_else , nc , and (4 ), tok (KW_IF ), rule (or_test ), tok (KW_ELSE ), rule (test ))
214214DEF_RULE (test_nocond , nc , or (2 ), rule (lambdef_nocond ), rule (or_test ))
215- DEF_RULE (lambdef , c (lambdef ), blank | and (4 ), tok (KW_LAMBDA ), opt_rule (varargslist ), tok (DEL_COLON ), rule (test ))
216- DEF_RULE (lambdef_nocond , c (lambdef ), blank | and (4 ), tok (KW_LAMBDA ), opt_rule (varargslist ), tok (DEL_COLON ), rule (test_nocond ))
215+ DEF_RULE (lambdef , c (lambdef ), and_blank (4 ), tok (KW_LAMBDA ), opt_rule (varargslist ), tok (DEL_COLON ), rule (test ))
216+ DEF_RULE (lambdef_nocond , c (lambdef ), and_blank (4 ), tok (KW_LAMBDA ), opt_rule (varargslist ), tok (DEL_COLON ), rule (test_nocond ))
217217
218218// or_test: and_test ('or' and_test)*
219219// and_test: not_test ('and' not_test)*
@@ -251,18 +251,18 @@ DEF_RULE(arith_op, nc, or(2), tok(OP_PLUS), tok(OP_MINUS))
251251DEF_RULE (term , c (term ), list , rule (factor ), rule (term_op ))
252252DEF_RULE (term_op , nc , or (4 ), tok (OP_STAR ), tok (OP_SLASH ), tok (OP_PERCENT ), tok (OP_DBL_SLASH ))
253253DEF_RULE (factor , nc , or (2 ), rule (factor_2 ), rule (power ))
254- DEF_RULE (factor_2 , c (factor_2 ), and (2 ), rule (factor_op ), rule (factor ))
254+ DEF_RULE (factor_2 , c (factor_2 ), and_ident (2 ), rule (factor_op ), rule (factor ))
255255DEF_RULE (factor_op , nc , or (3 ), tok (OP_PLUS ), tok (OP_MINUS ), tok (OP_TILDE ))
256- DEF_RULE (power , c (power ), and (2 ), rule (atom_expr ), opt_rule (power_dbl_star ))
256+ DEF_RULE (power , c (power ), and_ident (2 ), rule (atom_expr ), opt_rule (power_dbl_star ))
257257#if MICROPY_PY_ASYNC_AWAIT
258258DEF_RULE (atom_expr , nc , or (2 ), rule (atom_expr_await ), rule (atom_expr_normal ))
259259DEF_RULE (atom_expr_await , c (atom_expr_await ), and (3 ), tok (KW_AWAIT ), rule (atom ), opt_rule (atom_expr_trailers ))
260260#else
261261DEF_RULE (atom_expr , nc , or (1 ), rule (atom_expr_normal ))
262262#endif
263- DEF_RULE (atom_expr_normal , c (atom_expr_normal ), and (2 ), rule (atom ), opt_rule (atom_expr_trailers ))
263+ DEF_RULE (atom_expr_normal , c (atom_expr_normal ), and_ident (2 ), rule (atom ), opt_rule (atom_expr_trailers ))
264264DEF_RULE (atom_expr_trailers , c (atom_expr_trailers ), one_or_more , rule (trailer ))
265- DEF_RULE (power_dbl_star , nc , ident | and (2 ), tok (OP_DBL_STAR ), rule (factor ))
265+ DEF_RULE (power_dbl_star , nc , and_ident (2 ), tok (OP_DBL_STAR ), rule (factor ))
266266
267267// atom: '(' [yield_expr|testlist_comp] ')' | '[' [testlist_comp] ']' | '{' [dictorsetmaker] '}' | NAME | NUMBER | STRING+ | '...' | 'None' | 'True' | 'False'
268268// testlist_comp: (test|star_expr) ( comp_for | (',' (test|star_expr))* [','] )
@@ -275,10 +275,10 @@ DEF_RULE(atom_paren, c(atom_paren), and(3), tok(DEL_PAREN_OPEN), opt_rule(atom_2
275275DEF_RULE (atom_2b , nc , or (2 ), rule (yield_expr ), rule (testlist_comp ))
276276DEF_RULE (atom_bracket , c (atom_bracket ), and (3 ), tok (DEL_BRACKET_OPEN ), opt_rule (testlist_comp ), tok (DEL_BRACKET_CLOSE ))
277277DEF_RULE (atom_brace , c (atom_brace ), and (3 ), tok (DEL_BRACE_OPEN ), opt_rule (dictorsetmaker ), tok (DEL_BRACE_CLOSE ))
278- DEF_RULE (testlist_comp , nc , and (2 ), rule (testlist_comp_2 ), opt_rule (testlist_comp_3 ))
278+ DEF_RULE (testlist_comp , nc , and_ident (2 ), rule (testlist_comp_2 ), opt_rule (testlist_comp_3 ))
279279DEF_RULE (testlist_comp_2 , nc , or (2 ), rule (star_expr ), rule (test ))
280280DEF_RULE (testlist_comp_3 , nc , or (2 ), rule (comp_for ), rule (testlist_comp_3b ))
281- DEF_RULE (testlist_comp_3b , nc , ident | and (2 ), tok (DEL_COMMA ), opt_rule (testlist_comp_3c ))
281+ DEF_RULE (testlist_comp_3b , nc , and_ident (2 ), tok (DEL_COMMA ), opt_rule (testlist_comp_3c ))
282282DEF_RULE (testlist_comp_3c , nc , list_with_end , rule (testlist_comp_2 ), tok (DEL_COMMA ))
283283DEF_RULE (trailer , nc , or (3 ), rule (trailer_paren ), rule (trailer_bracket ), rule (trailer_period ))
284284DEF_RULE (trailer_paren , c (trailer_paren ), and (3 ), tok (DEL_PAREN_OPEN ), opt_rule (arglist ), tok (DEL_PAREN_CLOSE ))
@@ -292,11 +292,11 @@ DEF_RULE(trailer_period, c(trailer_period), and(2), tok(DEL_PERIOD), tok(NAME))
292292#if MICROPY_PY_BUILTINS_SLICE
293293DEF_RULE (subscriptlist , c (generic_tuple ), list_with_end , rule (subscript ), tok (DEL_COMMA ))
294294DEF_RULE (subscript , nc , or (2 ), rule (subscript_3 ), rule (subscript_2 ))
295- DEF_RULE (subscript_2 , c (subscript_2 ), and (2 ), rule (test ), opt_rule (subscript_3 ))
295+ DEF_RULE (subscript_2 , c (subscript_2 ), and_ident (2 ), rule (test ), opt_rule (subscript_3 ))
296296DEF_RULE (subscript_3 , c (subscript_3 ), and (2 ), tok (DEL_COLON ), opt_rule (subscript_3b ))
297297DEF_RULE (subscript_3b , nc , or (2 ), rule (subscript_3c ), rule (subscript_3d ))
298298DEF_RULE (subscript_3c , nc , and (2 ), tok (DEL_COLON ), opt_rule (test ))
299- DEF_RULE (subscript_3d , nc , and (2 ), rule (test ), opt_rule (sliceop ))
299+ DEF_RULE (subscript_3d , nc , and_ident (2 ), rule (test ), opt_rule (sliceop ))
300300DEF_RULE (sliceop , nc , and (2 ), tok (DEL_COLON ), opt_rule (test ))
301301#else
302302DEF_RULE (subscriptlist , c (generic_tuple ), list_with_end , rule (test ), tok (DEL_COMMA ))
@@ -310,10 +310,10 @@ DEF_RULE(exprlist, nc, list_with_end, rule(exprlist_2), tok(DEL_COMMA))
310310DEF_RULE (exprlist_2 , nc , or (2 ), rule (star_expr ), rule (expr ))
311311DEF_RULE (testlist , c (generic_tuple ), list_with_end , rule (test ), tok (DEL_COMMA ))
312312// TODO dictorsetmaker lets through more than is allowed
313- DEF_RULE (dictorsetmaker , nc , and (2 ), rule (dictorsetmaker_item ), opt_rule (dictorsetmaker_tail ))
313+ DEF_RULE (dictorsetmaker , nc , and_ident (2 ), rule (dictorsetmaker_item ), opt_rule (dictorsetmaker_tail ))
314314#if MICROPY_PY_BUILTINS_SET
315- DEF_RULE (dictorsetmaker_item , c (dictorsetmaker_item ), and (2 ), rule (test ), opt_rule (dictorsetmaker_colon ))
316- DEF_RULE (dictorsetmaker_colon , nc , ident | and (2 ), tok (DEL_COLON ), rule (test ))
315+ DEF_RULE (dictorsetmaker_item , c (dictorsetmaker_item ), and_ident (2 ), rule (test ), opt_rule (dictorsetmaker_colon ))
316+ DEF_RULE (dictorsetmaker_colon , nc , and_ident (2 ), tok (DEL_COLON ), rule (test ))
317317#else
318318DEF_RULE (dictorsetmaker_item , c (dictorsetmaker_item ), and (3 ), rule (test ), tok (DEL_COLON ), rule (test ))
319319#endif
@@ -323,8 +323,8 @@ DEF_RULE(dictorsetmaker_list2, nc, list_with_end, rule(dictorsetmaker_item), tok
323323
324324// classdef: 'class' NAME ['(' [arglist] ')'] ':' suite
325325
326- DEF_RULE (classdef , c (classdef ), blank | and (5 ), tok (KW_CLASS ), tok (NAME ), opt_rule (classdef_2 ), tok (DEL_COLON ), rule (suite ))
327- DEF_RULE (classdef_2 , nc , ident | and (3 ), tok (DEL_PAREN_OPEN ), opt_rule (arglist ), tok (DEL_PAREN_CLOSE ))
326+ DEF_RULE (classdef , c (classdef ), and_blank (5 ), tok (KW_CLASS ), tok (NAME ), opt_rule (classdef_2 ), tok (DEL_COLON ), rule (suite ))
327+ DEF_RULE (classdef_2 , nc , and_ident (3 ), tok (DEL_PAREN_OPEN ), opt_rule (arglist ), tok (DEL_PAREN_CLOSE ))
328328
329329// arglist: (argument ',')* (argument [','] | '*' test (',' argument)* [',' '**' test] | '**' test)
330330
@@ -341,11 +341,11 @@ DEF_RULE(arglist_dbl_star, nc, and(2), tok(OP_DBL_STAR), rule(test))
341341// comp_for: 'for' exprlist 'in' or_test [comp_iter]
342342// comp_if: 'if' test_nocond [comp_iter]
343343
344- DEF_RULE (argument , nc , and (2 ), rule (test ), opt_rule (argument_2 ))
344+ DEF_RULE (argument , nc , and_ident (2 ), rule (test ), opt_rule (argument_2 ))
345345DEF_RULE (argument_2 , nc , or (2 ), rule (comp_for ), rule (argument_3 ))
346- DEF_RULE (argument_3 , nc , ident | and (2 ), tok (DEL_EQUAL ), rule (test ))
346+ DEF_RULE (argument_3 , nc , and_ident (2 ), tok (DEL_EQUAL ), rule (test ))
347347DEF_RULE (comp_iter , nc , or (2 ), rule (comp_for ), rule (comp_if ))
348- DEF_RULE (comp_for , nc , blank | and (5 ), tok (KW_FOR ), rule (exprlist ), tok (KW_IN ), rule (or_test ), opt_rule (comp_iter ))
348+ DEF_RULE (comp_for , nc , and_blank (5 ), tok (KW_FOR ), rule (exprlist ), tok (KW_IN ), rule (or_test ), opt_rule (comp_iter ))
349349DEF_RULE (comp_if , nc , and (3 ), tok (KW_IF ), rule (test_nocond ), opt_rule (comp_iter ))
350350
351351// # not used in grammar, but may appear in "node" passed from Parser to Compiler
0 commit comments