From 456eb6f943d3c876b88723ac8ddf10d5b00a3d0f Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Sat, 22 Aug 2026 00:23:51 +0100 Subject: [PATCH 1/2] gh-153568: Use FIRST sets to speed up parser choices --- Lib/test/test_peg_generator/test_c_parser.py | 51 + Parser/parser.c | 6612 +++++++++++++++++- Tools/peg_generator/pegen/c_generator.py | 149 +- Tools/peg_generator/pegen/first_sets.py | 3 +- 4 files changed, 6738 insertions(+), 77 deletions(-) diff --git a/Lib/test/test_peg_generator/test_c_parser.py b/Lib/test/test_peg_generator/test_c_parser.py index cd0b907667e4a27..329e4454b29c19a 100644 --- a/Lib/test/test_peg_generator/test_c_parser.py +++ b/Lib/test/test_peg_generator/test_c_parser.py @@ -533,6 +533,57 @@ def test_soft_keywords_lookahead(self) -> None: """ self.run_test(grammar_source, test_source) + def test_first_set_dispatch(self) -> None: + grammar = parse_string( + """ + start: expr NEWLINE + expr: NAME | NUMBER | '(' NAME ')' + """, + GrammarParser, + ) + parser_source = generate_c_parser_source(grammar) + self.assertIn("switch (_current_token_type)", parser_source) + + overlapping_grammar = parse_string( + "start: expr NEWLINE $\nexpr: NAME '+' NAME | NAME\n", + GrammarParser, + ) + parser_source = generate_c_parser_source(overlapping_grammar) + self.assertIn("_first_set_mask", parser_source) + self.run_test( + "start: expr NEWLINE $\nexpr: NAME '+' NAME | NAME\n", + 'self.check_input_strings_for_grammar(["a\\n", "a + b\\n"])', + ) + + nullable_grammar = parse_string( + "start: expr NEWLINE\nexpr: ['+'] | NUMBER\n", + GrammarParser, + ) + parser_source = generate_c_parser_source(nullable_grammar) + self.assertNotIn("switch (_current_token_type)", parser_source) + + def test_first_set_dispatch_soft_keywords(self) -> None: + grammar_source = 'start: ("foo" | "bar") NEWLINE $\n' + grammar = parse_string(grammar_source, GrammarParser) + parser_source = generate_c_parser_source(grammar) + self.assertIn("_first_set_mask", parser_source) + self.run_test( + grammar_source, + 'self.check_input_strings_for_grammar(["foo\\n", "bar\\n"], ["baz\\n"])', + ) + + def test_first_set_dispatch_invalid_rules(self) -> None: + grammar_source = """ + start: value NEWLINE $ + value: NAME '+' NAME | invalid_value + invalid_value: NAME { RAISE_SYNTAX_ERROR("expected an addition") } + """ + test_source = """ + with self.assertRaisesRegex(SyntaxError, "expected an addition"): + parse.parse_string("name\\n", mode=0) + """ + self.run_test(grammar_source, test_source) + def test_forced(self) -> None: grammar_source = """ start: NAME &&':' | NAME diff --git a/Parser/parser.c b/Parser/parser.c index 6b7e7e35bf422cf..777184ebfb4e7f8 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -1230,6 +1230,67 @@ statement_rule(Parser *p) } asdl_stmt_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 49: + case 665: + case 674: + case 700: + case 707: + case 712: + case 716: + case 717: + case 719: + _first_set_mask = 0x1ULL; + break; + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 522: + case 527: + case 528: + case 529: + case 530: + case 531: + case 588: + case 598: + case 622: + case 627: + case 628: + case 629: + case 632: + case 634: + case 638: + case 650: + case 651: + case 721: + _first_set_mask = 0x2ULL; + break; + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // compound_stmt if (p->error_indicator) { p->level--; @@ -1254,6 +1315,7 @@ statement_rule(Parser *p) D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt")); } + if (_first_set_mask & 0x2ULL) { // simple_stmts if (p->error_indicator) { p->level--; @@ -1349,6 +1411,68 @@ statement_newline_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 49: + case 665: + case 674: + case 700: + case 707: + case 712: + case 716: + case 717: + case 719: + _first_set_mask = 0x1ULL; + break; + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 522: + case 527: + case 528: + case 529: + case 530: + case 531: + case 588: + case 598: + case 622: + case 627: + case 628: + case 629: + case 632: + case 634: + case 638: + case 650: + case 651: + case 721: + _first_set_mask = 0x2ULL; + break; + case 1: + _first_set_mask = 0x3ULL; + break; + case 4: + _first_set_mask = 0x4ULL; + break; + case 0: + _first_set_mask = 0x8ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // single_compound_stmt NEWLINE if (p->error_indicator) { p->level--; @@ -1376,6 +1500,7 @@ statement_newline_rule(Parser *p) D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_compound_stmt NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // simple_stmts if (p->error_indicator) { p->level--; @@ -1395,6 +1520,7 @@ statement_newline_rule(Parser *p) D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts")); } + if (_first_set_mask & 0x4ULL) { // NEWLINE if (p->error_indicator) { p->level--; @@ -1428,6 +1554,7 @@ statement_newline_rule(Parser *p) D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } + if (_first_set_mask & 0x8ULL) { // $ if (p->error_indicator) { p->level--; @@ -1471,6 +1598,54 @@ simple_stmts_rule(Parser *p) } asdl_stmt_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 522: + case 527: + case 528: + case 529: + case 530: + case 531: + case 588: + case 598: + case 622: + case 627: + case 628: + case 629: + case 632: + case 634: + case 638: + case 650: + case 651: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // simple_stmt !';' NEWLINE if (p->error_indicator) { p->level--; @@ -1500,6 +1675,7 @@ simple_stmts_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // ';'.simple_stmt+ ';'? NEWLINE if (p->error_indicator) { p->level--; @@ -1577,6 +1753,73 @@ simple_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 650: + case 651: + _first_set_mask = 0x4ULL; + break; + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x9ULL; + break; + case 1: + _first_set_mask = 0xfULL; + break; + case 522: + _first_set_mask = 0x10ULL; + break; + case 632: + _first_set_mask = 0x20ULL; + break; + case 527: + _first_set_mask = 0x49ULL; + break; + case 634: + _first_set_mask = 0x80ULL; + break; + case 588: + _first_set_mask = 0x101ULL; + break; + case 638: + _first_set_mask = 0x200ULL; + break; + case 528: + _first_set_mask = 0x409ULL; + break; + case 529: + _first_set_mask = 0x809ULL; + break; + case 530: + _first_set_mask = 0x1000ULL; + break; + case 531: + _first_set_mask = 0x2000ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // assignment if (p->error_indicator) { p->level--; @@ -1596,6 +1839,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment")); } + if (_first_set_mask & 0x2ULL) { // &"type" type_alias if (p->error_indicator) { p->level--; @@ -1617,6 +1861,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&\"type\" type_alias")); } + if (_first_set_mask & 0x4ULL) { // &('import' | 'from' | "lazy") import_stmt if (p->error_indicator) { p->level--; @@ -1638,6 +1883,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from' | \"lazy\") import_stmt")); } + if (_first_set_mask & 0x8ULL) { // star_expressions if (p->error_indicator) { p->level--; @@ -1671,6 +1917,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } + if (_first_set_mask & 0x10ULL) { // &'return' return_stmt if (p->error_indicator) { p->level--; @@ -1692,6 +1939,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt")); } + if (_first_set_mask & 0x20ULL) { // &'raise' raise_stmt if (p->error_indicator) { p->level--; @@ -1713,6 +1961,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt")); } + if (_first_set_mask & 0x40ULL) { // &'pass' pass_stmt if (p->error_indicator) { p->level--; @@ -1734,6 +1983,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'pass' pass_stmt")); } + if (_first_set_mask & 0x80ULL) { // &'del' del_stmt if (p->error_indicator) { p->level--; @@ -1755,6 +2005,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt")); } + if (_first_set_mask & 0x100ULL) { // &'yield' yield_stmt if (p->error_indicator) { p->level--; @@ -1776,6 +2027,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt")); } + if (_first_set_mask & 0x200ULL) { // &'assert' assert_stmt if (p->error_indicator) { p->level--; @@ -1797,6 +2049,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt")); } + if (_first_set_mask & 0x400ULL) { // &'break' break_stmt if (p->error_indicator) { p->level--; @@ -1818,6 +2071,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'break' break_stmt")); } + if (_first_set_mask & 0x800ULL) { // &'continue' continue_stmt if (p->error_indicator) { p->level--; @@ -1839,6 +2093,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'continue' continue_stmt")); } + if (_first_set_mask & 0x1000ULL) { // &'global' global_stmt if (p->error_indicator) { p->level--; @@ -1860,6 +2115,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt")); } + if (_first_set_mask & 0x2000ULL) { // &'nonlocal' nonlocal_stmt if (p->error_indicator) { p->level--; @@ -1909,6 +2165,51 @@ compound_stmt_rule(Parser *p) } stmt_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 717: + _first_set_mask = 0x1ULL; + break; + case 700: + _first_set_mask = 0x2ULL; + break; + case 719: + _first_set_mask = 0x4ULL; + break; + case 49: + _first_set_mask = 0x5ULL; + break; + case 665: + _first_set_mask = 0x8ULL; + break; + case 712: + _first_set_mask = 0x10ULL; + break; + case 716: + _first_set_mask = 0x19ULL; + break; + case 674: + _first_set_mask = 0x20ULL; + break; + case 707: + _first_set_mask = 0x40ULL; + break; + case 1: + _first_set_mask = 0x80ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // &('def' | '@' | 'async') function_def if (p->error_indicator) { p->level--; @@ -1930,6 +2231,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | 'async') function_def")); } + if (_first_set_mask & 0x2ULL) { // &'if' if_stmt if (p->error_indicator) { p->level--; @@ -1951,6 +2253,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt")); } + if (_first_set_mask & 0x4ULL) { // &('class' | '@') class_def if (p->error_indicator) { p->level--; @@ -1972,6 +2275,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def")); } + if (_first_set_mask & 0x8ULL) { // &('with' | 'async') with_stmt if (p->error_indicator) { p->level--; @@ -1993,6 +2297,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | 'async') with_stmt")); } + if (_first_set_mask & 0x10ULL) { // &('for' | 'async') for_stmt if (p->error_indicator) { p->level--; @@ -2014,6 +2319,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | 'async') for_stmt")); } + if (_first_set_mask & 0x20ULL) { // &'try' try_stmt if (p->error_indicator) { p->level--; @@ -2035,6 +2341,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt")); } + if (_first_set_mask & 0x40ULL) { // &'while' while_stmt if (p->error_indicator) { p->level--; @@ -2056,6 +2363,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt")); } + if (_first_set_mask & 0x80ULL) { // match_stmt if (p->error_indicator) { p->level--; @@ -2108,6 +2416,47 @@ assignment_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 14: + case 15: + case 31: + case 527: + case 528: + case 529: + case 588: + case 598: + case 622: + case 721: + _first_set_mask = 0x10ULL; + break; + case 16: + _first_set_mask = 0x14ULL; + break; + case 2: + case 3: + case 7: + case 9: + case 25: + case 52: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x1eULL; + break; + case 1: + _first_set_mask = 0x1fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // NAME ':' expression ['=' annotated_rhs] if (p->error_indicator) { p->level--; @@ -2150,6 +2499,7 @@ assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]")); } + if (_first_set_mask & 0x2ULL) { // ('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs] if (p->error_indicator) { p->level--; @@ -2192,6 +2542,7 @@ assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs]")); } + if (_first_set_mask & 0x4ULL) { // ((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT? if (p->error_indicator) { p->level--; @@ -2233,6 +2584,7 @@ assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT?")); } + if (_first_set_mask & 0x8ULL) { // single_target augassign ~ annotated_rhs if (p->error_indicator) { p->level--; @@ -2279,6 +2631,7 @@ assignment_rule(Parser *p) return NULL; } } + if (_first_set_mask & 0x10ULL) if (p->call_invalid_rules) { // invalid_assignment if (p->error_indicator) { p->level--; @@ -2317,6 +2670,44 @@ annotated_rhs_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 588: + goto first_set_alt_0; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + goto first_set_alt_1; + default: + goto first_set_done_2; + } + } + first_set_alt_0: { // yield_expr if (p->error_indicator) { p->level--; @@ -2336,6 +2727,10 @@ annotated_rhs_rule(Parser *p) D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } + if (!p->call_invalid_rules) { + goto first_set_done_2; + } + first_set_alt_1: { // star_expressions if (p->error_indicator) { p->level--; @@ -2355,6 +2750,11 @@ annotated_rhs_rule(Parser *p) D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } + if (!p->call_invalid_rules) { + goto first_set_done_2; + } + first_set_done_2: + ; _res = NULL; done: p->level--; @@ -2387,6 +2787,45 @@ augassign_rule(Parser *p) } AugOperator* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 36: + goto first_set_alt_3; + case 37: + goto first_set_alt_4; + case 38: + goto first_set_alt_5; + case 50: + goto first_set_alt_6; + case 39: + goto first_set_alt_7; + case 40: + goto first_set_alt_8; + case 41: + goto first_set_alt_9; + case 42: + goto first_set_alt_10; + case 43: + goto first_set_alt_11; + case 44: + goto first_set_alt_12; + case 45: + goto first_set_alt_13; + case 46: + goto first_set_alt_14; + case 48: + goto first_set_alt_15; + default: + goto first_set_done_16; + } + } + first_set_alt_3: { // '+=' if (p->error_indicator) { p->level--; @@ -2411,6 +2850,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_4: { // '-=' if (p->error_indicator) { p->level--; @@ -2435,6 +2878,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_5: { // '*=' if (p->error_indicator) { p->level--; @@ -2459,6 +2906,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_6: { // '@=' if (p->error_indicator) { p->level--; @@ -2483,6 +2934,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_7: { // '/=' if (p->error_indicator) { p->level--; @@ -2507,6 +2962,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_8: { // '%=' if (p->error_indicator) { p->level--; @@ -2531,6 +2990,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_9: { // '&=' if (p->error_indicator) { p->level--; @@ -2555,6 +3018,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_10: { // '|=' if (p->error_indicator) { p->level--; @@ -2579,6 +3046,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_11: { // '^=' if (p->error_indicator) { p->level--; @@ -2603,6 +3074,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_12: { // '<<=' if (p->error_indicator) { p->level--; @@ -2627,6 +3102,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_13: { // '>>=' if (p->error_indicator) { p->level--; @@ -2651,6 +3130,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_14: { // '**=' if (p->error_indicator) { p->level--; @@ -2675,6 +3158,10 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_alt_15: { // '//=' if (p->error_indicator) { p->level--; @@ -2699,6 +3186,11 @@ augassign_rule(Parser *p) D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='")); } + if (!p->call_invalid_rules) { + goto first_set_done_16; + } + first_set_done_16: + ; _res = NULL; done: p->level--; @@ -2795,6 +3287,19 @@ raise_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 632: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'raise' expression 'from' expression if (p->error_indicator) { p->level--; @@ -2837,6 +3342,7 @@ raise_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression 'from' expression")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_raise_stmt if (p->error_indicator) { p->level--; @@ -2856,6 +3362,7 @@ raise_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_raise_stmt")); } + if (_first_set_mask & 0x4ULL) { // 'raise' expression if (p->error_indicator) { p->level--; @@ -2892,6 +3399,7 @@ raise_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression")); } + if (_first_set_mask & 0x8ULL) { // 'raise' if (p->error_indicator) { p->level--; @@ -3264,6 +3772,19 @@ del_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 634: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'del' del_targets &(';' | NEWLINE) if (p->error_indicator) { p->level--; @@ -3302,6 +3823,7 @@ del_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets &(';' | NEWLINE)")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_del_stmt if (p->error_indicator) { p->level--; @@ -3410,6 +3932,19 @@ assert_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 638: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_assert_stmt if (p->error_indicator) { p->level--; @@ -3429,6 +3964,7 @@ assert_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assert_stmt")); } + if (_first_set_mask & 0x2ULL) { // 'assert' expression [',' expression] if (p->error_indicator) { p->level--; @@ -3491,6 +4027,30 @@ import_stmt_rule(Parser *p) return _res; } int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 651: + _first_set_mask = 0x3ULL; + break; + case 650: + _first_set_mask = 0x4ULL; + break; + case 1: + _first_set_mask = 0x6ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_import if (p->error_indicator) { p->level--; @@ -3510,6 +4070,7 @@ import_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import")); } + if (_first_set_mask & 0x2ULL) { // import_name if (p->error_indicator) { p->level--; @@ -3529,6 +4090,7 @@ import_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name")); } + if (_first_set_mask & 0x4ULL) { // import_from if (p->error_indicator) { p->level--; @@ -3647,6 +4209,22 @@ import_from_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x6ULL; + break; + case 650: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_import_from if (p->error_indicator) { p->level--; @@ -3666,6 +4244,7 @@ import_from_rule(Parser *p) D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from")); } + if (_first_set_mask & 0x2ULL) { // "lazy"? 'from' (('.' | '...'))* dotted_name 'import' import_from_targets if (p->error_indicator) { p->level--; @@ -3714,6 +4293,7 @@ import_from_rule(Parser *p) D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"lazy\"? 'from' (('.' | '...'))* dotted_name 'import' import_from_targets")); } + if (_first_set_mask & 0x4ULL) { // "lazy"? 'from' (('.' | '...'))+ 'import' import_from_targets if (p->error_indicator) { p->level--; @@ -3791,6 +4371,28 @@ import_from_targets_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + _first_set_mask = 0x1ULL; + break; + case 16: + _first_set_mask = 0x4ULL; + break; + case 4: + _first_set_mask = 0x8ULL; + break; + case 1: + _first_set_mask = 0xaULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '(' import_from_as_names ','? ')' if (p->error_indicator) { p->level--; @@ -3825,6 +4427,7 @@ import_from_targets_rule(Parser *p) D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'")); } + if (_first_set_mask & 0x2ULL) { // import_from_as_names !',' if (p->error_indicator) { p->level--; @@ -3846,6 +4449,7 @@ import_from_targets_rule(Parser *p) D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','")); } + if (_first_set_mask & 0x4ULL) { // '*' if (p->error_indicator) { p->level--; @@ -3879,6 +4483,7 @@ import_from_targets_rule(Parser *p) D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } + if (_first_set_mask & 0x8ULL) if (p->call_invalid_rules) { // invalid_import_from_targets if (p->error_indicator) { p->level--; @@ -3969,6 +4574,19 @@ import_from_as_name_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_import_from_as_name if (p->error_indicator) { p->level--; @@ -3988,6 +4606,7 @@ import_from_as_name_rule(Parser *p) D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_as_name")); } + if (_first_set_mask & 0x2ULL) { // NAME ['as' NAME] if (p->error_indicator) { p->level--; @@ -4095,6 +4714,19 @@ dotted_as_name_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_dotted_as_name if (p->error_indicator) { p->level--; @@ -4114,6 +4746,7 @@ dotted_as_name_rule(Parser *p) D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dotted_as_name")); } + if (_first_set_mask & 0x2ULL) { // dotted_name ['as' NAME] if (p->error_indicator) { p->level--; @@ -4207,6 +4840,24 @@ dotted_name_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // dotted_name '.' NAME if (p->error_indicator) { p->level--; @@ -4237,6 +4888,7 @@ dotted_name_raw(Parser *p) D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME")); } + if (_first_set_mask & 0x2ULL) { // NAME if (p->error_indicator) { p->level--; @@ -4279,6 +4931,57 @@ block_rule(Parser *p) return _res; } int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 522: + case 527: + case 528: + case 529: + case 530: + case 531: + case 588: + case 598: + case 622: + case 627: + case 628: + case 629: + case 632: + case 634: + case 638: + case 650: + case 651: + case 721: + _first_set_mask = 0x2ULL; + break; + case 4: + _first_set_mask = 0x5ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // NEWLINE INDENT statements DEDENT if (p->error_indicator) { p->level--; @@ -4312,6 +5015,7 @@ block_rule(Parser *p) D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT")); } + if (_first_set_mask & 0x2ULL) { // simple_stmts if (p->error_indicator) { p->level--; @@ -4331,6 +5035,7 @@ block_rule(Parser *p) D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts")); } + if (_first_set_mask & 0x4ULL) if (p->call_invalid_rules) { // invalid_block if (p->error_indicator) { p->level--; @@ -4413,6 +5118,23 @@ class_def_rule(Parser *p) } stmt_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 49: + goto first_set_alt_17; + case 719: + goto first_set_alt_18; + default: + goto first_set_done_19; + } + } + first_set_alt_17: { // decorators class_def_raw if (p->error_indicator) { p->level--; @@ -4440,6 +5162,10 @@ class_def_rule(Parser *p) D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw")); } + if (!p->call_invalid_rules) { + goto first_set_done_19; + } + first_set_alt_18: { // class_def_raw if (p->error_indicator) { p->level--; @@ -4459,6 +5185,11 @@ class_def_rule(Parser *p) D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw")); } + if (!p->call_invalid_rules) { + goto first_set_done_19; + } + first_set_done_19: + ; _res = NULL; done: p->level--; @@ -4489,6 +5220,19 @@ class_def_raw_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 719: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_class_def_raw if (p->error_indicator) { p->level--; @@ -4508,6 +5252,7 @@ class_def_raw_rule(Parser *p) D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_class_def_raw")); } + if (_first_set_mask & 0x2ULL) { // 'class' NAME type_params? ['(' arguments? ')'] ':' block if (p->error_indicator) { p->level--; @@ -4575,6 +5320,24 @@ function_def_rule(Parser *p) } stmt_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 49: + goto first_set_alt_20; + case 716: + case 717: + goto first_set_alt_21; + default: + goto first_set_done_22; + } + } + first_set_alt_20: { // decorators function_def_raw if (p->error_indicator) { p->level--; @@ -4602,6 +5365,10 @@ function_def_rule(Parser *p) D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw")); } + if (!p->call_invalid_rules) { + goto first_set_done_22; + } + first_set_alt_21: { // function_def_raw if (p->error_indicator) { p->level--; @@ -4621,6 +5388,11 @@ function_def_rule(Parser *p) D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw")); } + if (!p->call_invalid_rules) { + goto first_set_done_22; + } + first_set_done_22: + ; _res = NULL; done: p->level--; @@ -4652,6 +5424,22 @@ function_def_raw_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 717: + _first_set_mask = 0x3ULL; + break; + case 716: + _first_set_mask = 0x5ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_def_raw if (p->error_indicator) { p->level--; @@ -4671,6 +5459,7 @@ function_def_raw_rule(Parser *p) D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_def_raw")); } + if (_first_set_mask & 0x2ULL) { // 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block if (p->error_indicator) { p->level--; @@ -4731,6 +5520,7 @@ function_def_raw_rule(Parser *p) D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block")); } + if (_first_set_mask & 0x4ULL) { // 'async' 'def' NAME type_params? '(' params? ')' ['->' expression] ':' func_type_comment? block if (p->error_indicator) { p->level--; @@ -4813,6 +5603,32 @@ params_rule(Parser *p) } arguments_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + case 17: + _first_set_mask = 0x1ULL; + break; + case 35: + _first_set_mask = 0x2ULL; + break; + case 1: + case 16: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_parameters if (p->error_indicator) { p->level--; @@ -4832,6 +5648,7 @@ params_rule(Parser *p) D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters")); } + if (_first_set_mask & 0x2ULL) { // parameters if (p->error_indicator) { p->level--; @@ -4875,6 +5692,28 @@ parameters_rule(Parser *p) } arguments_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0xfULL; + break; + case 16: + case 35: + _first_set_mask = 0x10ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // slash_no_default param_no_default* param_with_default* star_etc? if (p->error_indicator) { p->level--; @@ -4908,6 +5747,7 @@ parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?")); } + if (_first_set_mask & 0x2ULL) { // slash_with_default param_with_default* star_etc? if (p->error_indicator) { p->level--; @@ -4938,6 +5778,7 @@ parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?")); } + if (_first_set_mask & 0x4ULL) { // param_no_default+ param_with_default* star_etc? if (p->error_indicator) { p->level--; @@ -4968,6 +5809,7 @@ parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?")); } + if (_first_set_mask & 0x8ULL) { // param_with_default+ star_etc? if (p->error_indicator) { p->level--; @@ -4995,6 +5837,7 @@ parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?")); } + if (_first_set_mask & 0x10ULL) { // star_etc if (p->error_indicator) { p->level--; @@ -5038,6 +5881,24 @@ slash_no_default_rule(Parser *p) } asdl_arg_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // param_no_default+ '/' ',' if (p->error_indicator) { p->level--; @@ -5068,6 +5929,7 @@ slash_no_default_rule(Parser *p) D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','")); } + if (_first_set_mask & 0x2ULL) { // param_no_default+ '/' &')' if (p->error_indicator) { p->level--; @@ -5118,6 +5980,24 @@ slash_with_default_rule(Parser *p) } SlashWithDefault* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // param_no_default* param_with_default+ '/' ',' if (p->error_indicator) { p->level--; @@ -5151,6 +6031,7 @@ slash_with_default_rule(Parser *p) D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','")); } + if (_first_set_mask & 0x2ULL) { // param_no_default* param_with_default+ '/' &')' if (p->error_indicator) { p->level--; @@ -5207,6 +6088,27 @@ star_etc_rule(Parser *p) } StarEtc* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0xfULL; + break; + case 35: + _first_set_mask = 0x10ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_star_etc if (p->error_indicator) { p->level--; @@ -5226,6 +6128,7 @@ star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc")); } + if (_first_set_mask & 0x2ULL) { // '*' param_no_default param_maybe_default* kwds? if (p->error_indicator) { p->level--; @@ -5259,6 +6162,7 @@ star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?")); } + if (_first_set_mask & 0x4ULL) { // '*' param_no_default_star_annotation param_maybe_default* kwds? if (p->error_indicator) { p->level--; @@ -5292,6 +6196,7 @@ star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default_star_annotation param_maybe_default* kwds?")); } + if (_first_set_mask & 0x8ULL) { // '*' ',' param_maybe_default+ kwds? if (p->error_indicator) { p->level--; @@ -5325,6 +6230,7 @@ star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?")); } + if (_first_set_mask & 0x10ULL) { // kwds if (p->error_indicator) { p->level--; @@ -5368,6 +6274,24 @@ kwds_rule(Parser *p) } arg_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 35: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_kwds if (p->error_indicator) { p->level--; @@ -5387,6 +6311,7 @@ kwds_rule(Parser *p) D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwds")); } + if (_first_set_mask & 0x2ULL) { // '**' param_no_default if (p->error_indicator) { p->level--; @@ -5433,6 +6358,24 @@ param_no_default_rule(Parser *p) } arg_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // param ',' TYPE_COMMENT? if (p->error_indicator) { p->level--; @@ -5463,6 +6406,7 @@ param_no_default_rule(Parser *p) D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?")); } + if (_first_set_mask & 0x2ULL) { // param TYPE_COMMENT? &')' if (p->error_indicator) { p->level--; @@ -5513,6 +6457,24 @@ param_no_default_star_annotation_rule(Parser *p) } arg_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // param_star_annotation ',' TYPE_COMMENT? if (p->error_indicator) { p->level--; @@ -5543,6 +6505,7 @@ param_no_default_star_annotation_rule(Parser *p) D(fprintf(stderr, "%*c%s param_no_default_star_annotation[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_star_annotation ',' TYPE_COMMENT?")); } + if (_first_set_mask & 0x2ULL) { // param_star_annotation TYPE_COMMENT? &')' if (p->error_indicator) { p->level--; @@ -5591,6 +6554,24 @@ param_with_default_rule(Parser *p) } NameDefaultPair* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // param default ',' TYPE_COMMENT? if (p->error_indicator) { p->level--; @@ -5624,6 +6605,7 @@ param_with_default_rule(Parser *p) D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?")); } + if (_first_set_mask & 0x2ULL) { // param default TYPE_COMMENT? &')' if (p->error_indicator) { p->level--; @@ -5677,6 +6659,24 @@ param_maybe_default_rule(Parser *p) } NameDefaultPair* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // param default? ',' TYPE_COMMENT? if (p->error_indicator) { p->level--; @@ -5710,6 +6710,7 @@ param_maybe_default_rule(Parser *p) D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?")); } + if (_first_set_mask & 0x2ULL) { // param default? TYPE_COMMENT? &')' if (p->error_indicator) { p->level--; @@ -5981,6 +6982,24 @@ default_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 22: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '=' expression if (p->error_indicator) { p->level--; @@ -6008,6 +7027,7 @@ default_rule(Parser *p) D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_default if (p->error_indicator) { p->level--; @@ -6058,6 +7078,19 @@ if_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 700: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_if_stmt if (p->error_indicator) { p->level--; @@ -6077,6 +7110,7 @@ if_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_stmt")); } + if (_first_set_mask & 0x2ULL) { // 'if' named_expression ':' block elif_stmt if (p->error_indicator) { p->level--; @@ -6122,6 +7156,7 @@ if_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt")); } + if (_first_set_mask & 0x4ULL) { // 'if' named_expression ':' block else_block? if (p->error_indicator) { p->level--; @@ -6198,6 +7233,19 @@ elif_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 705: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_elif_stmt if (p->error_indicator) { p->level--; @@ -6217,6 +7265,7 @@ elif_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_elif_stmt")); } + if (_first_set_mask & 0x2ULL) { // 'elif' named_expression ':' block elif_stmt if (p->error_indicator) { p->level--; @@ -6262,6 +7311,7 @@ elif_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt")); } + if (_first_set_mask & 0x4ULL) { // 'elif' named_expression ':' block else_block? if (p->error_indicator) { p->level--; @@ -6326,6 +7376,24 @@ else_block_rule(Parser *p) } asdl_stmt_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 704: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_else_stmt if (p->error_indicator) { p->level--; @@ -6345,6 +7413,7 @@ else_block_rule(Parser *p) D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_else_stmt")); } + if (_first_set_mask & 0x2ULL) { // 'else' &&':' block if (p->error_indicator) { p->level--; @@ -6403,6 +7472,19 @@ while_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 707: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_while_stmt if (p->error_indicator) { p->level--; @@ -6422,6 +7504,7 @@ while_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_while_stmt")); } + if (_first_set_mask & 0x2ULL) { // 'while' named_expression ':' block else_block? if (p->error_indicator) { p->level--; @@ -6499,6 +7582,22 @@ for_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 712: + _first_set_mask = 0xbULL; + break; + case 716: + _first_set_mask = 0xdULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_for_stmt if (p->error_indicator) { p->level--; @@ -6518,6 +7617,7 @@ for_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_stmt")); } + if (_first_set_mask & 0x2ULL) { // 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? if (p->error_indicator) { p->level--; @@ -6579,6 +7679,7 @@ for_stmt_rule(Parser *p) return NULL; } } + if (_first_set_mask & 0x4ULL) { // 'async' 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block? if (p->error_indicator) { p->level--; @@ -6643,6 +7744,7 @@ for_stmt_rule(Parser *p) return NULL; } } + if (_first_set_mask & 0x8ULL) if (p->call_invalid_rules) { // invalid_for_target if (p->error_indicator) { p->level--; @@ -6696,6 +7798,22 @@ with_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 665: + _first_set_mask = 0x27ULL; + break; + case 716: + _first_set_mask = 0x39ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_with_stmt_indent if (p->error_indicator) { p->level--; @@ -6715,6 +7833,7 @@ with_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_stmt_indent")); } + if (_first_set_mask & 0x2ULL) { // 'with' '(' ','.with_item+ ','? ')' ':' TYPE_COMMENT? block if (p->error_indicator) { p->level--; @@ -6770,6 +7889,7 @@ with_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' TYPE_COMMENT? block")); } + if (_first_set_mask & 0x4ULL) { // 'with' ','.with_item+ ':' TYPE_COMMENT? block if (p->error_indicator) { p->level--; @@ -6815,6 +7935,7 @@ with_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block")); } + if (_first_set_mask & 0x8ULL) { // 'async' 'with' '(' ','.with_item+ ','? ')' ':' block if (p->error_indicator) { p->level--; @@ -6870,6 +7991,7 @@ with_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async' 'with' '(' ','.with_item+ ','? ')' ':' block")); } + if (_first_set_mask & 0x10ULL) { // 'async' 'with' ','.with_item+ ':' TYPE_COMMENT? block if (p->error_indicator) { p->level--; @@ -6918,6 +8040,7 @@ with_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async' 'with' ','.with_item+ ':' TYPE_COMMENT? block")); } + if (_first_set_mask & 0x20ULL) if (p->call_invalid_rules) { // invalid_with_stmt if (p->error_indicator) { p->level--; @@ -6959,6 +8082,44 @@ with_item_rule(Parser *p) } withitem_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // expression 'as' star_target &(',' | ')' | ':') if (p->error_indicator) { p->level--; @@ -6991,6 +8152,7 @@ with_item_rule(Parser *p) D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_with_item if (p->error_indicator) { p->level--; @@ -7010,6 +8172,7 @@ with_item_rule(Parser *p) D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item")); } + if (_first_set_mask & 0x4ULL) { // expression if (p->error_indicator) { p->level--; @@ -7066,6 +8229,19 @@ try_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 674: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_try_stmt if (p->error_indicator) { p->level--; @@ -7085,6 +8261,7 @@ try_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_try_stmt")); } + if (_first_set_mask & 0x2ULL) { // 'try' &&':' block finally_block if (p->error_indicator) { p->level--; @@ -7127,6 +8304,7 @@ try_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block finally_block")); } + if (_first_set_mask & 0x4ULL) { // 'try' &&':' block except_block+ else_block? finally_block? if (p->error_indicator) { p->level--; @@ -7175,6 +8353,7 @@ try_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' &&':' block except_block+ else_block? finally_block?")); } + if (_first_set_mask & 0x8ULL) { // 'try' &&':' block except_star_block+ else_block? finally_block? if (p->error_indicator) { p->level--; @@ -7257,6 +8436,19 @@ except_block_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 695: + _first_set_mask = 0x3fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_except_stmt_indent if (p->error_indicator) { p->level--; @@ -7276,6 +8468,7 @@ except_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_stmt_indent")); } + if (_first_set_mask & 0x2ULL) { // 'except' expression ':' block if (p->error_indicator) { p->level--; @@ -7318,6 +8511,7 @@ except_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ':' block")); } + if (_first_set_mask & 0x4ULL) { // 'except' expression 'as' NAME ':' block if (p->error_indicator) { p->level--; @@ -7366,6 +8560,7 @@ except_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression 'as' NAME ':' block")); } + if (_first_set_mask & 0x8ULL) { // 'except' expressions ':' block if (p->error_indicator) { p->level--; @@ -7408,6 +8603,7 @@ except_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expressions ':' block")); } + if (_first_set_mask & 0x10ULL) { // 'except' ':' block if (p->error_indicator) { p->level--; @@ -7447,6 +8643,7 @@ except_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block")); } + if (_first_set_mask & 0x20ULL) if (p->call_invalid_rules) { // invalid_except_stmt if (p->error_indicator) { p->level--; @@ -7499,6 +8696,19 @@ except_star_block_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 695: + _first_set_mask = 0x1fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_except_star_stmt_indent if (p->error_indicator) { p->level--; @@ -7518,6 +8728,7 @@ except_star_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_except_star_stmt_indent")); } + if (_first_set_mask & 0x2ULL) { // 'except' '*' expression ':' block if (p->error_indicator) { p->level--; @@ -7563,6 +8774,7 @@ except_star_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ':' block")); } + if (_first_set_mask & 0x4ULL) { // 'except' '*' expression 'as' NAME ':' block if (p->error_indicator) { p->level--; @@ -7614,6 +8826,7 @@ except_star_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression 'as' NAME ':' block")); } + if (_first_set_mask & 0x8ULL) { // 'except' '*' expressions ':' block if (p->error_indicator) { p->level--; @@ -7659,6 +8872,7 @@ except_star_block_rule(Parser *p) D(fprintf(stderr, "%*c%s except_star_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expressions ':' block")); } + if (_first_set_mask & 0x10ULL) if (p->call_invalid_rules) { // invalid_except_star_stmt if (p->error_indicator) { p->level--; @@ -7697,6 +8911,24 @@ finally_block_rule(Parser *p) } asdl_stmt_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 691: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_finally_stmt if (p->error_indicator) { p->level--; @@ -7716,6 +8948,7 @@ finally_block_rule(Parser *p) D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_finally_stmt")); } + if (_first_set_mask & 0x2ULL) { // 'finally' &&':' block if (p->error_indicator) { p->level--; @@ -7776,6 +9009,19 @@ match_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // "match" subject_expr ':' NEWLINE INDENT case_block+ DEDENT if (p->error_indicator) { p->level--; @@ -7827,6 +9073,7 @@ match_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s match_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE INDENT case_block+ DEDENT")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_match_stmt if (p->error_indicator) { p->level--; @@ -7874,6 +9121,42 @@ subject_expr_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x1ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // star_named_expression ',' star_named_expressions? if (p->error_indicator) { p->level--; @@ -7913,6 +9196,7 @@ subject_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?")); } + if (_first_set_mask & 0x2ULL) { // named_expression if (p->error_indicator) { p->level--; @@ -7951,6 +9235,24 @@ case_block_rule(Parser *p) } match_case_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_case_block if (p->error_indicator) { p->level--; @@ -7970,6 +9272,7 @@ case_block_rule(Parser *p) D(fprintf(stderr, "%*c%s case_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_case_block")); } + if (_first_set_mask & 0x2ULL) { // "case" patterns guard? ':' block if (p->error_indicator) { p->level--; @@ -8080,6 +9383,34 @@ patterns_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x1ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // open_sequence_pattern if (p->error_indicator) { p->level--; @@ -8113,6 +9444,7 @@ patterns_rule(Parser *p) D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern")); } + if (_first_set_mask & 0x2ULL) { // pattern if (p->error_indicator) { p->level--; @@ -8151,6 +9483,36 @@ pattern_rule(Parser *p) } pattern_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // as_pattern if (p->error_indicator) { p->level--; @@ -8170,6 +9532,7 @@ pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern")); } + if (_first_set_mask & 0x2ULL) { // or_pattern if (p->error_indicator) { p->level--; @@ -8217,6 +9580,31 @@ as_pattern_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // or_pattern 'as' pattern_capture_target if (p->error_indicator) { p->level--; @@ -8256,6 +9644,7 @@ as_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_as_pattern if (p->error_indicator) { p->level--; @@ -8367,6 +9756,44 @@ closed_pattern_rule(Parser *p) return _res; } int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 3: + case 14: + case 15: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x1ULL; + break; + case 9: + _first_set_mask = 0x20ULL; + break; + case 7: + _first_set_mask = 0x30ULL; + break; + case 25: + _first_set_mask = 0x40ULL; + break; + case 1: + _first_set_mask = 0x8eULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // literal_pattern if (p->error_indicator) { p->level--; @@ -8386,6 +9813,7 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern")); } + if (_first_set_mask & 0x2ULL) { // capture_pattern if (p->error_indicator) { p->level--; @@ -8405,6 +9833,7 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern")); } + if (_first_set_mask & 0x4ULL) { // wildcard_pattern if (p->error_indicator) { p->level--; @@ -8424,6 +9853,7 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern")); } + if (_first_set_mask & 0x8ULL) { // value_pattern if (p->error_indicator) { p->level--; @@ -8443,6 +9873,7 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern")); } + if (_first_set_mask & 0x10ULL) { // group_pattern if (p->error_indicator) { p->level--; @@ -8462,6 +9893,7 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern")); } + if (_first_set_mask & 0x20ULL) { // sequence_pattern if (p->error_indicator) { p->level--; @@ -8481,6 +9913,7 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern")); } + if (_first_set_mask & 0x40ULL) { // mapping_pattern if (p->error_indicator) { p->level--; @@ -8500,6 +9933,7 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern")); } + if (_first_set_mask & 0x80ULL) { // class_pattern if (p->error_indicator) { p->level--; @@ -8554,6 +9988,35 @@ literal_pattern_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 14: + case 15: + _first_set_mask = 0x3ULL; + break; + case 3: + case 59: + case 62: + _first_set_mask = 0x4ULL; + break; + case 628: + _first_set_mask = 0x8ULL; + break; + case 627: + _first_set_mask = 0x10ULL; + break; + case 629: + _first_set_mask = 0x20ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // signed_number !('+' | '-') if (p->error_indicator) { p->level--; @@ -8589,6 +10052,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')")); } + if (_first_set_mask & 0x2ULL) { // complex_number if (p->error_indicator) { p->level--; @@ -8622,6 +10086,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number")); } + if (_first_set_mask & 0x4ULL) { // strings if (p->error_indicator) { p->level--; @@ -8655,6 +10120,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "strings")); } + if (_first_set_mask & 0x8ULL) { // 'None' if (p->error_indicator) { p->level--; @@ -8688,6 +10154,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } + if (_first_set_mask & 0x10ULL) { // 'True' if (p->error_indicator) { p->level--; @@ -8721,6 +10188,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } + if (_first_set_mask & 0x20ULL) { // 'False' if (p->error_indicator) { p->level--; @@ -8788,6 +10256,35 @@ literal_expr_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 14: + case 15: + _first_set_mask = 0x3ULL; + break; + case 3: + case 59: + case 62: + _first_set_mask = 0x4ULL; + break; + case 628: + _first_set_mask = 0x8ULL; + break; + case 627: + _first_set_mask = 0x10ULL; + break; + case 629: + _first_set_mask = 0x20ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // signed_number !('+' | '-') if (p->error_indicator) { p->level--; @@ -8809,6 +10306,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')")); } + if (_first_set_mask & 0x2ULL) { // complex_number if (p->error_indicator) { p->level--; @@ -8828,6 +10326,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number")); } + if (_first_set_mask & 0x4ULL) { // &(STRING | FSTRING_START | TSTRING_START) strings if (p->error_indicator) { p->level--; @@ -8849,6 +10348,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); } + if (_first_set_mask & 0x8ULL) { // 'None' if (p->error_indicator) { p->level--; @@ -8882,6 +10382,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } + if (_first_set_mask & 0x10ULL) { // 'True' if (p->error_indicator) { p->level--; @@ -8915,6 +10416,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } + if (_first_set_mask & 0x20ULL) { // 'False' if (p->error_indicator) { p->level--; @@ -8978,6 +10480,21 @@ complex_number_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 14: + case 15: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // signed_real_number '+' imaginary_number if (p->error_indicator) { p->level--; @@ -9017,6 +10534,7 @@ complex_number_rule(Parser *p) D(fprintf(stderr, "%*c%s complex_number[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_real_number '+' imaginary_number")); } + if (_first_set_mask & 0x2ULL) { // signed_real_number '-' imaginary_number if (p->error_indicator) { p->level--; @@ -9084,6 +10602,20 @@ signed_number_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 2: + goto first_set_alt_23; + case 14: + goto first_set_alt_24; + case 15: + goto first_set_alt_25; + default: + goto first_set_done_26; + } + } + first_set_alt_23: { // NUMBER if (p->error_indicator) { p->level--; @@ -9103,6 +10635,10 @@ signed_number_rule(Parser *p) D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER")); } + if (!p->call_invalid_rules) { + goto first_set_done_26; + } + first_set_alt_24: { // '+' NUMBER if (p->error_indicator) { p->level--; @@ -9130,6 +10666,10 @@ signed_number_rule(Parser *p) D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' NUMBER")); } + if (!p->call_invalid_rules) { + goto first_set_done_26; + } + first_set_alt_25: { // '-' NUMBER if (p->error_indicator) { p->level--; @@ -9166,6 +10706,11 @@ signed_number_rule(Parser *p) D(fprintf(stderr, "%*c%s signed_number[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER")); } + if (!p->call_invalid_rules) { + goto first_set_done_26; + } + first_set_done_26: + ; _res = NULL; done: p->level--; @@ -9194,6 +10739,20 @@ signed_real_number_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 2: + goto first_set_alt_27; + case 14: + goto first_set_alt_28; + case 15: + goto first_set_alt_29; + default: + goto first_set_done_30; + } + } + first_set_alt_27: { // real_number if (p->error_indicator) { p->level--; @@ -9213,6 +10772,10 @@ signed_real_number_rule(Parser *p) D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number")); } + if (!p->call_invalid_rules) { + goto first_set_done_30; + } + first_set_alt_28: { // '+' real_number if (p->error_indicator) { p->level--; @@ -9240,6 +10803,10 @@ signed_real_number_rule(Parser *p) D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' real_number")); } + if (!p->call_invalid_rules) { + goto first_set_done_30; + } + first_set_alt_29: { // '-' real_number if (p->error_indicator) { p->level--; @@ -9276,6 +10843,11 @@ signed_real_number_rule(Parser *p) D(fprintf(stderr, "%*c%s signed_real_number[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number")); } + if (!p->call_invalid_rules) { + goto first_set_done_30; + } + first_set_done_30: + ; _res = NULL; done: p->level--; @@ -9719,6 +11291,24 @@ name_or_attr_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // attr if (p->error_indicator) { p->level--; @@ -9738,6 +11328,7 @@ name_or_attr_rule(Parser *p) D(fprintf(stderr, "%*c%s name_or_attr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr")); } + if (_first_set_mask & 0x2ULL) { // NAME if (p->error_indicator) { p->level--; @@ -9834,6 +11425,18 @@ sequence_pattern_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 9: + goto first_set_alt_31; + case 7: + goto first_set_alt_32; + default: + goto first_set_done_33; + } + } + first_set_alt_31: { // '[' maybe_sequence_pattern? ']' if (p->error_indicator) { p->level--; @@ -9873,6 +11476,10 @@ sequence_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'")); } + if (!p->call_invalid_rules) { + goto first_set_done_33; + } + first_set_alt_32: { // '(' open_sequence_pattern? ')' if (p->error_indicator) { p->level--; @@ -9912,6 +11519,11 @@ sequence_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s sequence_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'")); } + if (!p->call_invalid_rules) { + goto first_set_done_33; + } + first_set_done_33: + ; _res = NULL; done: p->level--; @@ -10027,6 +11639,35 @@ maybe_star_pattern_rule(Parser *p) } pattern_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 16: + goto first_set_alt_34; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 59: + case 62: + case 627: + case 628: + case 629: + goto first_set_alt_35; + default: + goto first_set_done_36; + } + } + first_set_alt_34: { // star_pattern if (p->error_indicator) { p->level--; @@ -10046,6 +11687,10 @@ maybe_star_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern")); } + if (!p->call_invalid_rules) { + goto first_set_done_36; + } + first_set_alt_35: { // pattern if (p->error_indicator) { p->level--; @@ -10065,6 +11710,11 @@ maybe_star_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern")); } + if (!p->call_invalid_rules) { + goto first_set_done_36; + } + first_set_done_36: + ; _res = NULL; done: p->level--; @@ -10097,6 +11747,19 @@ star_pattern_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '*' pattern_capture_target if (p->error_indicator) { p->level--; @@ -10133,6 +11796,7 @@ star_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s star_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' pattern_capture_target")); } + if (_first_set_mask & 0x2ULL) { // '*' wildcard_pattern if (p->error_indicator) { p->level--; @@ -10203,6 +11867,19 @@ mapping_pattern_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x1fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' '}' if (p->error_indicator) { p->level--; @@ -10239,6 +11916,7 @@ mapping_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'")); } + if (_first_set_mask & 0x2ULL) { // '{' double_star_pattern ','? '}' if (p->error_indicator) { p->level--; @@ -10282,6 +11960,7 @@ mapping_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_star_pattern ','? '}'")); } + if (_first_set_mask & 0x4ULL) { // '{' items_pattern ',' double_star_pattern ','? '}' if (p->error_indicator) { p->level--; @@ -10331,6 +12010,7 @@ mapping_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ',' double_star_pattern ','? '}'")); } + if (_first_set_mask & 0x8ULL) { // '{' items_pattern ','? '}' if (p->error_indicator) { p->level--; @@ -10374,6 +12054,7 @@ mapping_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s mapping_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' items_pattern ','? '}'")); } + if (_first_set_mask & 0x10ULL) if (p->call_invalid_rules) { // invalid_mapping_pattern if (p->error_indicator) { p->level--; @@ -10559,6 +12240,19 @@ class_pattern_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x1fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // name_or_attr '(' ')' if (p->error_indicator) { p->level--; @@ -10598,6 +12292,7 @@ class_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' ')'")); } + if (_first_set_mask & 0x2ULL) { // name_or_attr '(' positional_patterns ','? ')' if (p->error_indicator) { p->level--; @@ -10644,6 +12339,7 @@ class_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ','? ')'")); } + if (_first_set_mask & 0x4ULL) { // name_or_attr '(' keyword_patterns ','? ')' if (p->error_indicator) { p->level--; @@ -10690,6 +12386,7 @@ class_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' keyword_patterns ','? ')'")); } + if (_first_set_mask & 0x8ULL) { // name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')' if (p->error_indicator) { p->level--; @@ -10742,6 +12439,7 @@ class_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s class_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "name_or_attr '(' positional_patterns ',' keyword_patterns ','? ')'")); } + if (_first_set_mask & 0x10ULL) if (p->call_invalid_rules) { // invalid_class_pattern if (p->error_indicator) { p->level--; @@ -10983,6 +12681,24 @@ type_params_rule(Parser *p) } asdl_type_param_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 9: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_type_params if (p->error_indicator) { p->level--; @@ -11002,6 +12718,7 @@ type_params_rule(Parser *p) D(fprintf(stderr, "%*c%s type_params[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_type_params")); } + if (_first_set_mask & 0x2ULL) { // '[' type_param_seq ']' if (p->error_indicator) { p->level--; @@ -11115,6 +12832,25 @@ type_param_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x1ULL; + break; + case 16: + _first_set_mask = 0x6ULL; + break; + case 35: + _first_set_mask = 0xaULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // NAME type_param_bound? type_param_default? if (p->error_indicator) { p->level--; @@ -11154,6 +12890,7 @@ type_param_rule(Parser *p) D(fprintf(stderr, "%*c%s type_param[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME type_param_bound? type_param_default?")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_type_param if (p->error_indicator) { p->level--; @@ -11173,6 +12910,7 @@ type_param_rule(Parser *p) D(fprintf(stderr, "%*c%s type_param[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_type_param")); } + if (_first_set_mask & 0x4ULL) { // '*' NAME type_param_starred_default? if (p->error_indicator) { p->level--; @@ -11212,6 +12950,7 @@ type_param_rule(Parser *p) D(fprintf(stderr, "%*c%s type_param[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' NAME type_param_starred_default?")); } + if (_first_set_mask & 0x8ULL) { // '**' NAME type_param_default? if (p->error_indicator) { p->level--; @@ -11409,8 +13148,8 @@ expressions_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_0_result = NULL; - int _prefix_0_end = 0, _prefix_0_valid = 0; + expr_ty _prefix_37_result = NULL; + int _prefix_37_end = 0, _prefix_37_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -11420,6 +13159,39 @@ expressions_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // expression ((',' expression))+ ','? if (p->error_indicator) { p->level--; @@ -11431,7 +13203,7 @@ expressions_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_0_valid) ? (p->mark = _prefix_0_end, _prefix_0_result) : (_prefix_0_result = expression_rule(p), _prefix_0_end = p->mark, _prefix_0_valid = 1, _prefix_0_result))) // expression + (a = ((!p->call_invalid_rules && _prefix_37_valid) ? (p->mark = _prefix_37_end, _prefix_37_result) : (_prefix_37_result = expression_rule(p), _prefix_37_end = p->mark, _prefix_37_valid = 1, _prefix_37_result))) // expression && (b = _loop1_55_rule(p)) // ((',' expression))+ && @@ -11460,6 +13232,7 @@ expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?")); } + if (_first_set_mask & 0x2ULL) { // expression ',' if (p->error_indicator) { p->level--; @@ -11469,7 +13242,7 @@ expressions_rule(Parser *p) Token * _literal; expr_ty a; if ( - (a = ((!p->call_invalid_rules && _prefix_0_valid) ? (p->mark = _prefix_0_end, _prefix_0_result) : (_prefix_0_result = expression_rule(p), _prefix_0_end = p->mark, _prefix_0_valid = 1, _prefix_0_result))) // expression + (a = ((!p->call_invalid_rules && _prefix_37_valid) ? (p->mark = _prefix_37_end, _prefix_37_result) : (_prefix_37_result = expression_rule(p), _prefix_37_end = p->mark, _prefix_37_valid = 1, _prefix_37_result))) // expression && (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) @@ -11496,6 +13269,7 @@ expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','")); } + if (_first_set_mask & 0x4ULL) { // expression if (p->error_indicator) { p->level--; @@ -11504,7 +13278,7 @@ expressions_rule(Parser *p) D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression")); expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_0_valid) ? (p->mark = _prefix_0_end, _prefix_0_result) : (_prefix_0_result = expression_rule(p), _prefix_0_end = p->mark, _prefix_0_valid = 1, _prefix_0_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_37_valid) ? (p->mark = _prefix_37_end, _prefix_37_result) : (_prefix_37_result = expression_rule(p), _prefix_37_end = p->mark, _prefix_37_valid = 1, _prefix_37_result))) // expression ) { D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression")); @@ -11544,6 +13318,50 @@ expression_rule(Parser *p) return _res; } int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 527: + case 528: + case 529: + _first_set_mask = 0x2ULL; + break; + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x1bULL; + break; + case 1: + _first_set_mask = 0x1fULL; + break; + case 622: + _first_set_mask = 0x22ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_if_expression if (p->error_indicator) { p->level--; @@ -11563,6 +13381,7 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_expression")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_expression if (p->error_indicator) { p->level--; @@ -11582,6 +13401,7 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression")); } + if (_first_set_mask & 0x4ULL) if (p->call_invalid_rules) { // invalid_legacy_expression if (p->error_indicator) { p->level--; @@ -11601,6 +13421,7 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression")); } + if (_first_set_mask & 0x8ULL) { // if_expression if (p->error_indicator) { p->level--; @@ -11620,6 +13441,7 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "if_expression")); } + if (_first_set_mask & 0x10ULL) { // disjunction if (p->error_indicator) { p->level--; @@ -11639,6 +13461,7 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction")); } + if (_first_set_mask & 0x20ULL) { // lambdef if (p->error_indicator) { p->level--; @@ -11760,6 +13583,19 @@ yield_expr_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 588: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'yield' 'from' expression if (p->error_indicator) { p->level--; @@ -11799,6 +13635,7 @@ yield_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression")); } + if (_first_set_mask & 0x2ULL) { // 'yield' star_expressions? if (p->error_indicator) { p->level--; @@ -11857,8 +13694,8 @@ star_expressions_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_1_result = NULL; - int _prefix_1_end = 0, _prefix_1_valid = 0; + expr_ty _prefix_38_result = NULL; + int _prefix_38_end = 0, _prefix_38_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -11868,6 +13705,40 @@ star_expressions_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // star_expression ((',' star_expression))+ ','? if (p->error_indicator) { p->level--; @@ -11879,7 +13750,7 @@ star_expressions_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_1_valid) ? (p->mark = _prefix_1_end, _prefix_1_result) : (_prefix_1_result = star_expression_rule(p), _prefix_1_end = p->mark, _prefix_1_valid = 1, _prefix_1_result))) // star_expression + (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = star_expression_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // star_expression && (b = _loop1_56_rule(p)) // ((',' star_expression))+ && @@ -11908,6 +13779,7 @@ star_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?")); } + if (_first_set_mask & 0x2ULL) { // star_expression ',' if (p->error_indicator) { p->level--; @@ -11917,7 +13789,7 @@ star_expressions_rule(Parser *p) Token * _literal; expr_ty a; if ( - (a = ((!p->call_invalid_rules && _prefix_1_valid) ? (p->mark = _prefix_1_end, _prefix_1_result) : (_prefix_1_result = star_expression_rule(p), _prefix_1_end = p->mark, _prefix_1_valid = 1, _prefix_1_result))) // star_expression + (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = star_expression_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // star_expression && (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) @@ -11944,6 +13816,7 @@ star_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','")); } + if (_first_set_mask & 0x4ULL) { // star_expression if (p->error_indicator) { p->level--; @@ -11952,7 +13825,7 @@ star_expressions_rule(Parser *p) D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression")); expr_ty star_expression_var; if ( - (star_expression_var = ((!p->call_invalid_rules && _prefix_1_valid) ? (p->mark = _prefix_1_end, _prefix_1_result) : (_prefix_1_result = star_expression_rule(p), _prefix_1_end = p->mark, _prefix_1_valid = 1, _prefix_1_result))) // star_expression + (star_expression_var = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = star_expression_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // star_expression ) { D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression")); @@ -11995,6 +13868,38 @@ star_expression_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 16: + goto first_set_alt_39; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + goto first_set_alt_40; + default: + goto first_set_done_41; + } + } + first_set_alt_39: { // '*' bitwise_or if (p->error_indicator) { p->level--; @@ -12031,6 +13936,10 @@ star_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or")); } + if (!p->call_invalid_rules) { + goto first_set_done_41; + } + first_set_alt_40: { // expression if (p->error_indicator) { p->level--; @@ -12050,6 +13959,11 @@ star_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression")); } + if (!p->call_invalid_rules) { + goto first_set_done_41; + } + first_set_done_41: + ; _res = NULL; done: _PyPegen_insert_memo(p, _mark, star_expression_type, _res); @@ -12126,6 +14040,38 @@ star_named_expression_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 16: + goto first_set_alt_42; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + goto first_set_alt_43; + default: + goto first_set_done_44; + } + } + first_set_alt_42: { // '*' bitwise_or if (p->error_indicator) { p->level--; @@ -12162,6 +14108,10 @@ star_named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or")); } + if (!p->call_invalid_rules) { + goto first_set_done_44; + } + first_set_alt_43: { // named_expression if (p->error_indicator) { p->level--; @@ -12181,6 +14131,11 @@ star_named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); } + if (!p->call_invalid_rules) { + goto first_set_done_44; + } + first_set_done_44: + ; _res = NULL; done: p->level--; @@ -12274,6 +14229,46 @@ named_expression_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x6ULL; + break; + case 1: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // assignment_expression if (p->error_indicator) { p->level--; @@ -12293,6 +14288,7 @@ named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_named_expression if (p->error_indicator) { p->level--; @@ -12312,6 +14308,7 @@ named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression")); } + if (_first_set_mask & 0x4ULL) { // expression !':=' if (p->error_indicator) { p->level--; @@ -12356,8 +14353,8 @@ disjunction_rule(Parser *p) return _res; } int _mark = p->mark; - expr_ty _prefix_2_result = NULL; - int _prefix_2_end = 0, _prefix_2_valid = 0; + expr_ty _prefix_45_result = NULL; + int _prefix_45_end = 0, _prefix_45_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -12367,6 +14364,35 @@ disjunction_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // conjunction (('or' conjunction))+ if (p->error_indicator) { p->level--; @@ -12376,7 +14402,7 @@ disjunction_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_2_valid) ? (p->mark = _prefix_2_end, _prefix_2_result) : (_prefix_2_result = conjunction_rule(p), _prefix_2_end = p->mark, _prefix_2_valid = 1, _prefix_2_result))) // conjunction + (a = ((!p->call_invalid_rules && _prefix_45_valid) ? (p->mark = _prefix_45_end, _prefix_45_result) : (_prefix_45_result = conjunction_rule(p), _prefix_45_end = p->mark, _prefix_45_valid = 1, _prefix_45_result))) // conjunction && (b = _loop1_59_rule(p)) // (('or' conjunction))+ ) @@ -12403,6 +14429,7 @@ disjunction_rule(Parser *p) D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+")); } + if (_first_set_mask & 0x2ULL) { // conjunction if (p->error_indicator) { p->level--; @@ -12411,7 +14438,7 @@ disjunction_rule(Parser *p) D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction")); expr_ty conjunction_var; if ( - (conjunction_var = ((!p->call_invalid_rules && _prefix_2_valid) ? (p->mark = _prefix_2_end, _prefix_2_result) : (_prefix_2_result = conjunction_rule(p), _prefix_2_end = p->mark, _prefix_2_valid = 1, _prefix_2_result))) // conjunction + (conjunction_var = ((!p->call_invalid_rules && _prefix_45_valid) ? (p->mark = _prefix_45_end, _prefix_45_result) : (_prefix_45_result = conjunction_rule(p), _prefix_45_end = p->mark, _prefix_45_valid = 1, _prefix_45_result))) // conjunction ) { D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction")); @@ -12446,8 +14473,8 @@ conjunction_rule(Parser *p) return _res; } int _mark = p->mark; - expr_ty _prefix_3_result = NULL; - int _prefix_3_end = 0, _prefix_3_valid = 0; + expr_ty _prefix_46_result = NULL; + int _prefix_46_end = 0, _prefix_46_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -12457,6 +14484,35 @@ conjunction_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // inversion (('and' inversion))+ if (p->error_indicator) { p->level--; @@ -12466,7 +14522,7 @@ conjunction_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_3_valid) ? (p->mark = _prefix_3_end, _prefix_3_result) : (_prefix_3_result = inversion_rule(p), _prefix_3_end = p->mark, _prefix_3_valid = 1, _prefix_3_result))) // inversion + (a = ((!p->call_invalid_rules && _prefix_46_valid) ? (p->mark = _prefix_46_end, _prefix_46_result) : (_prefix_46_result = inversion_rule(p), _prefix_46_end = p->mark, _prefix_46_valid = 1, _prefix_46_result))) // inversion && (b = _loop1_60_rule(p)) // (('and' inversion))+ ) @@ -12493,6 +14549,7 @@ conjunction_rule(Parser *p) D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+")); } + if (_first_set_mask & 0x2ULL) { // inversion if (p->error_indicator) { p->level--; @@ -12501,7 +14558,7 @@ conjunction_rule(Parser *p) D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion")); expr_ty inversion_var; if ( - (inversion_var = ((!p->call_invalid_rules && _prefix_3_valid) ? (p->mark = _prefix_3_end, _prefix_3_result) : (_prefix_3_result = inversion_rule(p), _prefix_3_end = p->mark, _prefix_3_valid = 1, _prefix_3_result))) // inversion + (inversion_var = ((!p->call_invalid_rules && _prefix_46_valid) ? (p->mark = _prefix_46_end, _prefix_46_result) : (_prefix_46_result = inversion_rule(p), _prefix_46_end = p->mark, _prefix_46_valid = 1, _prefix_46_result))) // inversion ) { D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion")); @@ -12545,6 +14602,33 @@ inversion_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 721: + goto first_set_alt_47; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + goto first_set_alt_48; + default: + goto first_set_done_49; + } + } + first_set_alt_47: { // 'not' inversion if (p->error_indicator) { p->level--; @@ -12581,6 +14665,10 @@ inversion_rule(Parser *p) D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion")); } + if (!p->call_invalid_rules) { + goto first_set_done_49; + } + first_set_alt_48: { // comparison if (p->error_indicator) { p->level--; @@ -12600,6 +14688,11 @@ inversion_rule(Parser *p) D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison")); } + if (!p->call_invalid_rules) { + goto first_set_done_49; + } + first_set_done_49: + ; _res = NULL; done: _PyPegen_insert_memo(p, _mark, inversion_type, _res); @@ -12620,8 +14713,8 @@ comparison_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_4_result = NULL; - int _prefix_4_end = 0, _prefix_4_valid = 0; + expr_ty _prefix_50_result = NULL; + int _prefix_50_end = 0, _prefix_50_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -12631,6 +14724,34 @@ comparison_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // bitwise_or compare_op_bitwise_or_pair+ if (p->error_indicator) { p->level--; @@ -12640,7 +14761,7 @@ comparison_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_4_valid) ? (p->mark = _prefix_4_end, _prefix_4_result) : (_prefix_4_result = bitwise_or_rule(p), _prefix_4_end = p->mark, _prefix_4_valid = 1, _prefix_4_result))) // bitwise_or + (a = ((!p->call_invalid_rules && _prefix_50_valid) ? (p->mark = _prefix_50_end, _prefix_50_result) : (_prefix_50_result = bitwise_or_rule(p), _prefix_50_end = p->mark, _prefix_50_valid = 1, _prefix_50_result))) // bitwise_or && (b = _loop1_61_rule(p)) // compare_op_bitwise_or_pair+ ) @@ -12667,6 +14788,7 @@ comparison_rule(Parser *p) D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+")); } + if (_first_set_mask & 0x2ULL) { // bitwise_or if (p->error_indicator) { p->level--; @@ -12675,7 +14797,7 @@ comparison_rule(Parser *p) D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or")); expr_ty bitwise_or_var; if ( - (bitwise_or_var = ((!p->call_invalid_rules && _prefix_4_valid) ? (p->mark = _prefix_4_end, _prefix_4_result) : (_prefix_4_result = bitwise_or_rule(p), _prefix_4_end = p->mark, _prefix_4_valid = 1, _prefix_4_result))) // bitwise_or + (bitwise_or_var = ((!p->call_invalid_rules && _prefix_50_valid) ? (p->mark = _prefix_50_end, _prefix_50_result) : (_prefix_50_result = bitwise_or_rule(p), _prefix_50_end = p->mark, _prefix_50_valid = 1, _prefix_50_result))) // bitwise_or ) { D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or")); @@ -12715,6 +14837,48 @@ compare_op_bitwise_or_pair_rule(Parser *p) } CmpopExprPair* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 27: + _first_set_mask = 0x1ULL; + break; + case 28: + _first_set_mask = 0x2ULL; + break; + case 29: + _first_set_mask = 0x4ULL; + break; + case 20: + _first_set_mask = 0x8ULL; + break; + case 30: + _first_set_mask = 0x10ULL; + break; + case 21: + _first_set_mask = 0x20ULL; + break; + case 721: + _first_set_mask = 0x40ULL; + break; + case 713: + _first_set_mask = 0x80ULL; + break; + case 597: + _first_set_mask = 0x300ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '==' bitwise_or if (p->error_indicator) { p->level--; @@ -12742,6 +14906,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or")); } + if (_first_set_mask & 0x2ULL) { // ('!=') bitwise_or if (p->error_indicator) { p->level--; @@ -12769,6 +14934,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or")); } + if (_first_set_mask & 0x4ULL) { // '<=' bitwise_or if (p->error_indicator) { p->level--; @@ -12796,6 +14962,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or")); } + if (_first_set_mask & 0x8ULL) { // '<' bitwise_or if (p->error_indicator) { p->level--; @@ -12823,6 +14990,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or")); } + if (_first_set_mask & 0x10ULL) { // '>=' bitwise_or if (p->error_indicator) { p->level--; @@ -12850,6 +15018,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or")); } + if (_first_set_mask & 0x20ULL) { // '>' bitwise_or if (p->error_indicator) { p->level--; @@ -12877,6 +15046,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or")); } + if (_first_set_mask & 0x40ULL) { // 'not' 'in' bitwise_or if (p->error_indicator) { p->level--; @@ -12907,6 +15077,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or")); } + if (_first_set_mask & 0x80ULL) { // 'in' bitwise_or if (p->error_indicator) { p->level--; @@ -12934,6 +15105,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or")); } + if (_first_set_mask & 0x100ULL) { // 'is' 'not' bitwise_or if (p->error_indicator) { p->level--; @@ -12964,6 +15136,7 @@ compare_op_bitwise_or_pair_rule(Parser *p) D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or")); } + if (_first_set_mask & 0x200ULL) { // 'is' bitwise_or if (p->error_indicator) { p->level--; @@ -13200,6 +15373,34 @@ bitwise_xor_raw(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // bitwise_xor '^' bitwise_and if (p->error_indicator) { p->level--; @@ -13239,6 +15440,7 @@ bitwise_xor_raw(Parser *p) D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and")); } + if (_first_set_mask & 0x2ULL) { // bitwise_and if (p->error_indicator) { p->level--; @@ -13458,8 +15660,8 @@ shift_expr_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_5_result = NULL; - int _prefix_5_end = 0, _prefix_5_valid = 0; + expr_ty _prefix_51_result = NULL; + int _prefix_51_end = 0, _prefix_51_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -13469,6 +15671,34 @@ shift_expr_raw(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // shift_expr '<<' sum if (p->error_indicator) { p->level--; @@ -13479,7 +15709,7 @@ shift_expr_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_5_valid) ? (p->mark = _prefix_5_end, _prefix_5_result) : (_prefix_5_result = shift_expr_rule(p), _prefix_5_end = p->mark, _prefix_5_valid = 1, _prefix_5_result))) // shift_expr + (a = ((!p->call_invalid_rules && _prefix_51_valid) ? (p->mark = _prefix_51_end, _prefix_51_result) : (_prefix_51_result = shift_expr_rule(p), _prefix_51_end = p->mark, _prefix_51_valid = 1, _prefix_51_result))) // shift_expr && (_literal = _PyPegen_expect_token(p, 33)) // token='<<' && @@ -13508,6 +15738,7 @@ shift_expr_raw(Parser *p) D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum")); } + if (_first_set_mask & 0x2ULL) { // shift_expr '>>' sum if (p->error_indicator) { p->level--; @@ -13518,7 +15749,7 @@ shift_expr_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_5_valid) ? (p->mark = _prefix_5_end, _prefix_5_result) : (_prefix_5_result = shift_expr_rule(p), _prefix_5_end = p->mark, _prefix_5_valid = 1, _prefix_5_result))) // shift_expr + (a = ((!p->call_invalid_rules && _prefix_51_valid) ? (p->mark = _prefix_51_end, _prefix_51_result) : (_prefix_51_result = shift_expr_rule(p), _prefix_51_end = p->mark, _prefix_51_valid = 1, _prefix_51_result))) // shift_expr && (_literal = _PyPegen_expect_token(p, 34)) // token='>>' && @@ -13547,6 +15778,7 @@ shift_expr_raw(Parser *p) D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum")); } + if (_first_set_mask & 0x4ULL) { // sum if (p->error_indicator) { p->level--; @@ -13623,8 +15855,8 @@ sum_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_6_result = NULL; - int _prefix_6_end = 0, _prefix_6_valid = 0; + expr_ty _prefix_52_result = NULL; + int _prefix_52_end = 0, _prefix_52_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -13644,7 +15876,7 @@ sum_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_6_valid) ? (p->mark = _prefix_6_end, _prefix_6_result) : (_prefix_6_result = sum_rule(p), _prefix_6_end = p->mark, _prefix_6_valid = 1, _prefix_6_result))) // sum + (a = ((!p->call_invalid_rules && _prefix_52_valid) ? (p->mark = _prefix_52_end, _prefix_52_result) : (_prefix_52_result = sum_rule(p), _prefix_52_end = p->mark, _prefix_52_valid = 1, _prefix_52_result))) // sum && (_literal = _PyPegen_expect_token(p, 14)) // token='+' && @@ -13683,7 +15915,7 @@ sum_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_6_valid) ? (p->mark = _prefix_6_end, _prefix_6_result) : (_prefix_6_result = sum_rule(p), _prefix_6_end = p->mark, _prefix_6_valid = 1, _prefix_6_result))) // sum + (a = ((!p->call_invalid_rules && _prefix_52_valid) ? (p->mark = _prefix_52_end, _prefix_52_result) : (_prefix_52_result = sum_rule(p), _prefix_52_end = p->mark, _prefix_52_valid = 1, _prefix_52_result))) // sum && (_literal = _PyPegen_expect_token(p, 15)) // token='-' && @@ -13813,8 +16045,8 @@ term_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_7_result = NULL; - int _prefix_7_end = 0, _prefix_7_valid = 0; + expr_ty _prefix_53_result = NULL; + int _prefix_53_end = 0, _prefix_53_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -13824,6 +16056,34 @@ term_raw(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + _first_set_mask = 0x3fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // term '*' factor if (p->error_indicator) { p->level--; @@ -13834,7 +16094,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term + (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -13863,6 +16123,7 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor")); } + if (_first_set_mask & 0x2ULL) { // term '/' factor if (p->error_indicator) { p->level--; @@ -13873,7 +16134,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term + (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -13902,6 +16163,7 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor")); } + if (_first_set_mask & 0x4ULL) { // term '//' factor if (p->error_indicator) { p->level--; @@ -13912,7 +16174,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term + (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term && (_literal = _PyPegen_expect_token(p, 47)) // token='//' && @@ -13941,6 +16203,7 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor")); } + if (_first_set_mask & 0x8ULL) { // term '%' factor if (p->error_indicator) { p->level--; @@ -13951,7 +16214,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term + (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term && (_literal = _PyPegen_expect_token(p, 24)) // token='%' && @@ -13980,6 +16243,7 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor")); } + if (_first_set_mask & 0x10ULL) { // term '@' factor if (p->error_indicator) { p->level--; @@ -13990,7 +16254,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_7_valid) ? (p->mark = _prefix_7_end, _prefix_7_result) : (_prefix_7_result = term_rule(p), _prefix_7_end = p->mark, _prefix_7_valid = 1, _prefix_7_result))) // term + (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term && (_literal = _PyPegen_expect_token(p, 49)) // token='@' && @@ -14019,6 +16283,7 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor")); } + if (_first_set_mask & 0x20ULL) { // factor if (p->error_indicator) { p->level--; @@ -14070,6 +16335,40 @@ factor_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 25: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + _first_set_mask = 0x8ULL; + break; + case 14: + _first_set_mask = 0x11ULL; + break; + case 15: + _first_set_mask = 0x12ULL; + break; + case 31: + _first_set_mask = 0x14ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '+' factor if (p->error_indicator) { p->level--; @@ -14106,6 +16405,7 @@ factor_rule(Parser *p) D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor")); } + if (_first_set_mask & 0x2ULL) { // '-' factor if (p->error_indicator) { p->level--; @@ -14142,6 +16442,7 @@ factor_rule(Parser *p) D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor")); } + if (_first_set_mask & 0x4ULL) { // '~' factor if (p->error_indicator) { p->level--; @@ -14178,6 +16479,7 @@ factor_rule(Parser *p) D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor")); } + if (_first_set_mask & 0x8ULL) { // power if (p->error_indicator) { p->level--; @@ -14197,6 +16499,7 @@ factor_rule(Parser *p) D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power")); } + if (_first_set_mask & 0x10ULL) if (p->call_invalid_rules) { // invalid_factor if (p->error_indicator) { p->level--; @@ -14236,8 +16539,8 @@ power_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_8_result = NULL; - int _prefix_8_end = 0, _prefix_8_valid = 0; + expr_ty _prefix_54_result = NULL; + int _prefix_54_end = 0, _prefix_54_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -14247,6 +16550,31 @@ power_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 25: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // await_primary '**' factor if (p->error_indicator) { p->level--; @@ -14257,7 +16585,7 @@ power_rule(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_8_valid) ? (p->mark = _prefix_8_end, _prefix_8_result) : (_prefix_8_result = await_primary_rule(p), _prefix_8_end = p->mark, _prefix_8_valid = 1, _prefix_8_result))) // await_primary + (a = ((!p->call_invalid_rules && _prefix_54_valid) ? (p->mark = _prefix_54_end, _prefix_54_result) : (_prefix_54_result = await_primary_rule(p), _prefix_54_end = p->mark, _prefix_54_valid = 1, _prefix_54_result))) // await_primary && (_literal = _PyPegen_expect_token(p, 35)) // token='**' && @@ -14286,6 +16614,7 @@ power_rule(Parser *p) D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor")); } + if (_first_set_mask & 0x2ULL) { // await_primary if (p->error_indicator) { p->level--; @@ -14294,7 +16623,7 @@ power_rule(Parser *p) D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary")); expr_ty await_primary_var; if ( - (await_primary_var = ((!p->call_invalid_rules && _prefix_8_valid) ? (p->mark = _prefix_8_end, _prefix_8_result) : (_prefix_8_result = await_primary_rule(p), _prefix_8_end = p->mark, _prefix_8_valid = 1, _prefix_8_result))) // await_primary + (await_primary_var = ((!p->call_invalid_rules && _prefix_54_valid) ? (p->mark = _prefix_54_end, _prefix_54_result) : (_prefix_54_result = await_primary_rule(p), _prefix_54_end = p->mark, _prefix_54_valid = 1, _prefix_54_result))) // await_primary ) { D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary")); @@ -14337,6 +16666,29 @@ await_primary_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 598: + goto first_set_alt_55; + case 1: + case 2: + case 3: + case 7: + case 9: + case 25: + case 52: + case 59: + case 62: + case 627: + case 628: + case 629: + goto first_set_alt_56; + default: + goto first_set_done_57; + } + } + first_set_alt_55: { // 'await' primary if (p->error_indicator) { p->level--; @@ -14373,6 +16725,10 @@ await_primary_rule(Parser *p) D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'await' primary")); } + if (!p->call_invalid_rules) { + goto first_set_done_57; + } + first_set_alt_56: { // primary if (p->error_indicator) { p->level--; @@ -14392,6 +16748,11 @@ await_primary_rule(Parser *p) D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary")); } + if (!p->call_invalid_rules) { + goto first_set_done_57; + } + first_set_done_57: + ; _res = NULL; done: _PyPegen_insert_memo(p, _mark, await_primary_type, _res); @@ -14455,8 +16816,8 @@ primary_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_9_result = NULL; - int _prefix_9_end = 0, _prefix_9_valid = 0; + expr_ty _prefix_58_result = NULL; + int _prefix_58_end = 0, _prefix_58_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -14466,6 +16827,30 @@ primary_raw(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 25: + case 52: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x1fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // primary '.' NAME if (p->error_indicator) { p->level--; @@ -14476,7 +16861,7 @@ primary_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_9_valid) ? (p->mark = _prefix_9_end, _prefix_9_result) : (_prefix_9_result = primary_rule(p), _prefix_9_end = p->mark, _prefix_9_valid = 1, _prefix_9_result))) // primary + (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = primary_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // primary && (_literal = _PyPegen_expect_token(p, 23)) // token='.' && @@ -14505,6 +16890,7 @@ primary_raw(Parser *p) D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME")); } + if (_first_set_mask & 0x2ULL) { // primary genexp if (p->error_indicator) { p->level--; @@ -14514,7 +16900,7 @@ primary_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_9_valid) ? (p->mark = _prefix_9_end, _prefix_9_result) : (_prefix_9_result = primary_rule(p), _prefix_9_end = p->mark, _prefix_9_valid = 1, _prefix_9_result))) // primary + (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = primary_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // primary && (b = genexp_rule(p)) // genexp ) @@ -14541,6 +16927,7 @@ primary_raw(Parser *p) D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp")); } + if (_first_set_mask & 0x4ULL) { // primary '(' arguments? ')' if (p->error_indicator) { p->level--; @@ -14552,7 +16939,7 @@ primary_raw(Parser *p) expr_ty a; void *b; if ( - (a = ((!p->call_invalid_rules && _prefix_9_valid) ? (p->mark = _prefix_9_end, _prefix_9_result) : (_prefix_9_result = primary_rule(p), _prefix_9_end = p->mark, _prefix_9_valid = 1, _prefix_9_result))) // primary + (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = primary_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // primary && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -14583,6 +16970,7 @@ primary_raw(Parser *p) D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'")); } + if (_first_set_mask & 0x8ULL) { // primary '[' slices ']' if (p->error_indicator) { p->level--; @@ -14594,7 +16982,7 @@ primary_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_9_valid) ? (p->mark = _prefix_9_end, _prefix_9_result) : (_prefix_9_result = primary_rule(p), _prefix_9_end = p->mark, _prefix_9_valid = 1, _prefix_9_result))) // primary + (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = primary_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // primary && (_literal = _PyPegen_expect_token(p, 9)) // token='[' && @@ -14625,6 +17013,7 @@ primary_raw(Parser *p) D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'")); } + if (_first_set_mask & 0x10ULL) { // atom if (p->error_indicator) { p->level--; @@ -14672,6 +17061,43 @@ slices_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x2ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 11: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // slice !',' if (p->error_indicator) { p->level--; @@ -14698,6 +17124,7 @@ slices_rule(Parser *p) D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','")); } + if (_first_set_mask & 0x2ULL) { // ','.(slice | starred_expression)+ ','? if (p->error_indicator) { p->level--; @@ -14763,6 +17190,42 @@ slice_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 11: + _first_set_mask = 0x1ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // expression? ':' expression? [':' expression?] if (p->error_indicator) { p->level--; @@ -14805,6 +17268,7 @@ slice_rule(Parser *p) D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]")); } + if (_first_set_mask & 0x2ULL) { // named_expression if (p->error_indicator) { p->level--; @@ -14867,6 +17331,36 @@ atom_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 1: + goto first_set_alt_59; + case 627: + goto first_set_alt_60; + case 629: + goto first_set_alt_61; + case 628: + goto first_set_alt_62; + case 3: + case 59: + case 62: + goto first_set_alt_63; + case 2: + goto first_set_alt_64; + case 7: + goto first_set_alt_65; + case 9: + goto first_set_alt_66; + case 25: + goto first_set_alt_67; + case 52: + goto first_set_alt_68; + default: + goto first_set_done_69; + } + } + first_set_alt_59: { // NAME if (p->error_indicator) { p->level--; @@ -14886,6 +17380,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_60: { // 'True' if (p->error_indicator) { p->level--; @@ -14919,6 +17417,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_61: { // 'False' if (p->error_indicator) { p->level--; @@ -14952,6 +17454,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_62: { // 'None' if (p->error_indicator) { p->level--; @@ -14985,6 +17491,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_63: { // &(STRING | FSTRING_START | TSTRING_START) strings if (p->error_indicator) { p->level--; @@ -15006,6 +17516,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_64: { // NUMBER if (p->error_indicator) { p->level--; @@ -15025,6 +17539,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_65: { // &'(' (genexp | tuple | group) if (p->error_indicator) { p->level--; @@ -15046,6 +17564,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (genexp | tuple | group)")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_66: { // &'[' (listcomp | list) if (p->error_indicator) { p->level--; @@ -15067,6 +17589,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (listcomp | list)")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_67: { // &'{' (dictcomp | setcomp | dict | set) if (p->error_indicator) { p->level--; @@ -15088,6 +17614,10 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dictcomp | setcomp | dict | set)")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_alt_68: { // '...' if (p->error_indicator) { p->level--; @@ -15121,6 +17651,11 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } + if (!p->call_invalid_rules) { + goto first_set_done_69; + } + first_set_done_69: + ; _res = NULL; done: p->level--; @@ -15140,6 +17675,24 @@ group_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '(' (yield_expr | named_expression) ')' if (p->error_indicator) { p->level--; @@ -15170,6 +17723,7 @@ group_rule(Parser *p) D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_group if (p->error_indicator) { p->level--; @@ -15278,6 +17832,32 @@ lambda_params_rule(Parser *p) } arguments_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + case 17: + _first_set_mask = 0x1ULL; + break; + case 35: + _first_set_mask = 0x2ULL; + break; + case 1: + case 16: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_lambda_parameters if (p->error_indicator) { p->level--; @@ -15297,6 +17877,7 @@ lambda_params_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_params[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_parameters")); } + if (_first_set_mask & 0x2ULL) { // lambda_parameters if (p->error_indicator) { p->level--; @@ -15340,6 +17921,28 @@ lambda_parameters_rule(Parser *p) } arguments_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0xfULL; + break; + case 16: + case 35: + _first_set_mask = 0x10ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc? if (p->error_indicator) { p->level--; @@ -15373,6 +17976,7 @@ lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?")); } + if (_first_set_mask & 0x2ULL) { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc? if (p->error_indicator) { p->level--; @@ -15403,6 +18007,7 @@ lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?")); } + if (_first_set_mask & 0x4ULL) { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc? if (p->error_indicator) { p->level--; @@ -15433,6 +18038,7 @@ lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?")); } + if (_first_set_mask & 0x8ULL) { // lambda_param_with_default+ lambda_star_etc? if (p->error_indicator) { p->level--; @@ -15460,6 +18066,7 @@ lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?")); } + if (_first_set_mask & 0x10ULL) { // lambda_star_etc if (p->error_indicator) { p->level--; @@ -15505,6 +18112,24 @@ lambda_slash_no_default_rule(Parser *p) } asdl_arg_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // lambda_param_no_default+ '/' ',' if (p->error_indicator) { p->level--; @@ -15535,6 +18160,7 @@ lambda_slash_no_default_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','")); } + if (_first_set_mask & 0x2ULL) { // lambda_param_no_default+ '/' &':' if (p->error_indicator) { p->level--; @@ -15585,6 +18211,24 @@ lambda_slash_with_default_rule(Parser *p) } SlashWithDefault* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // lambda_param_no_default* lambda_param_with_default+ '/' ',' if (p->error_indicator) { p->level--; @@ -15618,6 +18262,7 @@ lambda_slash_with_default_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','")); } + if (_first_set_mask & 0x2ULL) { // lambda_param_no_default* lambda_param_with_default+ '/' &':' if (p->error_indicator) { p->level--; @@ -15673,6 +18318,27 @@ lambda_star_etc_rule(Parser *p) } StarEtc* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x7ULL; + break; + case 35: + _first_set_mask = 0x8ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_lambda_star_etc if (p->error_indicator) { p->level--; @@ -15692,6 +18358,7 @@ lambda_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc")); } + if (_first_set_mask & 0x2ULL) { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds? if (p->error_indicator) { p->level--; @@ -15725,6 +18392,7 @@ lambda_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?")); } + if (_first_set_mask & 0x4ULL) { // '*' ',' lambda_param_maybe_default+ lambda_kwds? if (p->error_indicator) { p->level--; @@ -15758,6 +18426,7 @@ lambda_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?")); } + if (_first_set_mask & 0x8ULL) { // lambda_kwds if (p->error_indicator) { p->level--; @@ -15801,6 +18470,24 @@ lambda_kwds_rule(Parser *p) } arg_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 35: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_lambda_kwds if (p->error_indicator) { p->level--; @@ -15820,6 +18507,7 @@ lambda_kwds_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_kwds")); } + if (_first_set_mask & 0x2ULL) { // '**' lambda_param_no_default if (p->error_indicator) { p->level--; @@ -15866,6 +18554,24 @@ lambda_param_no_default_rule(Parser *p) } arg_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // lambda_param ',' if (p->error_indicator) { p->level--; @@ -15893,6 +18599,7 @@ lambda_param_no_default_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','")); } + if (_first_set_mask & 0x2ULL) { // lambda_param &':' if (p->error_indicator) { p->level--; @@ -15938,6 +18645,24 @@ lambda_param_with_default_rule(Parser *p) } NameDefaultPair* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // lambda_param default ',' if (p->error_indicator) { p->level--; @@ -15968,6 +18693,7 @@ lambda_param_with_default_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','")); } + if (_first_set_mask & 0x2ULL) { // lambda_param default &':' if (p->error_indicator) { p->level--; @@ -16016,6 +18742,24 @@ lambda_param_maybe_default_rule(Parser *p) } NameDefaultPair* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // lambda_param default? ',' if (p->error_indicator) { p->level--; @@ -16046,6 +18790,7 @@ lambda_param_maybe_default_rule(Parser *p) D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','")); } + if (_first_set_mask & 0x2ULL) { // lambda_param default? &':' if (p->error_indicator) { p->level--; @@ -16155,6 +18900,23 @@ fstring_middle_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 25: + goto first_set_alt_70; + case 60: + goto first_set_alt_71; + default: + goto first_set_done_72; + } + } + first_set_alt_70: { // fstring_replacement_field if (p->error_indicator) { p->level--; @@ -16174,6 +18936,10 @@ fstring_middle_rule(Parser *p) D(fprintf(stderr, "%*c%s fstring_middle[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); } + if (!p->call_invalid_rules) { + goto first_set_done_72; + } + first_set_alt_71: { // FSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -16198,6 +18964,11 @@ fstring_middle_rule(Parser *p) D(fprintf(stderr, "%*c%s fstring_middle[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); } + if (!p->call_invalid_rules) { + goto first_set_done_72; + } + first_set_done_72: + ; _res = NULL; done: p->level--; @@ -16228,6 +18999,19 @@ fstring_replacement_field_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' annotated_rhs '='? fstring_conversion? fstring_full_format_spec? '}' if (p->error_indicator) { p->level--; @@ -16276,6 +19060,7 @@ fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? fstring_full_format_spec? '}'")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_fstring_replacement_field if (p->error_indicator) { p->level--; @@ -16424,6 +19209,23 @@ fstring_format_spec_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 60: + goto first_set_alt_73; + case 25: + goto first_set_alt_74; + default: + goto first_set_done_75; + } + } + first_set_alt_73: { // FSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -16448,6 +19250,10 @@ fstring_format_spec_rule(Parser *p) D(fprintf(stderr, "%*c%s fstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); } + if (!p->call_invalid_rules) { + goto first_set_done_75; + } + first_set_alt_74: { // fstring_replacement_field if (p->error_indicator) { p->level--; @@ -16467,6 +19273,11 @@ fstring_format_spec_rule(Parser *p) D(fprintf(stderr, "%*c%s fstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); } + if (!p->call_invalid_rules) { + goto first_set_done_75; + } + first_set_done_75: + ; _res = NULL; done: p->level--; @@ -16546,6 +19357,19 @@ tstring_format_spec_replacement_field_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}' if (p->error_indicator) { p->level--; @@ -16594,6 +19418,7 @@ tstring_format_spec_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s tstring_format_spec_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}'")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_tstring_replacement_field if (p->error_indicator) { p->level--; @@ -16632,6 +19457,23 @@ tstring_format_spec_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 63: + goto first_set_alt_76; + case 25: + goto first_set_alt_77; + default: + goto first_set_done_78; + } + } + first_set_alt_76: { // TSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -16656,6 +19498,10 @@ tstring_format_spec_rule(Parser *p) D(fprintf(stderr, "%*c%s tstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_MIDDLE")); } + if (!p->call_invalid_rules) { + goto first_set_done_78; + } + first_set_alt_77: { // tstring_format_spec_replacement_field if (p->error_indicator) { p->level--; @@ -16675,6 +19521,11 @@ tstring_format_spec_rule(Parser *p) D(fprintf(stderr, "%*c%s tstring_format_spec[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring_format_spec_replacement_field")); } + if (!p->call_invalid_rules) { + goto first_set_done_78; + } + first_set_done_78: + ; _res = NULL; done: p->level--; @@ -16769,6 +19620,19 @@ tstring_replacement_field_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}' if (p->error_indicator) { p->level--; @@ -16817,6 +19681,7 @@ tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? fstring_conversion? tstring_full_format_spec? '}'")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_tstring_replacement_field if (p->error_indicator) { p->level--; @@ -16855,6 +19720,23 @@ tstring_middle_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 25: + goto first_set_alt_79; + case 63: + goto first_set_alt_80; + default: + goto first_set_done_81; + } + } + first_set_alt_79: { // tstring_replacement_field if (p->error_indicator) { p->level--; @@ -16874,6 +19756,10 @@ tstring_middle_rule(Parser *p) D(fprintf(stderr, "%*c%s tstring_middle[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring_replacement_field")); } + if (!p->call_invalid_rules) { + goto first_set_done_81; + } + first_set_alt_80: { // TSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -16898,6 +19784,11 @@ tstring_middle_rule(Parser *p) D(fprintf(stderr, "%*c%s tstring_middle[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_MIDDLE")); } + if (!p->call_invalid_rules) { + goto first_set_done_81; + } + first_set_done_81: + ; _res = NULL; done: p->level--; @@ -17027,6 +19918,23 @@ strings_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 3: + case 59: + _first_set_mask = 0x3ULL; + break; + case 62: + _first_set_mask = 0x5ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_string_tstring_concat if (p->error_indicator) { p->level--; @@ -17046,6 +19954,7 @@ strings_rule(Parser *p) D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_string_tstring_concat")); } + if (_first_set_mask & 0x2ULL) { // ((fstring | string))+ if (p->error_indicator) { p->level--; @@ -17079,6 +19988,7 @@ strings_rule(Parser *p) D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((fstring | string))+")); } + if (_first_set_mask & 0x4ULL) { // tstring+ if (p->error_indicator) { p->level--; @@ -17179,6 +20089,50 @@ display_item_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 35: + _first_set_mask = 0x1ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x2ULL; + break; + case 16: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_starred_expression_unpacking_sequence if (p->error_indicator) { p->level--; @@ -17198,6 +20152,7 @@ display_item_rule(Parser *p) D(fprintf(stderr, "%*c%s display_item[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression_unpacking_sequence")); } + if (_first_set_mask & 0x2ULL) { // star_named_expression if (p->error_indicator) { p->level--; @@ -17446,6 +20401,19 @@ dict_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' double_starred_kvpairs? '}' if (p->error_indicator) { p->level--; @@ -17485,6 +20453,7 @@ dict_rule(Parser *p) D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'")); } + if (_first_set_mask & 0x2ULL) { // '{' invalid_double_starred_kvpairs '}' if (p->error_indicator) { p->level--; @@ -17576,6 +20545,43 @@ double_starred_kvpair_rule(Parser *p) } KeyValuePair* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 35: + goto first_set_alt_82; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + goto first_set_alt_83; + default: + goto first_set_done_84; + } + } + first_set_alt_82: { // '**' bitwise_or if (p->error_indicator) { p->level--; @@ -17603,6 +20609,10 @@ double_starred_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or")); } + if (!p->call_invalid_rules) { + goto first_set_done_84; + } + first_set_alt_83: { // kvpair if (p->error_indicator) { p->level--; @@ -17622,6 +20632,11 @@ double_starred_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair")); } + if (!p->call_invalid_rules) { + goto first_set_done_84; + } + first_set_done_84: + ; _res = NULL; done: p->level--; @@ -17737,6 +20752,27 @@ for_if_clause_rule(Parser *p) } comprehension_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 716: + _first_set_mask = 0xdULL; + break; + case 712: + _first_set_mask = 0xeULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'async' 'for' star_targets 'in' ~ disjunction (('if' disjunction))* if (p->error_indicator) { p->level--; @@ -17783,6 +20819,7 @@ for_if_clause_rule(Parser *p) return NULL; } } + if (_first_set_mask & 0x2ULL) { // 'for' star_targets 'in' ~ disjunction (('if' disjunction))* if (p->error_indicator) { p->level--; @@ -17826,6 +20863,7 @@ for_if_clause_rule(Parser *p) return NULL; } } + if (_first_set_mask & 0x4ULL) if (p->call_invalid_rules) { // invalid_for_if_clause if (p->error_indicator) { p->level--; @@ -17845,6 +20883,7 @@ for_if_clause_rule(Parser *p) D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_for_if_clause")); } + if (_first_set_mask & 0x8ULL) if (p->call_invalid_rules) { // invalid_for_target if (p->error_indicator) { p->level--; @@ -17892,6 +20931,23 @@ listcomp_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + case 25: + _first_set_mask = 0x2ULL; + break; + case 9: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '[' star_named_expression for_if_clauses ']' if (p->error_indicator) { p->level--; @@ -17934,6 +20990,7 @@ listcomp_rule(Parser *p) D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expression for_if_clauses ']'")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_comprehension if (p->error_indicator) { p->level--; @@ -17981,6 +21038,23 @@ setcomp_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + case 9: + _first_set_mask = 0x2ULL; + break; + case 25: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' star_named_expression for_if_clauses '}' if (p->error_indicator) { p->level--; @@ -18023,6 +21097,7 @@ setcomp_rule(Parser *p) D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' star_named_expression for_if_clauses '}'")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_comprehension if (p->error_indicator) { p->level--; @@ -18072,6 +21147,23 @@ genexp_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 9: + case 25: + _first_set_mask = 0x2ULL; + break; + case 7: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '(' (assignment_expression | expression !':=' | starred_expression) for_if_clauses ')' if (p->error_indicator) { p->level--; @@ -18114,6 +21206,7 @@ genexp_rule(Parser *p) D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (assignment_expression | expression !':=' | starred_expression) for_if_clauses ')'")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_comprehension if (p->error_indicator) { p->level--; @@ -18161,6 +21254,19 @@ dictcomp_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' kvpair for_if_clauses '}' if (p->error_indicator) { p->level--; @@ -18203,6 +21309,7 @@ dictcomp_rule(Parser *p) D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'")); } + if (_first_set_mask & 0x2ULL) { // '{' '**' expression for_if_clauses '}' if (p->error_indicator) { p->level--; @@ -18271,6 +21378,46 @@ arguments_rule(Parser *p) return _res; } int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 35: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // args ','? &')' if (p->error_indicator) { p->level--; @@ -18301,6 +21448,7 @@ arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_arguments if (p->error_indicator) { p->level--; @@ -18351,6 +21499,43 @@ args_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 35: + _first_set_mask = 0x2ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs] if (p->error_indicator) { p->level--; @@ -18387,6 +21572,7 @@ args_rule(Parser *p) D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]")); } + if (_first_set_mask & 0x2ULL) { // kwargs if (p->error_indicator) { p->level--; @@ -18441,6 +21627,48 @@ kwargs_rule(Parser *p) } asdl_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x1ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 35: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // ','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+] if (p->error_indicator) { p->level--; @@ -18468,6 +21696,7 @@ kwargs_rule(Parser *p) D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+]")); } + if (_first_set_mask & 0x2ULL) { // ','.kwarg_or_double_starred+ if (p->error_indicator) { p->level--; @@ -18518,6 +21747,19 @@ starred_expression_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_starred_expression_unpacking if (p->error_indicator) { p->level--; @@ -18537,6 +21779,7 @@ starred_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression_unpacking")); } + if (_first_set_mask & 0x2ULL) { // '*' expression if (p->error_indicator) { p->level--; @@ -18573,6 +21816,7 @@ starred_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression")); } + if (_first_set_mask & 0x4ULL) if (p->call_invalid_rules) { // invalid_starred_expression if (p->error_indicator) { p->level--; @@ -18620,6 +21864,45 @@ kwarg_or_starred_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 35: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x1ULL; + break; + case 1: + _first_set_mask = 0x3ULL; + break; + case 16: + _first_set_mask = 0x4ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_kwarg if (p->error_indicator) { p->level--; @@ -18639,6 +21922,7 @@ kwarg_or_starred_rule(Parser *p) D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg")); } + if (_first_set_mask & 0x2ULL) { // NAME '=' expression if (p->error_indicator) { p->level--; @@ -18678,6 +21962,7 @@ kwarg_or_starred_rule(Parser *p) D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression")); } + if (_first_set_mask & 0x4ULL) { // starred_expression if (p->error_indicator) { p->level--; @@ -18730,6 +22015,44 @@ kwarg_or_double_starred_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x1ULL; + break; + case 1: + _first_set_mask = 0x3ULL; + break; + case 35: + _first_set_mask = 0x5ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_kwarg if (p->error_indicator) { p->level--; @@ -18749,6 +22072,7 @@ kwarg_or_double_starred_rule(Parser *p) D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg")); } + if (_first_set_mask & 0x2ULL) { // NAME '=' expression if (p->error_indicator) { p->level--; @@ -18788,6 +22112,7 @@ kwarg_or_double_starred_rule(Parser *p) D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression")); } + if (_first_set_mask & 0x4ULL) { // '**' expression if (p->error_indicator) { p->level--; @@ -18843,8 +22168,8 @@ star_targets_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_10_result = NULL; - int _prefix_10_end = 0, _prefix_10_valid = 0; + expr_ty _prefix_85_result = NULL; + int _prefix_85_end = 0, _prefix_85_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -18854,6 +22179,31 @@ star_targets_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 16: + case 25: + case 52: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // star_target !',' if (p->error_indicator) { p->level--; @@ -18862,7 +22212,7 @@ star_targets_rule(Parser *p) D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','")); expr_ty a; if ( - (a = ((!p->call_invalid_rules && _prefix_10_valid) ? (p->mark = _prefix_10_end, _prefix_10_result) : (_prefix_10_result = star_target_rule(p), _prefix_10_end = p->mark, _prefix_10_valid = 1, _prefix_10_result))) // star_target + (a = ((!p->call_invalid_rules && _prefix_85_valid) ? (p->mark = _prefix_85_end, _prefix_85_result) : (_prefix_85_result = star_target_rule(p), _prefix_85_end = p->mark, _prefix_85_valid = 1, _prefix_85_result))) // star_target && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=',' ) @@ -18880,6 +22230,7 @@ star_targets_rule(Parser *p) D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','")); } + if (_first_set_mask & 0x2ULL) { // star_target ((',' star_target))* ','? if (p->error_indicator) { p->level--; @@ -18891,7 +22242,7 @@ star_targets_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_10_valid) ? (p->mark = _prefix_10_end, _prefix_10_result) : (_prefix_10_result = star_target_rule(p), _prefix_10_end = p->mark, _prefix_10_valid = 1, _prefix_10_result))) // star_target + (a = ((!p->call_invalid_rules && _prefix_85_valid) ? (p->mark = _prefix_85_end, _prefix_85_result) : (_prefix_85_result = star_target_rule(p), _prefix_85_end = p->mark, _prefix_85_valid = 1, _prefix_85_result))) // star_target && (b = _loop0_98_rule(p)) // ((',' star_target))* && @@ -18952,6 +22303,29 @@ star_target_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 16: + goto first_set_alt_86; + case 1: + case 2: + case 3: + case 7: + case 9: + case 25: + case 52: + case 59: + case 62: + case 627: + case 628: + case 629: + goto first_set_alt_87; + default: + goto first_set_done_88; + } + } + first_set_alt_86: { // '*' (!'*' star_target) if (p->error_indicator) { p->level--; @@ -18988,6 +22362,10 @@ star_target_rule(Parser *p) D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)")); } + if (!p->call_invalid_rules) { + goto first_set_done_88; + } + first_set_alt_87: { // target if (p->error_indicator) { p->level--; @@ -19007,6 +22385,11 @@ star_target_rule(Parser *p) D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target")); } + if (!p->call_invalid_rules) { + goto first_set_done_88; + } + first_set_done_88: + ; _res = NULL; done: _PyPegen_insert_memo(p, _mark, star_target_type, _res); @@ -19308,6 +22691,50 @@ type_expressions_rule(Parser *p) } asdl_expr_seq* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x18ULL; + break; + case 35: + _first_set_mask = 0x20ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x47ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // ','.expression+ ',' '*' expression ',' '**' expression if (p->error_indicator) { p->level--; @@ -19350,6 +22777,7 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression")); } + if (_first_set_mask & 0x2ULL) { // ','.expression+ ',' '*' expression if (p->error_indicator) { p->level--; @@ -19383,6 +22811,7 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression")); } + if (_first_set_mask & 0x4ULL) { // ','.expression+ ',' '**' expression if (p->error_indicator) { p->level--; @@ -19416,6 +22845,7 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression")); } + if (_first_set_mask & 0x8ULL) { // '*' expression ',' '**' expression if (p->error_indicator) { p->level--; @@ -19452,6 +22882,7 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression")); } + if (_first_set_mask & 0x10ULL) { // '*' expression if (p->error_indicator) { p->level--; @@ -19479,6 +22910,7 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression")); } + if (_first_set_mask & 0x20ULL) { // '**' expression if (p->error_indicator) { p->level--; @@ -19506,6 +22938,7 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression")); } + if (_first_set_mask & 0x40ULL) { // ','.expression+ if (p->error_indicator) { p->level--; @@ -19552,6 +22985,27 @@ func_type_comment_rule(Parser *p) } Token* _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 4: + _first_set_mask = 0x1ULL; + break; + case 57: + _first_set_mask = 0x6ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT) if (p->error_indicator) { p->level--; @@ -19581,6 +23035,7 @@ func_type_comment_rule(Parser *p) D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_double_type_comments if (p->error_indicator) { p->level--; @@ -19600,6 +23055,7 @@ func_type_comment_rule(Parser *p) D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments")); } + if (_first_set_mask & 0x4ULL) { // TYPE_COMMENT if (p->error_indicator) { p->level--; @@ -19645,6 +23101,50 @@ invalid_arguments_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + case 35: + _first_set_mask = 0x79ULL; + break; + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x7bULL; + break; + case 1: + _first_set_mask = 0x7fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // ((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+ if (p->error_indicator) { p->level--; @@ -19675,6 +23175,7 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+")); } + if (_first_set_mask & 0x2ULL) { // expression for_if_clauses ',' [args | expression for_if_clauses] if (p->error_indicator) { p->level--; @@ -19709,6 +23210,7 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]")); } + if (_first_set_mask & 0x4ULL) { // NAME '=' expression for_if_clauses if (p->error_indicator) { p->level--; @@ -19742,6 +23244,7 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses")); } + if (_first_set_mask & 0x8ULL) { // [(args ',')] NAME '=' &(',' | ')') if (p->error_indicator) { p->level--; @@ -19775,6 +23278,7 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[(args ',')] NAME '=' &(',' | ')')")); } + if (_first_set_mask & 0x10ULL) { // args for_if_clauses if (p->error_indicator) { p->level--; @@ -19802,6 +23306,7 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses")); } + if (_first_set_mask & 0x20ULL) { // args ',' expression for_if_clauses if (p->error_indicator) { p->level--; @@ -19835,6 +23340,7 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses")); } + if (_first_set_mask & 0x40ULL) { // args ',' args if (p->error_indicator) { p->level--; @@ -19888,6 +23394,51 @@ invalid_kwarg_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x2ULL; + break; + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 721: + _first_set_mask = 0x4ULL; + break; + case 627: + case 628: + case 629: + _first_set_mask = 0x5ULL; + break; + case 35: + _first_set_mask = 0x8ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // ('True' | 'False' | 'None') '=' if (p->error_indicator) { p->level--; @@ -19915,6 +23466,7 @@ invalid_kwarg_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('True' | 'False' | 'None') '='")); } + if (_first_set_mask & 0x2ULL) { // NAME '=' expression for_if_clauses if (p->error_indicator) { p->level--; @@ -19948,6 +23500,7 @@ invalid_kwarg_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses")); } + if (_first_set_mask & 0x4ULL) { // !(NAME '=') expression '=' if (p->error_indicator) { p->level--; @@ -19977,6 +23530,7 @@ invalid_kwarg_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='")); } + if (_first_set_mask & 0x8ULL) { // '**' expression '=' expression if (p->error_indicator) { p->level--; @@ -20035,8 +23589,8 @@ expression_without_invalid_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_11_result = NULL; - int _prefix_11_end = 0, _prefix_11_valid = 0; + expr_ty _prefix_89_result = NULL; + int _prefix_89_end = 0, _prefix_89_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->call_invalid_rules = _prev_call_invalid; @@ -20047,6 +23601,38 @@ expression_without_invalid_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + case 622: + _first_set_mask = 0x4ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // disjunction 'if' disjunction 'else' expression if (p->error_indicator) { p->call_invalid_rules = _prev_call_invalid; @@ -20060,7 +23646,7 @@ expression_without_invalid_rule(Parser *p) expr_ty b; expr_ty c; if ( - (a = ((!p->call_invalid_rules && _prefix_11_valid) ? (p->mark = _prefix_11_end, _prefix_11_result) : (_prefix_11_result = disjunction_rule(p), _prefix_11_end = p->mark, _prefix_11_valid = 1, _prefix_11_result))) // disjunction + (a = ((!p->call_invalid_rules && _prefix_89_valid) ? (p->mark = _prefix_89_end, _prefix_89_result) : (_prefix_89_result = disjunction_rule(p), _prefix_89_end = p->mark, _prefix_89_valid = 1, _prefix_89_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -20095,6 +23681,7 @@ expression_without_invalid_rule(Parser *p) D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression")); } + if (_first_set_mask & 0x2ULL) { // disjunction if (p->error_indicator) { p->call_invalid_rules = _prev_call_invalid; @@ -20104,7 +23691,7 @@ expression_without_invalid_rule(Parser *p) D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction")); expr_ty disjunction_var; if ( - (disjunction_var = ((!p->call_invalid_rules && _prefix_11_valid) ? (p->mark = _prefix_11_end, _prefix_11_result) : (_prefix_11_result = disjunction_rule(p), _prefix_11_end = p->mark, _prefix_11_valid = 1, _prefix_11_result))) // disjunction + (disjunction_var = ((!p->call_invalid_rules && _prefix_89_valid) ? (p->mark = _prefix_89_end, _prefix_89_result) : (_prefix_89_result = disjunction_rule(p), _prefix_89_end = p->mark, _prefix_89_valid = 1, _prefix_89_result))) // disjunction ) { D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction")); @@ -20115,6 +23702,7 @@ expression_without_invalid_rule(Parser *p) D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction")); } + if (_first_set_mask & 0x4ULL) { // lambdef if (p->error_indicator) { p->call_invalid_rules = _prev_call_invalid; @@ -20203,6 +23791,23 @@ invalid_type_param_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 16: + goto first_set_alt_90; + case 35: + goto first_set_alt_91; + default: + goto first_set_done_92; + } + } + first_set_alt_90: { // '*' NAME ':' expression if (p->error_indicator) { p->level--; @@ -20236,6 +23841,10 @@ invalid_type_param_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_type_param[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' NAME ':' expression")); } + if (!p->call_invalid_rules) { + goto first_set_done_92; + } + first_set_alt_91: { // '**' NAME ':' expression if (p->error_indicator) { p->level--; @@ -20269,6 +23878,11 @@ invalid_type_param_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_type_param[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' NAME ':' expression")); } + if (!p->call_invalid_rules) { + goto first_set_done_92; + } + first_set_done_92: + ; _res = NULL; done: p->level--; @@ -20295,8 +23909,54 @@ invalid_expression_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - expr_ty _prefix_12_result = NULL; - int _prefix_12_end = 0, _prefix_12_valid = 0; + expr_ty _prefix_93_result = NULL; + int _prefix_93_end = 0, _prefix_93_valid = 0; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0xcULL; + break; + case 2: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0xeULL; + break; + case 3: + _first_set_mask = 0xfULL; + break; + case 527: + case 528: + case 529: + _first_set_mask = 0x10ULL; + break; + case 622: + _first_set_mask = 0x60ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // STRING ((!STRING expression_without_invalid))+ STRING if (p->error_indicator) { p->level--; @@ -20327,6 +23987,7 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING ((!STRING expression_without_invalid))+ STRING")); } + if (_first_set_mask & 0x2ULL) { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid if (p->error_indicator) { p->level--; @@ -20356,6 +24017,7 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid")); } + if (_first_set_mask & 0x4ULL) { // disjunction 'if' disjunction !('else' | ':') if (p->error_indicator) { p->level--; @@ -20366,7 +24028,7 @@ invalid_expression_rule(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_12_valid) ? (p->mark = _prefix_12_end, _prefix_12_result) : (_prefix_12_result = disjunction_rule(p), _prefix_12_end = p->mark, _prefix_12_valid = 1, _prefix_12_result))) // disjunction + (a = ((!p->call_invalid_rules && _prefix_93_valid) ? (p->mark = _prefix_93_end, _prefix_93_result) : (_prefix_93_result = disjunction_rule(p), _prefix_93_end = p->mark, _prefix_93_valid = 1, _prefix_93_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -20388,6 +24050,7 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } + if (_first_set_mask & 0x8ULL) { // disjunction 'if' disjunction 'else' !expression if (p->error_indicator) { p->level--; @@ -20399,7 +24062,7 @@ invalid_expression_rule(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_12_valid) ? (p->mark = _prefix_12_end, _prefix_12_result) : (_prefix_12_result = disjunction_rule(p), _prefix_12_end = p->mark, _prefix_12_valid = 1, _prefix_12_result))) // disjunction + (a = ((!p->call_invalid_rules && _prefix_93_valid) ? (p->mark = _prefix_93_end, _prefix_93_result) : (_prefix_93_result = disjunction_rule(p), _prefix_93_end = p->mark, _prefix_93_valid = 1, _prefix_93_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -20423,6 +24086,7 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' !expression")); } + if (_first_set_mask & 0x10ULL) { // (pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt if (p->error_indicator) { p->level--; @@ -20459,6 +24123,7 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt")); } + if (_first_set_mask & 0x20ULL) { // 'lambda' lambda_params? ':' &FSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -20492,6 +24157,7 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' &FSTRING_MIDDLE")); } + if (_first_set_mask & 0x40ULL) { // 'lambda' lambda_params? ':' &TSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -20546,8 +24212,42 @@ invalid_if_expression_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - expr_ty _prefix_13_result = NULL; - int _prefix_13_end = 0, _prefix_13_valid = 0; + expr_ty _prefix_94_result = NULL; + int _prefix_94_end = 0, _prefix_94_valid = 0; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 598: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // disjunction 'if' disjunction 'else' '*' if (p->error_indicator) { p->level--; @@ -20560,7 +24260,7 @@ invalid_if_expression_rule(Parser *p) expr_ty b; expr_ty disjunction_var; if ( - (disjunction_var = ((!p->call_invalid_rules && _prefix_13_valid) ? (p->mark = _prefix_13_end, _prefix_13_result) : (_prefix_13_result = disjunction_rule(p), _prefix_13_end = p->mark, _prefix_13_valid = 1, _prefix_13_result))) // disjunction + (disjunction_var = ((!p->call_invalid_rules && _prefix_94_valid) ? (p->mark = _prefix_94_end, _prefix_94_result) : (_prefix_94_result = disjunction_rule(p), _prefix_94_end = p->mark, _prefix_94_valid = 1, _prefix_94_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -20584,6 +24284,7 @@ invalid_if_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_if_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' '*'")); } + if (_first_set_mask & 0x2ULL) { // disjunction 'if' disjunction 'else' '**' if (p->error_indicator) { p->level--; @@ -20596,7 +24297,7 @@ invalid_if_expression_rule(Parser *p) expr_ty b; expr_ty disjunction_var; if ( - (disjunction_var = ((!p->call_invalid_rules && _prefix_13_valid) ? (p->mark = _prefix_13_end, _prefix_13_result) : (_prefix_13_result = disjunction_rule(p), _prefix_13_end = p->mark, _prefix_13_valid = 1, _prefix_13_result))) // disjunction + (disjunction_var = ((!p->call_invalid_rules && _prefix_94_valid) ? (p->mark = _prefix_94_end, _prefix_94_result) : (_prefix_94_result = disjunction_rule(p), _prefix_94_end = p->mark, _prefix_94_valid = 1, _prefix_94_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -20646,6 +24347,48 @@ invalid_named_expression_rule(Parser *p) return _res; } int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + case 9: + case 25: + case 527: + case 528: + case 529: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x1ULL; + break; + case 2: + case 3: + case 14: + case 15: + case 31: + case 52: + case 59: + case 62: + case 598: + _first_set_mask = 0x5ULL; + break; + case 1: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // expression ':=' expression if (p->error_indicator) { p->level--; @@ -20676,6 +24419,7 @@ invalid_named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression")); } + if (_first_set_mask & 0x2ULL) { // NAME '=' bitwise_or !('=' | ':=') if (p->error_indicator) { p->level--; @@ -20708,6 +24452,7 @@ invalid_named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')")); } + if (_first_set_mask & 0x4ULL) { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=') if (p->error_indicator) { p->level--; @@ -20768,6 +24513,54 @@ invalid_assignment_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 588: + _first_set_mask = 0x10ULL; + break; + case 14: + case 15: + case 31: + case 527: + case 528: + case 529: + case 598: + case 622: + case 721: + _first_set_mask = 0x2eULL; + break; + case 16: + _first_set_mask = 0x3aULL; + break; + case 1: + case 2: + case 3: + case 25: + case 52: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x3eULL; + break; + case 7: + case 9: + _first_set_mask = 0x3fULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // invalid_ann_assign_target ':' expression if (p->error_indicator) { p->level--; @@ -20798,6 +24591,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression")); } + if (_first_set_mask & 0x2ULL) { // star_named_expression ',' star_named_expressions* ':' expression if (p->error_indicator) { p->level--; @@ -20834,6 +24628,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression")); } + if (_first_set_mask & 0x4ULL) { // expression ':' expression if (p->error_indicator) { p->level--; @@ -20864,6 +24659,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression")); } + if (_first_set_mask & 0x8ULL) { // ((star_targets '='))* star_expressions '=' if (p->error_indicator) { p->level--; @@ -20894,6 +24690,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='")); } + if (_first_set_mask & 0x10ULL) { // ((star_targets '='))* yield_expr '=' if (p->error_indicator) { p->level--; @@ -20924,6 +24721,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='")); } + if (_first_set_mask & 0x20ULL) { // star_expressions augassign annotated_rhs if (p->error_indicator) { p->level--; @@ -20973,6 +24771,27 @@ invalid_ann_assign_target_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 9: + _first_set_mask = 0x1ULL; + break; + case 7: + _first_set_mask = 0x6ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // list if (p->error_indicator) { p->level--; @@ -20992,6 +24811,7 @@ invalid_ann_assign_target_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } + if (_first_set_mask & 0x2ULL) { // tuple if (p->error_indicator) { p->level--; @@ -21011,6 +24831,7 @@ invalid_ann_assign_target_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_ann_assign_target[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } + if (_first_set_mask & 0x4ULL) { // '(' invalid_ann_assign_target ')' if (p->error_indicator) { p->level--; @@ -21060,6 +24881,24 @@ invalid_raise_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 632: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'raise' 'from' if (p->error_indicator) { p->level--; @@ -21087,6 +24926,7 @@ invalid_raise_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_raise_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' 'from'")); } + if (_first_set_mask & 0x2ULL) { // 'raise' expression 'from' if (p->error_indicator) { p->level--; @@ -21186,6 +25026,24 @@ invalid_assert_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 638: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'assert' expression '=' expression if (p->error_indicator) { p->level--; @@ -21219,6 +25077,7 @@ invalid_assert_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assert_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression '=' expression")); } + if (_first_set_mask & 0x2ULL) { // 'assert' expression ',' expression '=' expression if (p->error_indicator) { p->level--; @@ -21258,6 +25117,7 @@ invalid_assert_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assert_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression ',' expression '=' expression")); } + if (_first_set_mask & 0x4ULL) { // 'assert' expression ':=' expression if (p->error_indicator) { p->level--; @@ -21291,6 +25151,7 @@ invalid_assert_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assert_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression ':=' expression")); } + if (_first_set_mask & 0x8ULL) { // 'assert' expression ',' expression ':=' expression if (p->error_indicator) { p->level--; @@ -21398,6 +25259,30 @@ invalid_comprehension_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + _first_set_mask = 0x2ULL; + break; + case 25: + _first_set_mask = 0xcULL; + break; + case 9: + _first_set_mask = 0xdULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '[' '**' expression for_if_clauses if (p->error_indicator) { p->level--; @@ -21431,6 +25316,7 @@ invalid_comprehension_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' '**' expression for_if_clauses")); } + if (_first_set_mask & 0x2ULL) { // '(' '**' expression for_if_clauses if (p->error_indicator) { p->level--; @@ -21464,6 +25350,7 @@ invalid_comprehension_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' '**' expression for_if_clauses")); } + if (_first_set_mask & 0x4ULL) { // ('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses if (p->error_indicator) { p->level--; @@ -21500,6 +25387,7 @@ invalid_comprehension_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses")); } + if (_first_set_mask & 0x8ULL) { // ('[' | '{') star_named_expression ',' for_if_clauses if (p->error_indicator) { p->level--; @@ -21558,6 +25446,33 @@ invalid_parameters_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 17: + _first_set_mask = 0x1ULL; + break; + case 7: + _first_set_mask = 0x8ULL; + break; + case 16: + _first_set_mask = 0x10ULL; + break; + case 1: + _first_set_mask = 0x3eULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // "/" ',' if (p->error_indicator) { p->level--; @@ -21585,6 +25500,7 @@ invalid_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"/\" ','")); } + if (_first_set_mask & 0x2ULL) { // (slash_no_default | slash_with_default) param_maybe_default* '/' if (p->error_indicator) { p->level--; @@ -21615,6 +25531,7 @@ invalid_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'")); } + if (_first_set_mask & 0x4ULL) { // slash_no_default? param_no_default* invalid_parameters_helper param_no_default if (p->error_indicator) { p->level--; @@ -21649,6 +25566,7 @@ invalid_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default? param_no_default* invalid_parameters_helper param_no_default")); } + if (_first_set_mask & 0x8ULL) { // param_no_default* '(' param_no_default+ ','? ')' if (p->error_indicator) { p->level--; @@ -21686,6 +25604,7 @@ invalid_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* '(' param_no_default+ ','? ')'")); } + if (_first_set_mask & 0x10ULL) { // [(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/' if (p->error_indicator) { p->level--; @@ -21726,6 +25645,7 @@ invalid_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[(slash_no_default | slash_with_default)] param_maybe_default* '*' (',' | param_no_default) param_maybe_default* '/'")); } + if (_first_set_mask & 0x20ULL) { // param_maybe_default+ '/' '*' if (p->error_indicator) { p->level--; @@ -21824,6 +25744,24 @@ invalid_star_etc_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '*' (')' | ',' (')' | '**')) if (p->error_indicator) { p->level--; @@ -21851,6 +25789,7 @@ invalid_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); } + if (_first_set_mask & 0x2ULL) { // '*' ',' TYPE_COMMENT if (p->error_indicator) { p->level--; @@ -21881,6 +25820,7 @@ invalid_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT")); } + if (_first_set_mask & 0x4ULL) { // '*' param '=' if (p->error_indicator) { p->level--; @@ -21911,6 +25851,7 @@ invalid_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param '='")); } + if (_first_set_mask & 0x8ULL) { // '*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',') if (p->error_indicator) { p->level--; @@ -21966,6 +25907,24 @@ invalid_kwds_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 35: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '**' param '=' if (p->error_indicator) { p->level--; @@ -21996,6 +25955,7 @@ invalid_kwds_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kwds[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param '='")); } + if (_first_set_mask & 0x2ULL) { // '**' param ',' param if (p->error_indicator) { p->level--; @@ -22029,6 +25989,7 @@ invalid_kwds_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kwds[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param ',' param")); } + if (_first_set_mask & 0x4ULL) { // '**' param ',' ('*' | '**' | '/') if (p->error_indicator) { p->level--; @@ -22081,6 +26042,24 @@ invalid_parameters_helper_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // slash_with_default if (p->error_indicator) { p->level--; @@ -22105,6 +26084,7 @@ invalid_parameters_helper_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default")); } + if (_first_set_mask & 0x2ULL) { // param_with_default+ if (p->error_indicator) { p->level--; @@ -22149,6 +26129,33 @@ invalid_lambda_parameters_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 17: + _first_set_mask = 0x1ULL; + break; + case 7: + _first_set_mask = 0x8ULL; + break; + case 16: + _first_set_mask = 0x10ULL; + break; + case 1: + _first_set_mask = 0x3eULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // "/" ',' if (p->error_indicator) { p->level--; @@ -22176,6 +26183,7 @@ invalid_lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"/\" ','")); } + if (_first_set_mask & 0x2ULL) { // (lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/' if (p->error_indicator) { p->level--; @@ -22206,6 +26214,7 @@ invalid_lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'")); } + if (_first_set_mask & 0x4ULL) { // lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default if (p->error_indicator) { p->level--; @@ -22240,6 +26249,7 @@ invalid_lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default? lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default")); } + if (_first_set_mask & 0x8ULL) { // lambda_param_no_default* '(' ','.lambda_param+ ','? ')' if (p->error_indicator) { p->level--; @@ -22277,6 +26287,7 @@ invalid_lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'")); } + if (_first_set_mask & 0x10ULL) { // [(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/' if (p->error_indicator) { p->level--; @@ -22317,6 +26328,7 @@ invalid_lambda_parameters_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[(lambda_slash_no_default | lambda_slash_with_default)] lambda_param_maybe_default* '*' (',' | lambda_param_no_default) lambda_param_maybe_default* '/'")); } + if (_first_set_mask & 0x20ULL) { // lambda_param_maybe_default+ '/' '*' if (p->error_indicator) { p->level--; @@ -22368,6 +26380,24 @@ invalid_lambda_parameters_helper_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // lambda_slash_with_default if (p->error_indicator) { p->level--; @@ -22392,6 +26422,7 @@ invalid_lambda_parameters_helper_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_parameters_helper[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default")); } + if (_first_set_mask & 0x2ULL) { // lambda_param_with_default+ if (p->error_indicator) { p->level--; @@ -22433,6 +26464,24 @@ invalid_lambda_star_etc_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '*' (':' | ',' (':' | '**')) if (p->error_indicator) { p->level--; @@ -22460,6 +26509,7 @@ invalid_lambda_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); } + if (_first_set_mask & 0x2ULL) { // '*' lambda_param '=' if (p->error_indicator) { p->level--; @@ -22490,6 +26540,7 @@ invalid_lambda_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param '='")); } + if (_first_set_mask & 0x4ULL) { // '*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',') if (p->error_indicator) { p->level--; @@ -22548,6 +26599,24 @@ invalid_lambda_kwds_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 35: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '**' lambda_param '=' if (p->error_indicator) { p->level--; @@ -22578,6 +26647,7 @@ invalid_lambda_kwds_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param '='")); } + if (_first_set_mask & 0x2ULL) { // '**' lambda_param ',' lambda_param if (p->error_indicator) { p->level--; @@ -22611,6 +26681,7 @@ invalid_lambda_kwds_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param ',' lambda_param")); } + if (_first_set_mask & 0x4ULL) { // '**' lambda_param ',' ('*' | '**' | '/') if (p->error_indicator) { p->level--; @@ -22871,6 +26942,24 @@ invalid_group_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '(' starred_expression ')' if (p->error_indicator) { p->level--; @@ -22901,6 +26990,7 @@ invalid_group_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_group[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' starred_expression ')'")); } + if (_first_set_mask & 0x2ULL) { // '(' '**' expression ')' if (p->error_indicator) { p->level--; @@ -22953,6 +27043,24 @@ invalid_import_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 651: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'import' ','.dotted_name+ 'from' dotted_name if (p->error_indicator) { p->level--; @@ -22986,6 +27094,7 @@ invalid_import_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_import[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' ','.dotted_name+ 'from' dotted_name")); } + if (_first_set_mask & 0x2ULL) { // 'import' NEWLINE if (p->error_indicator) { p->level--; @@ -23193,6 +27302,23 @@ invalid_import_from_targets_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 1: + goto first_set_alt_95; + case 4: + goto first_set_alt_96; + default: + goto first_set_done_97; + } + } + first_set_alt_95: { // import_from_as_names ',' NEWLINE if (p->error_indicator) { p->level--; @@ -23223,6 +27349,10 @@ invalid_import_from_targets_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE")); } + if (!p->call_invalid_rules) { + goto first_set_done_97; + } + first_set_alt_96: { // NEWLINE if (p->error_indicator) { p->level--; @@ -23247,6 +27377,11 @@ invalid_import_from_targets_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } + if (!p->call_invalid_rules) { + goto first_set_done_97; + } + first_set_done_97: + ; _res = NULL; done: p->level--; @@ -23269,6 +27404,25 @@ invalid_with_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 665: + case 716: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'async'? 'with' ','.(expression ['as' star_target])+ ',' ':' if (p->error_indicator) { p->level--; @@ -23306,6 +27460,7 @@ invalid_with_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ ',' ':'")); } + if (_first_set_mask & 0x2ULL) { // 'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE if (p->error_indicator) { p->level--; @@ -23340,6 +27495,7 @@ invalid_with_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_with_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE")); } + if (_first_set_mask & 0x4ULL) { // 'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE if (p->error_indicator) { p->level--; @@ -23405,6 +27561,25 @@ invalid_with_stmt_indent_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 665: + case 716: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'async'? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -23444,6 +27619,7 @@ invalid_with_stmt_indent_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_with_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT")); } + if (_first_set_mask & 0x2ULL) { // 'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -23516,6 +27692,24 @@ invalid_try_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 674: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'try' ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -23548,6 +27742,7 @@ invalid_try_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' NEWLINE !INDENT")); } + if (_first_set_mask & 0x2ULL) { // 'try' ':' block !('except' | 'finally') if (p->error_indicator) { p->level--; @@ -23580,6 +27775,7 @@ invalid_try_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block !('except' | 'finally')")); } + if (_first_set_mask & 0x4ULL) { // 'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':' if (p->error_indicator) { p->level--; @@ -23629,6 +27825,7 @@ invalid_try_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_try_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block* except_block+ 'except' '*' expression ['as' NAME] ':'")); } + if (_first_set_mask & 0x8ULL) { // 'try' ':' block* except_star_block+ 'except' [expression ['as' NAME]] ':' if (p->error_indicator) { p->level--; @@ -23695,6 +27892,24 @@ invalid_except_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 695: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'except' expression ',' expressions 'as' NAME ':' if (p->error_indicator) { p->level--; @@ -23737,6 +27952,7 @@ invalid_except_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ',' expressions 'as' NAME ':'")); } + if (_first_set_mask & 0x2ULL) { // 'except' expression ['as' NAME] NEWLINE if (p->error_indicator) { p->level--; @@ -23771,6 +27987,7 @@ invalid_except_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] NEWLINE")); } + if (_first_set_mask & 0x4ULL) { // 'except' NEWLINE if (p->error_indicator) { p->level--; @@ -23798,6 +28015,7 @@ invalid_except_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_except_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' NEWLINE")); } + if (_first_set_mask & 0x8ULL) { // 'except' expression 'as' expression ':' block if (p->error_indicator) { p->level--; @@ -23860,6 +28078,24 @@ invalid_except_star_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 695: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'except' '*' expression ',' expressions 'as' NAME ':' if (p->error_indicator) { p->level--; @@ -23905,6 +28141,7 @@ invalid_except_star_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_except_star_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ',' expressions 'as' NAME ':'")); } + if (_first_set_mask & 0x2ULL) { // 'except' '*' expression ['as' NAME] NEWLINE if (p->error_indicator) { p->level--; @@ -23942,6 +28179,7 @@ invalid_except_star_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_except_star_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' expression ['as' NAME] NEWLINE")); } + if (_first_set_mask & 0x4ULL) { // 'except' '*' (NEWLINE | ':') if (p->error_indicator) { p->level--; @@ -23972,6 +28210,7 @@ invalid_except_star_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_except_star_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' '*' (NEWLINE | ':')")); } + if (_first_set_mask & 0x8ULL) { // 'except' '*' expression 'as' expression ':' block if (p->error_indicator) { p->level--; @@ -24086,6 +28325,24 @@ invalid_except_stmt_indent_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 695: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'except' expression ['as' NAME] ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24125,6 +28382,7 @@ invalid_except_stmt_indent_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_except_stmt_indent[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' NEWLINE !INDENT")); } + if (_first_set_mask & 0x2ULL) { // 'except' ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24241,6 +28499,24 @@ invalid_match_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // "match" subject_expr NEWLINE if (p->error_indicator) { p->level--; @@ -24271,6 +28547,7 @@ invalid_match_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // "match" subject_expr ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24306,6 +28583,7 @@ invalid_match_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_match_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"match\" subject_expr ':' NEWLINE !INDENT")); } + if (_first_set_mask & 0x4ULL) { // "case" patterns guard? ':' block if (p->error_indicator) { p->level--; @@ -24364,6 +28642,24 @@ invalid_case_block_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // "case" patterns guard? NEWLINE if (p->error_indicator) { p->level--; @@ -24398,6 +28694,7 @@ invalid_case_block_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_case_block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"case\" patterns guard? NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // "case" patterns guard? ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24456,6 +28753,36 @@ invalid_as_pattern_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // or_pattern 'as' "_" if (p->error_indicator) { p->level--; @@ -24486,6 +28813,7 @@ invalid_as_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\"")); } + if (_first_set_mask & 0x2ULL) { // or_pattern 'as' expression if (p->error_indicator) { p->level--; @@ -24704,6 +29032,24 @@ invalid_if_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 700: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'if' named_expression NEWLINE if (p->error_indicator) { p->level--; @@ -24734,6 +29080,7 @@ invalid_if_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_if_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // 'if' named_expression ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24790,6 +29137,24 @@ invalid_elif_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 705: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'elif' named_expression NEWLINE if (p->error_indicator) { p->level--; @@ -24820,6 +29185,7 @@ invalid_elif_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_elif_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // 'elif' named_expression ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24874,6 +29240,24 @@ invalid_else_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 704: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'else' ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24906,6 +29290,7 @@ invalid_else_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' NEWLINE !INDENT")); } + if (_first_set_mask & 0x2ULL) { // 'else' ':' block 'elif' if (p->error_indicator) { p->level--; @@ -24960,6 +29345,24 @@ invalid_while_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 707: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'while' named_expression NEWLINE if (p->error_indicator) { p->level--; @@ -24990,6 +29393,7 @@ invalid_while_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_while_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // 'while' named_expression ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -25046,6 +29450,25 @@ invalid_for_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 712: + case 716: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'async'? 'for' star_targets 'in' star_expressions NEWLINE if (p->error_indicator) { p->level--; @@ -25086,6 +29509,7 @@ invalid_for_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_for_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'for' star_targets 'in' star_expressions NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // 'async'? 'for' star_targets 'in' star_expressions ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -25152,6 +29576,25 @@ invalid_def_raw_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 716: + case 717: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'async'? 'def' NAME type_params? '(' params? ')' ['->' expression] ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -25209,6 +29652,7 @@ invalid_def_raw_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_def_raw[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'? 'def' NAME type_params? '(' params? ')' ['->' expression] ':' NEWLINE !INDENT")); } + if (_first_set_mask & 0x2ULL) { // 'async'? 'def' NAME type_params? &&'(' params? ')' ['->' expression] &&':' func_type_comment? block if (p->error_indicator) { p->level--; @@ -25284,6 +29728,24 @@ invalid_class_def_raw_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 719: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // 'class' NAME type_params? ['(' arguments? ')'] NEWLINE if (p->error_indicator) { p->level--; @@ -25322,6 +29784,7 @@ invalid_class_def_raw_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_class_def_raw[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME type_params? ['(' arguments? ')'] NEWLINE")); } + if (_first_set_mask & 0x2ULL) { // 'class' NAME type_params? ['(' arguments? ')'] ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -25387,6 +29850,50 @@ invalid_double_starred_kvpairs_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x1ULL; + break; + case 35: + _first_set_mask = 0x3ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // invalid_kvpair_unpacking ','? if (p->error_indicator) { p->level--; @@ -25410,6 +29917,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kvpair_unpacking ','?")); } + if (_first_set_mask & 0x2ULL) { // ','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking) if (p->error_indicator) { p->level--; @@ -25435,6 +29943,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking)")); } + if (_first_set_mask & 0x4ULL) { // expression ':' &('}' | ',') if (p->error_indicator) { p->level--; @@ -25488,8 +29997,52 @@ invalid_kvpair_unpacking_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - expr_ty _prefix_14_result = NULL; - int _prefix_14_end = 0, _prefix_14_valid = 0; + expr_ty _prefix_98_result = NULL; + int _prefix_98_end = 0, _prefix_98_valid = 0; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x2ULL; + break; + case 35: + _first_set_mask = 0x5ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x18ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '**' if_expression if (p->error_indicator) { p->level--; @@ -25517,6 +30070,7 @@ invalid_kvpair_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' if_expression")); } + if (_first_set_mask & 0x2ULL) { // '*' bitwise_or ':' expression if (p->error_indicator) { p->level--; @@ -25550,6 +30104,7 @@ invalid_kvpair_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or ':' expression")); } + if (_first_set_mask & 0x4ULL) { // '**' bitwise_or ':' expression if (p->error_indicator) { p->level--; @@ -25583,6 +30138,7 @@ invalid_kvpair_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or ':' expression")); } + if (_first_set_mask & 0x8ULL) { // expression ':' '*' bitwise_or if (p->error_indicator) { p->level--; @@ -25594,7 +30150,7 @@ invalid_kvpair_unpacking_rule(Parser *p) expr_ty b; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_14_valid) ? (p->mark = _prefix_14_end, _prefix_14_result) : (_prefix_14_result = expression_rule(p), _prefix_14_end = p->mark, _prefix_14_valid = 1, _prefix_14_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_98_valid) ? (p->mark = _prefix_98_end, _prefix_98_result) : (_prefix_98_result = expression_rule(p), _prefix_98_end = p->mark, _prefix_98_valid = 1, _prefix_98_result))) // expression && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -25616,6 +30172,7 @@ invalid_kvpair_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or")); } + if (_first_set_mask & 0x10ULL) { // expression ':' '**' bitwise_or if (p->error_indicator) { p->level--; @@ -25627,7 +30184,7 @@ invalid_kvpair_unpacking_rule(Parser *p) expr_ty b; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_14_valid) ? (p->mark = _prefix_14_end, _prefix_14_result) : (_prefix_14_result = expression_rule(p), _prefix_14_end = p->mark, _prefix_14_valid = 1, _prefix_14_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_98_valid) ? (p->mark = _prefix_98_end, _prefix_98_result) : (_prefix_98_result = expression_rule(p), _prefix_98_end = p->mark, _prefix_98_valid = 1, _prefix_98_result))) // expression && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -25672,8 +30229,46 @@ invalid_kvpair_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - expr_ty _prefix_15_result = NULL; - int _prefix_15_end = 0, _prefix_15_valid = 0; + expr_ty _prefix_99_result = NULL; + int _prefix_99_end = 0, _prefix_99_valid = 0; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // expression !(':') if (p->error_indicator) { p->level--; @@ -25682,7 +30277,7 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')")); expr_ty a; if ( - (a = ((!p->call_invalid_rules && _prefix_15_valid) ? (p->mark = _prefix_15_end, _prefix_15_result) : (_prefix_15_result = expression_rule(p), _prefix_15_end = p->mark, _prefix_15_valid = 1, _prefix_15_result))) // expression + (a = ((!p->call_invalid_rules && _prefix_99_valid) ? (p->mark = _prefix_99_end, _prefix_99_result) : (_prefix_99_result = expression_rule(p), _prefix_99_end = p->mark, _prefix_99_valid = 1, _prefix_99_result))) // expression && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':') ) @@ -25700,6 +30295,7 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')")); } + if (_first_set_mask & 0x2ULL) { // expression ':' '*' bitwise_or if (p->error_indicator) { p->level--; @@ -25711,7 +30307,7 @@ invalid_kvpair_rule(Parser *p) expr_ty bitwise_or_var; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_15_valid) ? (p->mark = _prefix_15_end, _prefix_15_result) : (_prefix_15_result = expression_rule(p), _prefix_15_end = p->mark, _prefix_15_valid = 1, _prefix_15_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_99_valid) ? (p->mark = _prefix_99_end, _prefix_99_result) : (_prefix_99_result = expression_rule(p), _prefix_99_end = p->mark, _prefix_99_valid = 1, _prefix_99_result))) // expression && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -25733,6 +30329,7 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or")); } + if (_first_set_mask & 0x4ULL) { // expression ':' '**' bitwise_or if (p->error_indicator) { p->level--; @@ -25744,7 +30341,7 @@ invalid_kvpair_rule(Parser *p) expr_ty bitwise_or_var; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_15_valid) ? (p->mark = _prefix_15_end, _prefix_15_result) : (_prefix_15_result = expression_rule(p), _prefix_15_end = p->mark, _prefix_15_valid = 1, _prefix_15_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_99_valid) ? (p->mark = _prefix_99_end, _prefix_99_result) : (_prefix_99_result = expression_rule(p), _prefix_99_end = p->mark, _prefix_99_valid = 1, _prefix_99_result))) // expression && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -25766,6 +30363,7 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '**' bitwise_or")); } + if (_first_set_mask & 0x8ULL) { // expression ':' &('}' | ',') if (p->error_indicator) { p->level--; @@ -25775,7 +30373,7 @@ invalid_kvpair_rule(Parser *p) Token * a; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_15_valid) ? (p->mark = _prefix_15_end, _prefix_15_result) : (_prefix_15_result = expression_rule(p), _prefix_15_end = p->mark, _prefix_15_valid = 1, _prefix_15_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_99_valid) ? (p->mark = _prefix_99_end, _prefix_99_result) : (_prefix_99_result = expression_rule(p), _prefix_99_end = p->mark, _prefix_99_valid = 1, _prefix_99_result))) // expression && (a = _PyPegen_expect_token(p, 11)) // token=':' && @@ -25814,6 +30412,24 @@ invalid_starred_expression_unpacking_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '*' if_expression if (p->error_indicator) { p->level--; @@ -25841,6 +30457,7 @@ invalid_starred_expression_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_starred_expression_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' if_expression")); } + if (_first_set_mask & 0x2ULL) { // '*' expression '=' expression if (p->error_indicator) { p->level--; @@ -25895,6 +30512,23 @@ invalid_starred_expression_unpacking_sequence_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 35: + goto first_set_alt_100; + case 16: + goto first_set_alt_101; + default: + goto first_set_done_102; + } + } + first_set_alt_100: { // '**' bitwise_or if (p->error_indicator) { p->level--; @@ -25922,6 +30556,10 @@ invalid_starred_expression_unpacking_sequence_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_starred_expression_unpacking_sequence[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or")); } + if (!p->call_invalid_rules) { + goto first_set_done_102; + } + first_set_alt_101: if (p->call_invalid_rules) { // invalid_starred_expression_unpacking if (p->error_indicator) { p->level--; @@ -25941,6 +30579,11 @@ invalid_starred_expression_unpacking_sequence_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_starred_expression_unpacking_sequence[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression_unpacking")); } + if (!p->call_invalid_rules) { + goto first_set_done_102; + } + first_set_done_102: + ; _res = NULL; done: p->level--; @@ -26014,6 +30657,24 @@ invalid_fstring_replacement_field_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x7ffULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' '=' if (p->error_indicator) { p->level--; @@ -26041,6 +30702,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '='")); } + if (_first_set_mask & 0x2ULL) { // '{' '!' if (p->error_indicator) { p->level--; @@ -26068,6 +30730,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '!'")); } + if (_first_set_mask & 0x4ULL) { // '{' ':' if (p->error_indicator) { p->level--; @@ -26095,6 +30758,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' ':'")); } + if (_first_set_mask & 0x8ULL) { // '{' '}' if (p->error_indicator) { p->level--; @@ -26122,6 +30786,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'")); } + if (_first_set_mask & 0x10ULL) { // '{' !annotated_rhs if (p->error_indicator) { p->level--; @@ -26148,6 +30813,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' !annotated_rhs")); } + if (_first_set_mask & 0x20ULL) { // '{' annotated_rhs !('=' | '!' | ':' | '}') if (p->error_indicator) { p->level--; @@ -26177,6 +30843,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')")); } + if (_first_set_mask & 0x40ULL) { // '{' annotated_rhs '=' !('!' | ':' | '}') if (p->error_indicator) { p->level--; @@ -26209,6 +30876,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')")); } + if (_first_set_mask & 0x80ULL) { // '{' annotated_rhs '='? invalid_fstring_conversion_character if (p->error_indicator) { p->level--; @@ -26238,6 +30906,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? invalid_fstring_conversion_character")); } + if (_first_set_mask & 0x100ULL) { // '{' annotated_rhs '='? ['!' NAME] !(':' | '}') if (p->error_indicator) { p->level--; @@ -26275,6 +30944,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')")); } + if (_first_set_mask & 0x200ULL) { // '{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}' if (p->error_indicator) { p->level--; @@ -26318,6 +30988,7 @@ invalid_fstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'")); } + if (_first_set_mask & 0x400ULL) { // '{' annotated_rhs '='? ['!' NAME] !'}' if (p->error_indicator) { p->level--; @@ -26374,6 +31045,24 @@ invalid_fstring_conversion_character_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 54: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '!' &(':' | '}') if (p->error_indicator) { p->level--; @@ -26400,6 +31089,7 @@ invalid_fstring_conversion_character_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_fstring_conversion_character[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' &(':' | '}')")); } + if (_first_set_mask & 0x2ULL) { // '!' !NAME if (p->error_indicator) { p->level--; @@ -26456,6 +31146,24 @@ invalid_tstring_replacement_field_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x7ffULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '{' '=' if (p->error_indicator) { p->level--; @@ -26483,6 +31191,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '='")); } + if (_first_set_mask & 0x2ULL) { // '{' '!' if (p->error_indicator) { p->level--; @@ -26510,6 +31219,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '!'")); } + if (_first_set_mask & 0x4ULL) { // '{' ':' if (p->error_indicator) { p->level--; @@ -26537,6 +31247,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' ':'")); } + if (_first_set_mask & 0x8ULL) { // '{' '}' if (p->error_indicator) { p->level--; @@ -26564,6 +31275,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '}'")); } + if (_first_set_mask & 0x10ULL) { // '{' !annotated_rhs if (p->error_indicator) { p->level--; @@ -26590,6 +31302,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' !annotated_rhs")); } + if (_first_set_mask & 0x20ULL) { // '{' annotated_rhs !('=' | '!' | ':' | '}') if (p->error_indicator) { p->level--; @@ -26619,6 +31332,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')")); } + if (_first_set_mask & 0x40ULL) { // '{' annotated_rhs '=' !('!' | ':' | '}') if (p->error_indicator) { p->level--; @@ -26651,6 +31365,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')")); } + if (_first_set_mask & 0x80ULL) { // '{' annotated_rhs '='? invalid_tstring_conversion_character if (p->error_indicator) { p->level--; @@ -26680,6 +31395,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? invalid_tstring_conversion_character")); } + if (_first_set_mask & 0x100ULL) { // '{' annotated_rhs '='? ['!' NAME] !(':' | '}') if (p->error_indicator) { p->level--; @@ -26717,6 +31433,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')")); } + if (_first_set_mask & 0x200ULL) { // '{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}' if (p->error_indicator) { p->level--; @@ -26760,6 +31477,7 @@ invalid_tstring_replacement_field_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_replacement_field[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] ':' fstring_format_spec* !'}'")); } + if (_first_set_mask & 0x400ULL) { // '{' annotated_rhs '='? ['!' NAME] !'}' if (p->error_indicator) { p->level--; @@ -26816,6 +31534,24 @@ invalid_tstring_conversion_character_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 54: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '!' &(':' | '}') if (p->error_indicator) { p->level--; @@ -26842,6 +31578,7 @@ invalid_tstring_conversion_character_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_tstring_conversion_character[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' &(':' | '}')")); } + if (_first_set_mask & 0x2ULL) { // '!' !NAME if (p->error_indicator) { p->level--; @@ -26889,6 +31626,24 @@ invalid_string_tstring_concat_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 3: + case 59: + goto first_set_alt_103; + case 62: + goto first_set_alt_104; + default: + goto first_set_done_105; + } + } + first_set_alt_103: { // ((fstring | string))+ tstring if (p->error_indicator) { p->level--; @@ -26916,6 +31671,10 @@ invalid_string_tstring_concat_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_string_tstring_concat[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((fstring | string))+ tstring")); } + if (!p->call_invalid_rules) { + goto first_set_done_105; + } + first_set_alt_104: { // tstring+ (fstring | string) if (p->error_indicator) { p->level--; @@ -26943,6 +31702,11 @@ invalid_string_tstring_concat_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_string_tstring_concat[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring+ (fstring | string)")); } + if (!p->call_invalid_rules) { + goto first_set_done_105; + } + first_set_done_105: + ; _res = NULL; done: p->level--; @@ -27466,6 +32230,25 @@ _tmp_5_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 651: + goto first_set_alt_106; + case 650: + goto first_set_alt_107; + case 1: + goto first_set_alt_108; + default: + goto first_set_done_109; + } + } + first_set_alt_106: { // 'import' if (p->error_indicator) { p->level--; @@ -27485,6 +32268,10 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_5[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'")); } + if (!p->call_invalid_rules) { + goto first_set_done_109; + } + first_set_alt_107: { // 'from' if (p->error_indicator) { p->level--; @@ -27504,6 +32291,10 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_5[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'")); } + if (!p->call_invalid_rules) { + goto first_set_done_109; + } + first_set_alt_108: { // "lazy" if (p->error_indicator) { p->level--; @@ -27523,6 +32314,11 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_5[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"lazy\"")); } + if (!p->call_invalid_rules) { + goto first_set_done_109; + } + first_set_done_109: + ; _res = NULL; done: p->level--; @@ -27542,6 +32338,25 @@ _tmp_6_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 717: + goto first_set_alt_110; + case 49: + goto first_set_alt_111; + case 716: + goto first_set_alt_112; + default: + goto first_set_done_113; + } + } + first_set_alt_110: { // 'def' if (p->error_indicator) { p->level--; @@ -27561,6 +32376,10 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'")); } + if (!p->call_invalid_rules) { + goto first_set_done_113; + } + first_set_alt_111: { // '@' if (p->error_indicator) { p->level--; @@ -27580,6 +32399,10 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } + if (!p->call_invalid_rules) { + goto first_set_done_113; + } + first_set_alt_112: { // 'async' if (p->error_indicator) { p->level--; @@ -27599,6 +32422,11 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_6[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); } + if (!p->call_invalid_rules) { + goto first_set_done_113; + } + first_set_done_113: + ; _res = NULL; done: p->level--; @@ -27618,6 +32446,23 @@ _tmp_7_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 719: + goto first_set_alt_114; + case 49: + goto first_set_alt_115; + default: + goto first_set_done_116; + } + } + first_set_alt_114: { // 'class' if (p->error_indicator) { p->level--; @@ -27637,6 +32482,10 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'")); } + if (!p->call_invalid_rules) { + goto first_set_done_116; + } + first_set_alt_115: { // '@' if (p->error_indicator) { p->level--; @@ -27656,6 +32505,11 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_7[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } + if (!p->call_invalid_rules) { + goto first_set_done_116; + } + first_set_done_116: + ; _res = NULL; done: p->level--; @@ -27675,6 +32529,23 @@ _tmp_8_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 665: + goto first_set_alt_117; + case 716: + goto first_set_alt_118; + default: + goto first_set_done_119; + } + } + first_set_alt_117: { // 'with' if (p->error_indicator) { p->level--; @@ -27694,6 +32565,10 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'")); } + if (!p->call_invalid_rules) { + goto first_set_done_119; + } + first_set_alt_118: { // 'async' if (p->error_indicator) { p->level--; @@ -27713,6 +32588,11 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_8[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); } + if (!p->call_invalid_rules) { + goto first_set_done_119; + } + first_set_done_119: + ; _res = NULL; done: p->level--; @@ -27732,6 +32612,23 @@ _tmp_9_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 712: + goto first_set_alt_120; + case 716: + goto first_set_alt_121; + default: + goto first_set_done_122; + } + } + first_set_alt_120: { // 'for' if (p->error_indicator) { p->level--; @@ -27751,6 +32648,10 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'")); } + if (!p->call_invalid_rules) { + goto first_set_done_122; + } + first_set_alt_121: { // 'async' if (p->error_indicator) { p->level--; @@ -27770,6 +32671,11 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_9[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); } + if (!p->call_invalid_rules) { + goto first_set_done_122; + } + first_set_done_122: + ; _res = NULL; done: p->level--; @@ -27835,6 +32741,37 @@ _tmp_11_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 9: + case 25: + case 52: + case 59: + case 62: + case 627: + case 628: + case 629: + _first_set_mask = 0x2ULL; + break; + case 7: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // '(' single_target ')' if (p->error_indicator) { p->level--; @@ -27865,6 +32802,7 @@ _tmp_11_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'")); } + if (_first_set_mask & 0x2ULL) { // attribute_or_subscript_target if (p->error_indicator) { p->level--; @@ -28092,6 +33030,23 @@ _tmp_15_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 13: + goto first_set_alt_123; + case 4: + goto first_set_alt_124; + default: + goto first_set_done_125; + } + } + first_set_alt_123: { // ';' if (p->error_indicator) { p->level--; @@ -28111,6 +33066,10 @@ _tmp_15_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'")); } + if (!p->call_invalid_rules) { + goto first_set_done_125; + } + first_set_alt_124: { // NEWLINE if (p->error_indicator) { p->level--; @@ -28130,6 +33089,11 @@ _tmp_15_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } + if (!p->call_invalid_rules) { + goto first_set_done_125; + } + first_set_done_125: + ; _res = NULL; done: p->level--; @@ -29315,6 +34279,25 @@ _tmp_35_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 12: + goto first_set_alt_126; + case 8: + goto first_set_alt_127; + case 11: + goto first_set_alt_128; + default: + goto first_set_done_129; + } + } + first_set_alt_126: { // ',' if (p->error_indicator) { p->level--; @@ -29334,6 +34317,10 @@ _tmp_35_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_129; + } + first_set_alt_127: { // ')' if (p->error_indicator) { p->level--; @@ -29353,6 +34340,10 @@ _tmp_35_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } + if (!p->call_invalid_rules) { + goto first_set_done_129; + } + first_set_alt_128: { // ':' if (p->error_indicator) { p->level--; @@ -29372,6 +34363,11 @@ _tmp_35_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_35[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } + if (!p->call_invalid_rules) { + goto first_set_done_129; + } + first_set_done_129: + ; _res = NULL; done: p->level--; @@ -29724,6 +34720,23 @@ _tmp_41_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 14: + goto first_set_alt_130; + case 15: + goto first_set_alt_131; + default: + goto first_set_done_132; + } + } + first_set_alt_130: { // '+' if (p->error_indicator) { p->level--; @@ -29743,6 +34756,10 @@ _tmp_41_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_41[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } + if (!p->call_invalid_rules) { + goto first_set_done_132; + } + first_set_alt_131: { // '-' if (p->error_indicator) { p->level--; @@ -29762,6 +34779,11 @@ _tmp_41_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_41[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } + if (!p->call_invalid_rules) { + goto first_set_done_132; + } + first_set_done_132: + ; _res = NULL; done: p->level--; @@ -29781,6 +34803,25 @@ _tmp_42_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 3: + goto first_set_alt_133; + case 59: + goto first_set_alt_134; + case 62: + goto first_set_alt_135; + default: + goto first_set_done_136; + } + } + first_set_alt_133: { // STRING if (p->error_indicator) { p->level--; @@ -29800,6 +34841,10 @@ _tmp_42_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_42[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING")); } + if (!p->call_invalid_rules) { + goto first_set_done_136; + } + first_set_alt_134: { // FSTRING_START if (p->error_indicator) { p->level--; @@ -29819,6 +34864,10 @@ _tmp_42_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_42[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_START")); } + if (!p->call_invalid_rules) { + goto first_set_done_136; + } + first_set_alt_135: { // TSTRING_START if (p->error_indicator) { p->level--; @@ -29838,6 +34887,11 @@ _tmp_42_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_42[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_START")); } + if (!p->call_invalid_rules) { + goto first_set_done_136; + } + first_set_done_136: + ; _res = NULL; done: p->level--; @@ -29857,6 +34911,25 @@ _tmp_43_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 23: + goto first_set_alt_137; + case 7: + goto first_set_alt_138; + case 22: + goto first_set_alt_139; + default: + goto first_set_done_140; + } + } + first_set_alt_137: { // '.' if (p->error_indicator) { p->level--; @@ -29876,6 +34949,10 @@ _tmp_43_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_43[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } + if (!p->call_invalid_rules) { + goto first_set_done_140; + } + first_set_alt_138: { // '(' if (p->error_indicator) { p->level--; @@ -29895,6 +34972,10 @@ _tmp_43_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_43[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } + if (!p->call_invalid_rules) { + goto first_set_done_140; + } + first_set_alt_139: { // '=' if (p->error_indicator) { p->level--; @@ -29914,6 +34995,11 @@ _tmp_43_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_43[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } + if (!p->call_invalid_rules) { + goto first_set_done_140; + } + first_set_done_140: + ; _res = NULL; done: p->level--; @@ -30167,6 +35253,31 @@ _tmp_48_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 2: + case 3: + case 14: + case 15: + case 59: + case 62: + case 627: + case 628: + case 629: + goto first_set_alt_141; + case 1: + goto first_set_alt_142; + default: + goto first_set_done_143; + } + } + first_set_alt_141: { // literal_expr if (p->error_indicator) { p->level--; @@ -30186,6 +35297,10 @@ _tmp_48_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_48[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr")); } + if (!p->call_invalid_rules) { + goto first_set_done_143; + } + first_set_alt_142: { // attr if (p->error_indicator) { p->level--; @@ -30205,6 +35320,11 @@ _tmp_48_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_48[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr")); } + if (!p->call_invalid_rules) { + goto first_set_done_143; + } + first_set_done_143: + ; _res = NULL; done: p->level--; @@ -31258,6 +36378,28 @@ _tmp_66_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 9: + case 25: + _first_set_mask = 0x1ULL; + break; + case 7: + _first_set_mask = 0x7ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // genexp if (p->error_indicator) { p->level--; @@ -31277,6 +36419,7 @@ _tmp_66_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } + if (_first_set_mask & 0x2ULL) { // tuple if (p->error_indicator) { p->level--; @@ -31296,6 +36439,7 @@ _tmp_66_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_66[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } + if (_first_set_mask & 0x4ULL) { // group if (p->error_indicator) { p->level--; @@ -31334,6 +36478,28 @@ _tmp_67_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + case 25: + _first_set_mask = 0x1ULL; + break; + case 9: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // listcomp if (p->error_indicator) { p->level--; @@ -31353,6 +36519,7 @@ _tmp_67_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_67[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp")); } + if (_first_set_mask & 0x2ULL) { // list if (p->error_indicator) { p->level--; @@ -31391,6 +36558,28 @@ _tmp_68_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 7: + case 9: + _first_set_mask = 0x2ULL; + break; + case 25: + _first_set_mask = 0xfULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // dictcomp if (p->error_indicator) { p->level--; @@ -31410,6 +36599,7 @@ _tmp_68_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp")); } + if (_first_set_mask & 0x2ULL) { // setcomp if (p->error_indicator) { p->level--; @@ -31429,6 +36619,7 @@ _tmp_68_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp")); } + if (_first_set_mask & 0x4ULL) { // dict if (p->error_indicator) { p->level--; @@ -31448,6 +36639,7 @@ _tmp_68_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict")); } + if (_first_set_mask & 0x8ULL) { // set if (p->error_indicator) { p->level--; @@ -31486,6 +36678,43 @@ _tmp_69_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 588: + goto first_set_alt_144; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + goto first_set_alt_145; + default: + goto first_set_done_146; + } + } + first_set_alt_144: { // yield_expr if (p->error_indicator) { p->level--; @@ -31505,6 +36734,10 @@ _tmp_69_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } + if (!p->call_invalid_rules) { + goto first_set_done_146; + } + first_set_alt_145: { // named_expression if (p->error_indicator) { p->level--; @@ -31524,6 +36757,11 @@ _tmp_69_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); } + if (!p->call_invalid_rules) { + goto first_set_done_146; + } + first_set_done_146: + ; _res = NULL; done: p->level--; @@ -32794,6 +38032,49 @@ _tmp_89_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x2ULL; + break; + case 1: + _first_set_mask = 0x3ULL; + break; + case 16: + _first_set_mask = 0x4ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // assignment_expression if (p->error_indicator) { p->level--; @@ -32813,6 +38094,7 @@ _tmp_89_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } + if (_first_set_mask & 0x2ULL) { // expression !':=' if (p->error_indicator) { p->level--; @@ -32834,6 +38116,7 @@ _tmp_89_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } + if (_first_set_mask & 0x4ULL) { // starred_expression if (p->error_indicator) { p->level--; @@ -33423,6 +38706,25 @@ _tmp_100_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 7: + goto first_set_alt_147; + case 9: + goto first_set_alt_148; + case 23: + goto first_set_alt_149; + default: + goto first_set_done_150; + } + } + first_set_alt_147: { // '(' if (p->error_indicator) { p->level--; @@ -33442,6 +38744,10 @@ _tmp_100_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } + if (!p->call_invalid_rules) { + goto first_set_done_150; + } + first_set_alt_148: { // '[' if (p->error_indicator) { p->level--; @@ -33461,6 +38767,10 @@ _tmp_100_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } + if (!p->call_invalid_rules) { + goto first_set_done_150; + } + first_set_alt_149: { // '.' if (p->error_indicator) { p->level--; @@ -33480,6 +38790,11 @@ _tmp_100_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } + if (!p->call_invalid_rules) { + goto first_set_done_150; + } + first_set_done_150: + ; _res = NULL; done: p->level--; @@ -33776,6 +39091,48 @@ _tmp_106_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 35: + _first_set_mask = 0x2ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 16: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // (','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) if (p->error_indicator) { p->level--; @@ -33795,6 +39152,7 @@ _tmp_106_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_106[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)")); } + if (_first_set_mask & 0x2ULL) { // kwargs if (p->error_indicator) { p->level--; @@ -33950,6 +39308,48 @@ _tmp_109_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + case 35: + _first_set_mask = 0x1ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // args if (p->error_indicator) { p->level--; @@ -33969,6 +39369,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_109[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args")); } + if (_first_set_mask & 0x2ULL) { // expression for_if_clauses if (p->error_indicator) { p->level--; @@ -34051,6 +39452,23 @@ _tmp_111_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 12: + goto first_set_alt_151; + case 8: + goto first_set_alt_152; + default: + goto first_set_done_153; + } + } + first_set_alt_151: { // ',' if (p->error_indicator) { p->level--; @@ -34070,6 +39488,10 @@ _tmp_111_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_153; + } + first_set_alt_152: { // ')' if (p->error_indicator) { p->level--; @@ -34089,6 +39511,11 @@ _tmp_111_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_111[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } + if (!p->call_invalid_rules) { + goto first_set_done_153; + } + first_set_done_153: + ; _res = NULL; done: p->level--; @@ -34108,6 +39535,25 @@ _tmp_112_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 627: + goto first_set_alt_154; + case 629: + goto first_set_alt_155; + case 628: + goto first_set_alt_156; + default: + goto first_set_done_157; + } + } + first_set_alt_154: { // 'True' if (p->error_indicator) { p->level--; @@ -34127,6 +39573,10 @@ _tmp_112_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } + if (!p->call_invalid_rules) { + goto first_set_done_157; + } + first_set_alt_155: { // 'False' if (p->error_indicator) { p->level--; @@ -34146,6 +39596,10 @@ _tmp_112_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } + if (!p->call_invalid_rules) { + goto first_set_done_157; + } + first_set_alt_156: { // 'None' if (p->error_indicator) { p->level--; @@ -34165,6 +39619,11 @@ _tmp_112_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_112[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } + if (!p->call_invalid_rules) { + goto first_set_done_157; + } + first_set_done_157: + ; _res = NULL; done: p->level--; @@ -34297,6 +39756,23 @@ _tmp_115_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 1: + goto first_set_alt_158; + case 58: + goto first_set_alt_159; + default: + goto first_set_done_160; + } + } + first_set_alt_158: { // NAME STRING if (p->error_indicator) { p->level--; @@ -34319,6 +39795,10 @@ _tmp_115_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING")); } + if (!p->call_invalid_rules) { + goto first_set_done_160; + } + first_set_alt_159: { // SOFT_KEYWORD if (p->error_indicator) { p->level--; @@ -34338,6 +39818,11 @@ _tmp_115_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD")); } + if (!p->call_invalid_rules) { + goto first_set_done_160; + } + first_set_done_160: + ; _res = NULL; done: p->level--; @@ -34357,6 +39842,23 @@ _tmp_116_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 704: + goto first_set_alt_161; + case 11: + goto first_set_alt_162; + default: + goto first_set_done_163; + } + } + first_set_alt_161: { // 'else' if (p->error_indicator) { p->level--; @@ -34376,6 +39878,10 @@ _tmp_116_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'")); } + if (!p->call_invalid_rules) { + goto first_set_done_163; + } + first_set_alt_162: { // ':' if (p->error_indicator) { p->level--; @@ -34395,6 +39901,11 @@ _tmp_116_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } + if (!p->call_invalid_rules) { + goto first_set_done_163; + } + first_set_done_163: + ; _res = NULL; done: p->level--; @@ -34414,6 +39925,25 @@ _tmp_117_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 527: + goto first_set_alt_164; + case 528: + goto first_set_alt_165; + case 529: + goto first_set_alt_166; + default: + goto first_set_done_167; + } + } + first_set_alt_164: { // pass_stmt if (p->error_indicator) { p->level--; @@ -34433,6 +39963,10 @@ _tmp_117_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); } + if (!p->call_invalid_rules) { + goto first_set_done_167; + } + first_set_alt_165: { // break_stmt if (p->error_indicator) { p->level--; @@ -34452,6 +39986,10 @@ _tmp_117_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); } + if (!p->call_invalid_rules) { + goto first_set_done_167; + } + first_set_alt_166: { // continue_stmt if (p->error_indicator) { p->level--; @@ -34471,6 +40009,11 @@ _tmp_117_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); } + if (!p->call_invalid_rules) { + goto first_set_done_167; + } + first_set_done_167: + ; _res = NULL; done: p->level--; @@ -34490,6 +40033,23 @@ _tmp_118_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 22: + goto first_set_alt_168; + case 53: + goto first_set_alt_169; + default: + goto first_set_done_170; + } + } + first_set_alt_168: { // '=' if (p->error_indicator) { p->level--; @@ -34509,6 +40069,10 @@ _tmp_118_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } + if (!p->call_invalid_rules) { + goto first_set_done_170; + } + first_set_alt_169: { // ':=' if (p->error_indicator) { p->level--; @@ -34528,6 +40092,11 @@ _tmp_118_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } + if (!p->call_invalid_rules) { + goto first_set_done_170; + } + first_set_done_170: + ; _res = NULL; done: p->level--; @@ -34547,6 +40116,39 @@ _tmp_119_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 25: + _first_set_mask = 0x4ULL; + break; + case 9: + _first_set_mask = 0x5ULL; + break; + case 7: + _first_set_mask = 0x6ULL; + break; + case 627: + _first_set_mask = 0x8ULL; + break; + case 628: + _first_set_mask = 0x10ULL; + break; + case 629: + _first_set_mask = 0x20ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // list if (p->error_indicator) { p->level--; @@ -34566,6 +40168,7 @@ _tmp_119_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } + if (_first_set_mask & 0x2ULL) { // tuple if (p->error_indicator) { p->level--; @@ -34585,6 +40188,7 @@ _tmp_119_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } + if (_first_set_mask & 0x4ULL) { // genexp if (p->error_indicator) { p->level--; @@ -34604,6 +40208,7 @@ _tmp_119_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } + if (_first_set_mask & 0x8ULL) { // 'True' if (p->error_indicator) { p->level--; @@ -34623,6 +40228,7 @@ _tmp_119_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } + if (_first_set_mask & 0x10ULL) { // 'None' if (p->error_indicator) { p->level--; @@ -34642,6 +40248,7 @@ _tmp_119_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } + if (_first_set_mask & 0x20ULL) { // 'False' if (p->error_indicator) { p->level--; @@ -34814,6 +40421,23 @@ _tmp_122_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 9: + goto first_set_alt_171; + case 25: + goto first_set_alt_172; + default: + goto first_set_done_173; + } + } + first_set_alt_171: { // '[' if (p->error_indicator) { p->level--; @@ -34833,6 +40457,10 @@ _tmp_122_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } + if (!p->call_invalid_rules) { + goto first_set_done_173; + } + first_set_alt_172: { // '{' if (p->error_indicator) { p->level--; @@ -34852,6 +40480,11 @@ _tmp_122_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } + if (!p->call_invalid_rules) { + goto first_set_done_173; + } + first_set_done_173: + ; _res = NULL; done: p->level--; @@ -34871,6 +40504,24 @@ _tmp_123_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // slash_no_default if (p->error_indicator) { p->level--; @@ -34890,6 +40541,7 @@ _tmp_123_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default")); } + if (_first_set_mask & 0x2ULL) { // slash_with_default if (p->error_indicator) { p->level--; @@ -34928,6 +40580,23 @@ _tmp_124_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 12: + goto first_set_alt_174; + case 1: + goto first_set_alt_175; + default: + goto first_set_done_176; + } + } + first_set_alt_174: { // ',' if (p->error_indicator) { p->level--; @@ -34947,6 +40616,10 @@ _tmp_124_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_176; + } + first_set_alt_175: { // param_no_default if (p->error_indicator) { p->level--; @@ -34966,6 +40639,11 @@ _tmp_124_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } + if (!p->call_invalid_rules) { + goto first_set_done_176; + } + first_set_done_176: + ; _res = NULL; done: p->level--; @@ -34985,6 +40663,23 @@ _tmp_125_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 8: + goto first_set_alt_177; + case 12: + goto first_set_alt_178; + default: + goto first_set_done_179; + } + } + first_set_alt_177: { // ')' if (p->error_indicator) { p->level--; @@ -35004,6 +40699,10 @@ _tmp_125_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } + if (!p->call_invalid_rules) { + goto first_set_done_179; + } + first_set_alt_178: { // ',' if (p->error_indicator) { p->level--; @@ -35023,6 +40722,11 @@ _tmp_125_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_179; + } + first_set_done_179: + ; _res = NULL; done: p->level--; @@ -35042,6 +40746,23 @@ _tmp_126_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 8: + goto first_set_alt_180; + case 12: + goto first_set_alt_181; + default: + goto first_set_done_182; + } + } + first_set_alt_180: { // ')' if (p->error_indicator) { p->level--; @@ -35061,6 +40782,10 @@ _tmp_126_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } + if (!p->call_invalid_rules) { + goto first_set_done_182; + } + first_set_alt_181: { // ',' (')' | '**') if (p->error_indicator) { p->level--; @@ -35083,6 +40808,11 @@ _tmp_126_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')")); } + if (!p->call_invalid_rules) { + goto first_set_done_182; + } + first_set_done_182: + ; _res = NULL; done: p->level--; @@ -35102,6 +40832,23 @@ _tmp_127_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 1: + goto first_set_alt_183; + case 12: + goto first_set_alt_184; + default: + goto first_set_done_185; + } + } + first_set_alt_183: { // param_no_default if (p->error_indicator) { p->level--; @@ -35121,6 +40868,10 @@ _tmp_127_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } + if (!p->call_invalid_rules) { + goto first_set_done_185; + } + first_set_alt_184: { // ',' if (p->error_indicator) { p->level--; @@ -35140,6 +40891,11 @@ _tmp_127_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_185; + } + first_set_done_185: + ; _res = NULL; done: p->level--; @@ -35159,6 +40915,25 @@ _tmp_128_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 16: + goto first_set_alt_186; + case 35: + goto first_set_alt_187; + case 17: + goto first_set_alt_188; + default: + goto first_set_done_189; + } + } + first_set_alt_186: { // '*' if (p->error_indicator) { p->level--; @@ -35178,6 +40953,10 @@ _tmp_128_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } + if (!p->call_invalid_rules) { + goto first_set_done_189; + } + first_set_alt_187: { // '**' if (p->error_indicator) { p->level--; @@ -35197,6 +40976,10 @@ _tmp_128_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } + if (!p->call_invalid_rules) { + goto first_set_done_189; + } + first_set_alt_188: { // '/' if (p->error_indicator) { p->level--; @@ -35216,6 +40999,11 @@ _tmp_128_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } + if (!p->call_invalid_rules) { + goto first_set_done_189; + } + first_set_done_189: + ; _res = NULL; done: p->level--; @@ -35235,6 +41023,24 @@ _tmp_129_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // lambda_slash_no_default if (p->error_indicator) { p->level--; @@ -35254,6 +41060,7 @@ _tmp_129_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default")); } + if (_first_set_mask & 0x2ULL) { // lambda_slash_with_default if (p->error_indicator) { p->level--; @@ -35409,6 +41216,23 @@ _tmp_132_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 12: + goto first_set_alt_190; + case 1: + goto first_set_alt_191; + default: + goto first_set_done_192; + } + } + first_set_alt_190: { // ',' if (p->error_indicator) { p->level--; @@ -35428,6 +41252,10 @@ _tmp_132_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_192; + } + first_set_alt_191: { // lambda_param_no_default if (p->error_indicator) { p->level--; @@ -35447,6 +41275,11 @@ _tmp_132_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } + if (!p->call_invalid_rules) { + goto first_set_done_192; + } + first_set_done_192: + ; _res = NULL; done: p->level--; @@ -35466,6 +41299,23 @@ _tmp_133_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 11: + goto first_set_alt_193; + case 12: + goto first_set_alt_194; + default: + goto first_set_done_195; + } + } + first_set_alt_193: { // ':' if (p->error_indicator) { p->level--; @@ -35485,6 +41335,10 @@ _tmp_133_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } + if (!p->call_invalid_rules) { + goto first_set_done_195; + } + first_set_alt_194: { // ',' (':' | '**') if (p->error_indicator) { p->level--; @@ -35507,6 +41361,11 @@ _tmp_133_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')")); } + if (!p->call_invalid_rules) { + goto first_set_done_195; + } + first_set_done_195: + ; _res = NULL; done: p->level--; @@ -35526,6 +41385,23 @@ _tmp_134_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 1: + goto first_set_alt_196; + case 12: + goto first_set_alt_197; + default: + goto first_set_done_198; + } + } + first_set_alt_196: { // lambda_param_no_default if (p->error_indicator) { p->level--; @@ -35545,6 +41421,10 @@ _tmp_134_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } + if (!p->call_invalid_rules) { + goto first_set_done_198; + } + first_set_alt_197: { // ',' if (p->error_indicator) { p->level--; @@ -35564,6 +41444,11 @@ _tmp_134_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_198; + } + first_set_done_198: + ; _res = NULL; done: p->level--; @@ -36020,6 +41905,23 @@ _tmp_143_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 695: + goto first_set_alt_199; + case 691: + goto first_set_alt_200; + default: + goto first_set_done_201; + } + } + first_set_alt_199: { // 'except' if (p->error_indicator) { p->level--; @@ -36039,6 +41941,10 @@ _tmp_143_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'")); } + if (!p->call_invalid_rules) { + goto first_set_done_201; + } + first_set_alt_200: { // 'finally' if (p->error_indicator) { p->level--; @@ -36058,6 +41964,11 @@ _tmp_143_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'")); } + if (!p->call_invalid_rules) { + goto first_set_done_201; + } + first_set_done_201: + ; _res = NULL; done: p->level--; @@ -36186,6 +42097,23 @@ _tmp_146_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 4: + goto first_set_alt_202; + case 11: + goto first_set_alt_203; + default: + goto first_set_done_204; + } + } + first_set_alt_202: { // NEWLINE if (p->error_indicator) { p->level--; @@ -36205,6 +42133,10 @@ _tmp_146_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } + if (!p->call_invalid_rules) { + goto first_set_done_204; + } + first_set_alt_203: { // ':' if (p->error_indicator) { p->level--; @@ -36224,6 +42156,11 @@ _tmp_146_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } + if (!p->call_invalid_rules) { + goto first_set_done_204; + } + first_set_done_204: + ; _res = NULL; done: p->level--; @@ -36325,6 +42262,48 @@ _tmp_149_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 16: + case 35: + _first_set_mask = 0x2ULL; + break; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_kvpair if (p->error_indicator) { p->level--; @@ -36344,6 +42323,7 @@ _tmp_149_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kvpair")); } + if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_kvpair_unpacking if (p->error_indicator) { p->level--; @@ -36382,6 +42362,23 @@ _tmp_150_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 26: + goto first_set_alt_205; + case 12: + goto first_set_alt_206; + default: + goto first_set_done_207; + } + } + first_set_alt_205: { // '}' if (p->error_indicator) { p->level--; @@ -36401,6 +42398,10 @@ _tmp_150_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } + if (!p->call_invalid_rules) { + goto first_set_done_207; + } + first_set_alt_206: { // ',' if (p->error_indicator) { p->level--; @@ -36420,6 +42421,11 @@ _tmp_150_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_207; + } + first_set_done_207: + ; _res = NULL; done: p->level--; @@ -36439,6 +42445,27 @@ _tmp_151_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 22: + goto first_set_alt_208; + case 54: + goto first_set_alt_209; + case 11: + goto first_set_alt_210; + case 26: + goto first_set_alt_211; + default: + goto first_set_done_212; + } + } + first_set_alt_208: { // '=' if (p->error_indicator) { p->level--; @@ -36458,6 +42485,10 @@ _tmp_151_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } + if (!p->call_invalid_rules) { + goto first_set_done_212; + } + first_set_alt_209: { // '!' if (p->error_indicator) { p->level--; @@ -36477,6 +42508,10 @@ _tmp_151_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } + if (!p->call_invalid_rules) { + goto first_set_done_212; + } + first_set_alt_210: { // ':' if (p->error_indicator) { p->level--; @@ -36496,6 +42531,10 @@ _tmp_151_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } + if (!p->call_invalid_rules) { + goto first_set_done_212; + } + first_set_alt_211: { // '}' if (p->error_indicator) { p->level--; @@ -36515,6 +42554,11 @@ _tmp_151_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } + if (!p->call_invalid_rules) { + goto first_set_done_212; + } + first_set_done_212: + ; _res = NULL; done: p->level--; @@ -36534,6 +42578,25 @@ _tmp_152_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 54: + goto first_set_alt_213; + case 11: + goto first_set_alt_214; + case 26: + goto first_set_alt_215; + default: + goto first_set_done_216; + } + } + first_set_alt_213: { // '!' if (p->error_indicator) { p->level--; @@ -36553,6 +42616,10 @@ _tmp_152_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } + if (!p->call_invalid_rules) { + goto first_set_done_216; + } + first_set_alt_214: { // ':' if (p->error_indicator) { p->level--; @@ -36572,6 +42639,10 @@ _tmp_152_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } + if (!p->call_invalid_rules) { + goto first_set_done_216; + } + first_set_alt_215: { // '}' if (p->error_indicator) { p->level--; @@ -36591,6 +42662,11 @@ _tmp_152_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } + if (!p->call_invalid_rules) { + goto first_set_done_216; + } + first_set_done_216: + ; _res = NULL; done: p->level--; @@ -36651,6 +42727,23 @@ _tmp_154_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 11: + goto first_set_alt_217; + case 26: + goto first_set_alt_218; + default: + goto first_set_done_219; + } + } + first_set_alt_217: { // ':' if (p->error_indicator) { p->level--; @@ -36670,6 +42763,10 @@ _tmp_154_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } + if (!p->call_invalid_rules) { + goto first_set_done_219; + } + first_set_alt_218: { // '}' if (p->error_indicator) { p->level--; @@ -36689,6 +42786,11 @@ _tmp_154_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } + if (!p->call_invalid_rules) { + goto first_set_done_219; + } + first_set_done_219: + ; _res = NULL; done: p->level--; @@ -36708,6 +42810,23 @@ _tmp_155_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 59: + goto first_set_alt_220; + case 3: + goto first_set_alt_221; + default: + goto first_set_done_222; + } + } + first_set_alt_220: { // fstring if (p->error_indicator) { p->level--; @@ -36727,6 +42846,10 @@ _tmp_155_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring")); } + if (!p->call_invalid_rules) { + goto first_set_done_222; + } + first_set_alt_221: { // string if (p->error_indicator) { p->level--; @@ -36746,6 +42869,11 @@ _tmp_155_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "string")); } + if (!p->call_invalid_rules) { + goto first_set_done_222; + } + first_set_done_222: + ; _res = NULL; done: p->level--; @@ -36765,6 +42893,33 @@ _tmp_156_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 14: + goto first_set_alt_223; + case 15: + goto first_set_alt_224; + case 16: + goto first_set_alt_225; + case 17: + goto first_set_alt_226; + case 24: + goto first_set_alt_227; + case 47: + goto first_set_alt_228; + case 49: + goto first_set_alt_229; + default: + goto first_set_done_230; + } + } + first_set_alt_223: { // '+' if (p->error_indicator) { p->level--; @@ -36784,6 +42939,10 @@ _tmp_156_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } + if (!p->call_invalid_rules) { + goto first_set_done_230; + } + first_set_alt_224: { // '-' if (p->error_indicator) { p->level--; @@ -36803,6 +42962,10 @@ _tmp_156_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } + if (!p->call_invalid_rules) { + goto first_set_done_230; + } + first_set_alt_225: { // '*' if (p->error_indicator) { p->level--; @@ -36822,6 +42985,10 @@ _tmp_156_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } + if (!p->call_invalid_rules) { + goto first_set_done_230; + } + first_set_alt_226: { // '/' if (p->error_indicator) { p->level--; @@ -36841,6 +43008,10 @@ _tmp_156_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } + if (!p->call_invalid_rules) { + goto first_set_done_230; + } + first_set_alt_227: { // '%' if (p->error_indicator) { p->level--; @@ -36860,6 +43031,10 @@ _tmp_156_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%'")); } + if (!p->call_invalid_rules) { + goto first_set_done_230; + } + first_set_alt_228: { // '//' if (p->error_indicator) { p->level--; @@ -36879,6 +43054,10 @@ _tmp_156_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//'")); } + if (!p->call_invalid_rules) { + goto first_set_done_230; + } + first_set_alt_229: { // '@' if (p->error_indicator) { p->level--; @@ -36898,6 +43077,11 @@ _tmp_156_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } + if (!p->call_invalid_rules) { + goto first_set_done_230; + } + first_set_done_230: + ; _res = NULL; done: p->level--; @@ -36917,6 +43101,25 @@ _tmp_157_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 14: + goto first_set_alt_231; + case 15: + goto first_set_alt_232; + case 31: + goto first_set_alt_233; + default: + goto first_set_done_234; + } + } + first_set_alt_231: { // '+' if (p->error_indicator) { p->level--; @@ -36936,6 +43139,10 @@ _tmp_157_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } + if (!p->call_invalid_rules) { + goto first_set_done_234; + } + first_set_alt_232: { // '-' if (p->error_indicator) { p->level--; @@ -36955,6 +43162,10 @@ _tmp_157_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } + if (!p->call_invalid_rules) { + goto first_set_done_234; + } + first_set_alt_233: { // '~' if (p->error_indicator) { p->level--; @@ -36974,6 +43185,11 @@ _tmp_157_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~'")); } + if (!p->call_invalid_rules) { + goto first_set_done_234; + } + first_set_done_234: + ; _res = NULL; done: p->level--; @@ -37039,6 +43255,23 @@ _tmp_159_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 23: + goto first_set_alt_235; + case 52: + goto first_set_alt_236; + default: + goto first_set_done_237; + } + } + first_set_alt_235: { // '.' if (p->error_indicator) { p->level--; @@ -37058,6 +43291,10 @@ _tmp_159_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } + if (!p->call_invalid_rules) { + goto first_set_done_237; + } + first_set_alt_236: { // '...' if (p->error_indicator) { p->level--; @@ -37077,6 +43314,11 @@ _tmp_159_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } + if (!p->call_invalid_rules) { + goto first_set_done_237; + } + first_set_done_237: + ; _res = NULL; done: p->level--; @@ -37283,6 +43525,44 @@ _tmp_164_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 1: + case 2: + case 3: + case 7: + case 9: + case 11: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + goto first_set_alt_238; + case 16: + goto first_set_alt_239; + default: + goto first_set_done_240; + } + } + first_set_alt_238: { // slice if (p->error_indicator) { p->level--; @@ -37302,6 +43582,10 @@ _tmp_164_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); } + if (!p->call_invalid_rules) { + goto first_set_done_240; + } + first_set_alt_239: { // starred_expression if (p->error_indicator) { p->level--; @@ -37321,6 +43605,11 @@ _tmp_164_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } + if (!p->call_invalid_rules) { + goto first_set_done_240; + } + first_set_done_240: + ; _res = NULL; done: p->level--; @@ -37386,6 +43675,43 @@ _tmp_166_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 16: + goto first_set_alt_241; + case 1: + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + goto first_set_alt_242; + default: + goto first_set_done_243; + } + } + first_set_alt_241: { // starred_expression if (p->error_indicator) { p->level--; @@ -37405,6 +43731,10 @@ _tmp_166_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } + if (!p->call_invalid_rules) { + goto first_set_done_243; + } + first_set_alt_242: { // (assignment_expression | expression !':=') !'=' if (p->error_indicator) { p->level--; @@ -37426,6 +43756,11 @@ _tmp_166_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } + if (!p->call_invalid_rules) { + goto first_set_done_243; + } + first_set_done_243: + ; _res = NULL; done: p->level--; @@ -37616,6 +43951,23 @@ _tmp_171_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 8: + goto first_set_alt_244; + case 35: + goto first_set_alt_245; + default: + goto first_set_done_246; + } + } + first_set_alt_244: { // ')' if (p->error_indicator) { p->level--; @@ -37635,6 +43987,10 @@ _tmp_171_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } + if (!p->call_invalid_rules) { + goto first_set_done_246; + } + first_set_alt_245: { // '**' if (p->error_indicator) { p->level--; @@ -37654,6 +44010,11 @@ _tmp_171_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } + if (!p->call_invalid_rules) { + goto first_set_done_246; + } + first_set_done_246: + ; _res = NULL; done: p->level--; @@ -37673,6 +44034,23 @@ _tmp_172_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 11: + goto first_set_alt_247; + case 35: + goto first_set_alt_248; + default: + goto first_set_done_249; + } + } + first_set_alt_247: { // ':' if (p->error_indicator) { p->level--; @@ -37692,6 +44070,10 @@ _tmp_172_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } + if (!p->call_invalid_rules) { + goto first_set_done_249; + } + first_set_alt_248: { // '**' if (p->error_indicator) { p->level--; @@ -37711,6 +44093,11 @@ _tmp_172_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } + if (!p->call_invalid_rules) { + goto first_set_done_249; + } + first_set_done_249: + ; _res = NULL; done: p->level--; @@ -37797,6 +44184,27 @@ _tmp_174_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + if (!p->call_invalid_rules) { + switch (_current_token_type) { + case 12: + goto first_set_alt_250; + case 8: + goto first_set_alt_251; + case 13: + goto first_set_alt_252; + case 4: + goto first_set_alt_253; + default: + goto first_set_done_254; + } + } + first_set_alt_250: { // ',' if (p->error_indicator) { p->level--; @@ -37816,6 +44224,10 @@ _tmp_174_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } + if (!p->call_invalid_rules) { + goto first_set_done_254; + } + first_set_alt_251: { // ')' if (p->error_indicator) { p->level--; @@ -37835,6 +44247,10 @@ _tmp_174_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } + if (!p->call_invalid_rules) { + goto first_set_done_254; + } + first_set_alt_252: { // ';' if (p->error_indicator) { p->level--; @@ -37854,6 +44270,10 @@ _tmp_174_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'")); } + if (!p->call_invalid_rules) { + goto first_set_done_254; + } + first_set_alt_253: { // NEWLINE if (p->error_indicator) { p->level--; @@ -37873,6 +44293,11 @@ _tmp_174_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } + if (!p->call_invalid_rules) { + goto first_set_done_254; + } + first_set_done_254: + ; _res = NULL; done: p->level--; @@ -37976,6 +44401,46 @@ _tmp_177_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; + if (!p->call_invalid_rules) { + _first_set_mask = 0; + switch (_current_token_type) { + case 2: + case 3: + case 7: + case 9: + case 14: + case 15: + case 25: + case 31: + case 52: + case 59: + case 62: + case 527: + case 528: + case 529: + case 598: + case 622: + case 627: + case 628: + case 629: + case 721: + _first_set_mask = 0x2ULL; + break; + case 1: + _first_set_mask = 0x3ULL; + break; + default: + break; + } + } + if (_first_set_mask & 0x1ULL) { // assignment_expression if (p->error_indicator) { p->level--; @@ -37995,6 +44460,7 @@ _tmp_177_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } + if (_first_set_mask & 0x2ULL) { // expression !':=' if (p->error_indicator) { p->level--; diff --git a/Tools/peg_generator/pegen/c_generator.py b/Tools/peg_generator/pegen/c_generator.py index 044366c3aac1405..ffa548f41ed3664 100644 --- a/Tools/peg_generator/pegen/c_generator.py +++ b/Tools/peg_generator/pegen/c_generator.py @@ -7,6 +7,7 @@ from typing import IO, Any from pegen import grammar +from pegen.first_sets import FirstSetCalculator from pegen.grammar import ( Alt, Cut, @@ -27,7 +28,7 @@ Rule, StringLeaf, ) -from pegen.parser_generator import ParserGenerator +from pegen.parser_generator import NullableVisitor, ParserGenerator EXTENSION_PREFIX = """\ #include "pegen.h" @@ -419,12 +420,16 @@ def __init__( self.callmakervisitor: CCallMakerVisitor = CCallMakerVisitor( self, exact_tokens, non_exact_tokens ) + self.token_types = {name: type_ for type_, name in tokens.items()} + self.exact_tokens = exact_tokens self._varname_counter = 0 self.debug = debug self.skip_actions = skip_actions self.cleanup_statements: list[str] = [] self.consuming = consuming_rules(self.rules) self.prefix_calls: dict[int, tuple[str, str, str]] = {} + self.first_set_calculator: FirstSetCalculator | None = None + self.nullable_visitor: NullableVisitor | None = None def add_level(self) -> None: self.print("if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {") @@ -485,6 +490,11 @@ def out_of_memory_goto(self, expr: str, goto_target: str) -> None: def generate(self, filename: str) -> None: self.collect_rules() + self.first_set_calculator = FirstSetCalculator(self.all_rules) + self.first_set_calculator.calculate() + self.nullable_visitor = NullableVisitor(self.all_rules) + for rule in self.all_rules.values(): + self.nullable_visitor.visit(rule) basename = os.path.basename(filename) self.print(f"// @generated by pegen from {basename}") header = self.grammar.metas.get("header", EXTENSION_PREFIX) @@ -635,6 +645,7 @@ def _should_memoize(self, node: Rule) -> bool: def _handle_default_rule_body(self, node: Rule, rhs: Rhs, result_type: str) -> None: memoize = self._should_memoize(node) + dispatch = self._first_set_dispatch(rhs) with self.indent(): self.add_level() @@ -647,8 +658,21 @@ def _handle_default_rule_body(self, node: Rule, rhs: Rhs, result_type: str) -> N self.print("}") self.print("int _mark = p->mark;") self.prepare_prefix_calls(rhs) - if any(alt.action and "EXTRA" in alt.action for alt in rhs.alts): + uses_locations = any( + alt.action and "EXTRA" in alt.action for alt in rhs.alts + ) + if uses_locations: self._set_up_token_start_metadata_extraction() + if dispatch is not None: + if not uses_locations: + self.print( + "if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {" + ) + with self.indent(): + self.print("p->error_indicator = 1;") + self.add_return("NULL") + self.print("}") + self.print("int _current_token_type = p->tokens[_mark]->type;") self.visit( rhs, is_loop=False, @@ -796,8 +820,127 @@ def visit_Rhs( ) -> None: if is_loop: assert len(node.alts) == 1 + dispatch = None if is_loop else self._first_set_dispatch(node) + if dispatch is None: + for alt in node.alts: + self.visit(alt, is_loop=is_loop, is_gather=is_gather, rulename=rulename) + return + + all_token_types = set().union(*dispatch) + has_overlaps = sum(len(token_types) for token_types in dispatch) != len( + all_token_types + ) + if has_overlaps: + self._visit_rhs_with_first_set_mask(node, dispatch, is_gather, rulename) + return + + labels = [self.unique_varname("first_set_alt") for _ in node.alts] + end_label = self.unique_varname("first_set_done") + # The second pass must try invalid rules in grammar order so that it + # reports the same error as an unoptimized parser. + self.print("if (!p->call_invalid_rules) {") + with self.indent(): + self.print("switch (_current_token_type) {") + with self.indent(): + for label, token_types in zip(labels, dispatch, strict=True): + for token_type in sorted(token_types): + self.print(f"case {token_type}:") + with self.indent(): + self.print(f"goto {label};") + self.print("default:") + with self.indent(): + self.print(f"goto {end_label};") + self.print("}") + self.print("}") + + for label, alt in zip(labels, node.alts, strict=True): + self.print(f"{label}:") + self.visit(alt, is_loop=False, is_gather=is_gather, rulename=rulename) + self.print("if (!p->call_invalid_rules) {") + with self.indent(): + self.print(f"goto {end_label};") + self.print("}") + self.print(f"{end_label}:") + self.print(";") + + def _visit_rhs_with_first_set_mask( + self, + node: Rhs, + dispatch: list[set[int]], + is_gather: bool, + rulename: str | None, + ) -> None: + token_masks: dict[int, int] = {} + for alt_index, token_types in enumerate(dispatch): + for token_type in token_types: + token_masks[token_type] = token_masks.get(token_type, 0) | (1 << alt_index) + + masks: dict[int, list[int]] = {} + for token_type, mask in token_masks.items(): + masks.setdefault(mask, []).append(token_type) + + self.print("unsigned long long _first_set_mask = ~0ULL;") + self.print("if (!p->call_invalid_rules) {") + with self.indent(): + self.print("_first_set_mask = 0;") + self.print("switch (_current_token_type) {") + with self.indent(): + for mask, token_types in sorted(masks.items()): + for token_type in sorted(token_types): + self.print(f"case {token_type}:") + with self.indent(): + self.print(f"_first_set_mask = 0x{mask:x}ULL;") + self.print("break;") + self.print("default:") + with self.indent(): + self.print("break;") + self.print("}") + self.print("}") + + for alt_index, alt in enumerate(node.alts): + self.print(f"if (_first_set_mask & 0x{1 << alt_index:x}ULL)") + self.visit(alt, is_loop=False, is_gather=is_gather, rulename=rulename) + + def _first_set_token_type(self, terminal: str) -> int | None: + if terminal in self.token_types: + return self.token_types[terminal] + + try: + value = ast.literal_eval(terminal) + except (SyntaxError, ValueError): + return None + + if not isinstance(value, str) or not value: + return None + if re.match(r"[a-zA-Z_]\w*\Z", value): + # Soft keyword spelling is checked by the parser; the lexer emits + # NAME for all of them. + if terminal.startswith('"') and terminal.endswith('"'): + return self.token_types.get("NAME") + return self.keywords.get(value) + return self.exact_tokens.get(value) + + def _first_set_dispatch(self, node: Rhs) -> list[set[int]] | None: + # Overlapping choices use one bit per alternative. + if len(node.alts) < 2 or len(node.alts) > 64: + return None + assert self.first_set_calculator is not None + assert self.nullable_visitor is not None + + dispatch: list[set[int]] = [] for alt in node.alts: - self.visit(alt, is_loop=is_loop, is_gather=is_gather, rulename=rulename) + if self.nullable_visitor.visit(alt): + return None + token_types: set[int] = set() + for terminal in self.first_set_calculator.visit(alt): + token_type = self._first_set_token_type(terminal) + if token_type is None: + return None + token_types.add(token_type) + if not token_types: + return None + dispatch.append(token_types) + return dispatch def join_conditions(self, keyword: str, node: Any) -> None: self.print(f"{keyword} (") diff --git a/Tools/peg_generator/pegen/first_sets.py b/Tools/peg_generator/pegen/first_sets.py index f6b83c0ca31e3f4..4b56c03beee0cdc 100755 --- a/Tools/peg_generator/pegen/first_sets.py +++ b/Tools/peg_generator/pegen/first_sets.py @@ -4,7 +4,6 @@ import pprint import sys -from pegen.build import build_parser from pegen.grammar import ( Alt, Cut, @@ -132,6 +131,8 @@ def visit_Rule(self, item: Rule) -> set[str]: def main() -> None: + from pegen.build import build_parser + args = argparser.parse_args() try: From 6409262a0c01f27476c8508db1e4d786b8d2e72c Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Wed, 26 Aug 2026 01:01:09 +0100 Subject: [PATCH 2/2] gh-153568: Make FIRST-set dispatch conservative --- Lib/test/test_peg_generator/test_c_parser.py | 94 + .../test_peg_generator/test_first_sets.py | 56 +- Parser/parser.c | 3965 +++-------------- Tools/peg_generator/pegen/c_generator.py | 17 +- Tools/peg_generator/pegen/first_sets.py | 172 +- 5 files changed, 815 insertions(+), 3489 deletions(-) diff --git a/Lib/test/test_peg_generator/test_c_parser.py b/Lib/test/test_peg_generator/test_c_parser.py index 329e4454b29c19a..85c9d4ddaff5770 100644 --- a/Lib/test/test_peg_generator/test_c_parser.py +++ b/Lib/test/test_peg_generator/test_c_parser.py @@ -174,6 +174,100 @@ def test_prefix_respects_cut(self) -> None: ) """) + def test_first_set_compound_negative_lookahead(self) -> None: + self.run_test(""" + start: choice NEWLINE ENDMARKER + choice: !('a' 'b') ('a' | 'c') | 'd' + """, """ + self.check_input_strings_for_grammar( + valid_cases=['a', 'c', 'd'], invalid_cases=['a b'], + ) + """) + + def test_first_set_mutual_recursion(self) -> None: + self.run_test(""" + start: a NEWLINE ENDMARKER + a: b 'x' | 'a' + b: a 'y' | 'b' + """, """ + self.check_input_strings_for_grammar( + valid_cases=['a', 'b x', 'a y x', 'b x y x'], + invalid_cases=['a y', 'b'], + ) + """) + + def test_first_set_preserves_leading_cut(self) -> None: + self.run_test(""" + start: choice NEWLINE ENDMARKER + choice: ~ NAME | NUMBER + """, """ + self.check_input_strings_for_grammar( + valid_cases=['name'], invalid_cases=['42'], + ) + """) + + def test_first_set_preserves_forced_parse(self) -> None: + self.run_test(""" + start: choice NEWLINE ENDMARKER + choice: &&'+' | NUMBER + """, """ + self.check_input_strings_for_grammar( + valid_cases=['+'], invalid_cases=['42'], + ) + """) + + def test_first_set_nullable_prefix_action(self) -> None: + self.run_test(""" + start: choice NEWLINE ENDMARKER + choice: guard NAME | NUMBER + guard: &NUMBER { RAISE_SYNTAX_ERROR("guard reached") } + """, """ + with self.assertRaisesRegex(SyntaxError, 'guard reached'): + parse.parse_string('42', mode=0) + """) + + def check_first_set_lookahead_forced_parse(self, predicate: str) -> None: + self.run_test(f""" + start: choice NEWLINE ENDMARKER + choice: {predicate}(NAME &&'+') STRING | NAME + """, """ + with self.assertRaises(SyntaxError): + parse.parse_string('name', mode=0) + """) + + def test_first_set_positive_lookahead_forced_parse(self) -> None: + self.check_first_set_lookahead_forced_parse('&') + + def test_first_set_negative_lookahead_forced_parse(self) -> None: + self.check_first_set_lookahead_forced_parse('!') + + def check_first_set_lookahead_action(self, predicate: str) -> None: + self.run_test(f""" + start: choice NEWLINE ENDMARKER + choice: {predicate}guard NAME | NUMBER + guard: NUMBER {{ RAISE_SYNTAX_ERROR("guard reached") }} + """, """ + with self.assertRaisesRegex(SyntaxError, 'guard reached'): + parse.parse_string('42', mode=0) + """) + + def test_first_set_positive_lookahead_action(self) -> None: + self.check_first_set_lookahead_action('&') + + def test_first_set_negative_lookahead_action(self) -> None: + self.check_first_set_lookahead_action('!') + + def test_first_set_named_soft_keyword(self) -> None: + self.run_test(''' + start: choice NEWLINE ENDMARKER + choice: SOFT_KEYWORD ':' | NUMBER + spelling: "soft" + ''', """ + self.check_input_strings_for_grammar( + valid_cases=['soft :', '42'], invalid_cases=['other :'], + ) + """) + def test_c_parser(self) -> None: grammar_source = """ start[mod_ty]: a[asdl_stmt_seq*]=stmt* $ { _PyAST_Module(a, NULL, p->arena) } diff --git a/Lib/test/test_peg_generator/test_first_sets.py b/Lib/test/test_peg_generator/test_first_sets.py index d6f8322f034f748..76a6a24e9afaf8c 100644 --- a/Lib/test/test_peg_generator/test_first_sets.py +++ b/Lib/test/test_peg_generator/test_first_sets.py @@ -1,7 +1,6 @@ import unittest from test import test_tools -from typing import Dict, Set test_tools.skip_if_missing("peg_generator") with test_tools.imports_under_tool("peg_generator"): @@ -12,7 +11,7 @@ class TestFirstSets(unittest.TestCase): - def calculate_first_sets(self, grammar_source: str) -> Dict[str, Set[str]]: + def calculate_first_sets(self, grammar_source: str) -> dict[str, set[str | None]]: grammar: Grammar = parse_string(grammar_source, GrammarParser) return FirstSetCalculator(grammar.rules).calculate() @@ -164,8 +163,8 @@ def test_positive_lookahead(self) -> None: self.assertEqual( self.calculate_first_sets(grammar), { - "expr": {"'a'"}, - "start": {"'a'"}, + "expr": {None, "'a'", "'b'", "'c'"}, + "start": {None, "'a'", "'b'", "'c'"}, "opt": {"'b'", "'c'", "'a'"}, }, ) @@ -180,8 +179,8 @@ def test_negative_lookahead(self) -> None: self.calculate_first_sets(grammar), { "opt": {"'b'", "'a'", "'c'"}, - "expr": {"'b'", "'c'"}, - "start": {"'b'", "'c'"}, + "expr": {None, "'a'", "'b'", "'c'"}, + "start": {None, "'a'", "'b'", "'c'"}, }, ) @@ -226,13 +225,12 @@ def test_mutual_left_recursion(self) -> None: self.calculate_first_sets(grammar), { "foo": {"'D'", "'B'"}, - "bar": {"'D'"}, + "bar": {"'B'", "'D'"}, "start": {"'D'", "'B'"}, }, ) def test_nasty_left_recursion(self) -> None: - # TODO: Validate this grammar = """ start: target '=' target: maybe '+' | NAME @@ -240,7 +238,7 @@ def test_nasty_left_recursion(self) -> None: """ self.assertEqual( self.calculate_first_sets(grammar), - {"maybe": set(), "target": {"NAME"}, "start": {"NAME"}}, + {"maybe": {"NAME"}, "target": {"NAME"}, "start": {"NAME"}}, ) def test_nullable_rule(self) -> None: @@ -284,3 +282,43 @@ def test_multiple_nullable_rules(self) -> None: "another": {"'/'"}, }, ) + + def test_compound_negative_lookahead(self) -> None: + sets = self.calculate_first_sets(""" + start: choice NEWLINE ENDMARKER + choice: !('a' 'b') ('a' | 'c') | 'd' + """) + self.assertEqual(sets['choice'], {None, "'a'", "'c'", "'d'"}) + + def test_nullable_recursive_rules(self) -> None: + sets = self.calculate_first_sets(""" + start: a NUMBER ENDMARKER + a: b | NAME + b: a | ['+'] + """) + self.assertEqual(sets['a'], {'', 'NAME', "'+'"}) + self.assertEqual(sets['b'], {'', 'NAME', "'+'"}) + self.assertEqual(sets['start'], {'NUMBER', 'NAME', "'+'"}) + + def test_control_flow_before_first_token(self) -> None: + sets = self.calculate_first_sets(""" + start: NAME ENDMARKER + cut: ~ NAME + forced: &&'+' + guarded: &forced NUMBER + action: [NAME] { _PyPegen_dummy_name(p) } + """) + self.assertEqual(sets['cut'], {None, 'NAME'}) + self.assertEqual(sets['forced'], {None, "'+'"}) + self.assertEqual(sets['guarded'], {None, 'NUMBER'}) + self.assertEqual(sets['action'], {None, '', 'NAME'}) + + def test_nullable_repeat_and_gather(self) -> None: + sets = self.calculate_first_sets(""" + start: NAME ENDMARKER + optional: [NAME] + repeat: optional+ NUMBER + gather: ','.optional+ NUMBER + """) + self.assertEqual(sets['repeat'], {'NAME', 'NUMBER'}) + self.assertEqual(sets['gather'], {'NAME', "','", 'NUMBER'}) diff --git a/Parser/parser.c b/Parser/parser.c index 777184ebfb4e7f8..202520f7725b3a3 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -1230,67 +1230,6 @@ statement_rule(Parser *p) } asdl_stmt_seq* _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 49: - case 665: - case 674: - case 700: - case 707: - case 712: - case 716: - case 717: - case 719: - _first_set_mask = 0x1ULL; - break; - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 522: - case 527: - case 528: - case 529: - case 530: - case 531: - case 588: - case 598: - case 622: - case 627: - case 628: - case 629: - case 632: - case 634: - case 638: - case 650: - case 651: - case 721: - _first_set_mask = 0x2ULL; - break; - case 1: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // compound_stmt if (p->error_indicator) { p->level--; @@ -1315,7 +1254,6 @@ statement_rule(Parser *p) D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt")); } - if (_first_set_mask & 0x2ULL) { // simple_stmts if (p->error_indicator) { p->level--; @@ -1411,68 +1349,6 @@ statement_newline_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 49: - case 665: - case 674: - case 700: - case 707: - case 712: - case 716: - case 717: - case 719: - _first_set_mask = 0x1ULL; - break; - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 522: - case 527: - case 528: - case 529: - case 530: - case 531: - case 588: - case 598: - case 622: - case 627: - case 628: - case 629: - case 632: - case 634: - case 638: - case 650: - case 651: - case 721: - _first_set_mask = 0x2ULL; - break; - case 1: - _first_set_mask = 0x3ULL; - break; - case 4: - _first_set_mask = 0x4ULL; - break; - case 0: - _first_set_mask = 0x8ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // single_compound_stmt NEWLINE if (p->error_indicator) { p->level--; @@ -1500,7 +1376,6 @@ statement_newline_rule(Parser *p) D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_compound_stmt NEWLINE")); } - if (_first_set_mask & 0x2ULL) { // simple_stmts if (p->error_indicator) { p->level--; @@ -1520,7 +1395,6 @@ statement_newline_rule(Parser *p) D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts")); } - if (_first_set_mask & 0x4ULL) { // NEWLINE if (p->error_indicator) { p->level--; @@ -1554,7 +1428,6 @@ statement_newline_rule(Parser *p) D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } - if (_first_set_mask & 0x8ULL) { // $ if (p->error_indicator) { p->level--; @@ -1598,54 +1471,6 @@ simple_stmts_rule(Parser *p) } asdl_stmt_seq* _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 522: - case 527: - case 528: - case 529: - case 530: - case 531: - case 588: - case 598: - case 622: - case 627: - case 628: - case 629: - case 632: - case 634: - case 638: - case 650: - case 651: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // simple_stmt !';' NEWLINE if (p->error_indicator) { p->level--; @@ -1675,7 +1500,6 @@ simple_stmts_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmts[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt !';' NEWLINE")); } - if (_first_set_mask & 0x2ULL) { // ';'.simple_stmt+ ';'? NEWLINE if (p->error_indicator) { p->level--; @@ -1753,73 +1577,6 @@ simple_stmt_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 650: - case 651: - _first_set_mask = 0x4ULL; - break; - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x9ULL; - break; - case 1: - _first_set_mask = 0xfULL; - break; - case 522: - _first_set_mask = 0x10ULL; - break; - case 632: - _first_set_mask = 0x20ULL; - break; - case 527: - _first_set_mask = 0x49ULL; - break; - case 634: - _first_set_mask = 0x80ULL; - break; - case 588: - _first_set_mask = 0x101ULL; - break; - case 638: - _first_set_mask = 0x200ULL; - break; - case 528: - _first_set_mask = 0x409ULL; - break; - case 529: - _first_set_mask = 0x809ULL; - break; - case 530: - _first_set_mask = 0x1000ULL; - break; - case 531: - _first_set_mask = 0x2000ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // assignment if (p->error_indicator) { p->level--; @@ -1839,7 +1596,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment")); } - if (_first_set_mask & 0x2ULL) { // &"type" type_alias if (p->error_indicator) { p->level--; @@ -1861,7 +1617,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&\"type\" type_alias")); } - if (_first_set_mask & 0x4ULL) { // &('import' | 'from' | "lazy") import_stmt if (p->error_indicator) { p->level--; @@ -1883,7 +1638,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from' | \"lazy\") import_stmt")); } - if (_first_set_mask & 0x8ULL) { // star_expressions if (p->error_indicator) { p->level--; @@ -1917,7 +1671,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } - if (_first_set_mask & 0x10ULL) { // &'return' return_stmt if (p->error_indicator) { p->level--; @@ -1939,7 +1692,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt")); } - if (_first_set_mask & 0x20ULL) { // &'raise' raise_stmt if (p->error_indicator) { p->level--; @@ -1961,7 +1713,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt")); } - if (_first_set_mask & 0x40ULL) { // &'pass' pass_stmt if (p->error_indicator) { p->level--; @@ -1983,7 +1734,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'pass' pass_stmt")); } - if (_first_set_mask & 0x80ULL) { // &'del' del_stmt if (p->error_indicator) { p->level--; @@ -2005,7 +1755,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt")); } - if (_first_set_mask & 0x100ULL) { // &'yield' yield_stmt if (p->error_indicator) { p->level--; @@ -2027,7 +1776,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt")); } - if (_first_set_mask & 0x200ULL) { // &'assert' assert_stmt if (p->error_indicator) { p->level--; @@ -2049,7 +1797,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt")); } - if (_first_set_mask & 0x400ULL) { // &'break' break_stmt if (p->error_indicator) { p->level--; @@ -2071,7 +1818,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'break' break_stmt")); } - if (_first_set_mask & 0x800ULL) { // &'continue' continue_stmt if (p->error_indicator) { p->level--; @@ -2093,7 +1839,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'continue' continue_stmt")); } - if (_first_set_mask & 0x1000ULL) { // &'global' global_stmt if (p->error_indicator) { p->level--; @@ -2115,7 +1860,6 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt")); } - if (_first_set_mask & 0x2000ULL) { // &'nonlocal' nonlocal_stmt if (p->error_indicator) { p->level--; @@ -2165,51 +1909,6 @@ compound_stmt_rule(Parser *p) } stmt_ty _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 717: - _first_set_mask = 0x1ULL; - break; - case 700: - _first_set_mask = 0x2ULL; - break; - case 719: - _first_set_mask = 0x4ULL; - break; - case 49: - _first_set_mask = 0x5ULL; - break; - case 665: - _first_set_mask = 0x8ULL; - break; - case 712: - _first_set_mask = 0x10ULL; - break; - case 716: - _first_set_mask = 0x19ULL; - break; - case 674: - _first_set_mask = 0x20ULL; - break; - case 707: - _first_set_mask = 0x40ULL; - break; - case 1: - _first_set_mask = 0x80ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // &('def' | '@' | 'async') function_def if (p->error_indicator) { p->level--; @@ -2231,7 +1930,6 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | 'async') function_def")); } - if (_first_set_mask & 0x2ULL) { // &'if' if_stmt if (p->error_indicator) { p->level--; @@ -2253,7 +1951,6 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt")); } - if (_first_set_mask & 0x4ULL) { // &('class' | '@') class_def if (p->error_indicator) { p->level--; @@ -2275,7 +1972,6 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def")); } - if (_first_set_mask & 0x8ULL) { // &('with' | 'async') with_stmt if (p->error_indicator) { p->level--; @@ -2297,7 +1993,6 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | 'async') with_stmt")); } - if (_first_set_mask & 0x10ULL) { // &('for' | 'async') for_stmt if (p->error_indicator) { p->level--; @@ -2319,7 +2014,6 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | 'async') for_stmt")); } - if (_first_set_mask & 0x20ULL) { // &'try' try_stmt if (p->error_indicator) { p->level--; @@ -2341,7 +2035,6 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt")); } - if (_first_set_mask & 0x40ULL) { // &'while' while_stmt if (p->error_indicator) { p->level--; @@ -2363,7 +2056,6 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt")); } - if (_first_set_mask & 0x80ULL) { // match_stmt if (p->error_indicator) { p->level--; @@ -2416,47 +2108,6 @@ assignment_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 14: - case 15: - case 31: - case 527: - case 528: - case 529: - case 588: - case 598: - case 622: - case 721: - _first_set_mask = 0x10ULL; - break; - case 16: - _first_set_mask = 0x14ULL; - break; - case 2: - case 3: - case 7: - case 9: - case 25: - case 52: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x1eULL; - break; - case 1: - _first_set_mask = 0x1fULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // NAME ':' expression ['=' annotated_rhs] if (p->error_indicator) { p->level--; @@ -2499,7 +2150,6 @@ assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]")); } - if (_first_set_mask & 0x2ULL) { // ('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs] if (p->error_indicator) { p->level--; @@ -2542,7 +2192,6 @@ assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | attribute_or_subscript_target) ':' expression ['=' annotated_rhs]")); } - if (_first_set_mask & 0x4ULL) { // ((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT? if (p->error_indicator) { p->level--; @@ -2584,7 +2233,6 @@ assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ annotated_rhs !'=' TYPE_COMMENT?")); } - if (_first_set_mask & 0x8ULL) { // single_target augassign ~ annotated_rhs if (p->error_indicator) { p->level--; @@ -2631,7 +2279,6 @@ assignment_rule(Parser *p) return NULL; } } - if (_first_set_mask & 0x10ULL) if (p->call_invalid_rules) { // invalid_assignment if (p->error_indicator) { p->level--; @@ -2670,44 +2317,6 @@ annotated_rhs_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 588: - goto first_set_alt_0; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - goto first_set_alt_1; - default: - goto first_set_done_2; - } - } - first_set_alt_0: { // yield_expr if (p->error_indicator) { p->level--; @@ -2727,10 +2336,6 @@ annotated_rhs_rule(Parser *p) D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } - if (!p->call_invalid_rules) { - goto first_set_done_2; - } - first_set_alt_1: { // star_expressions if (p->error_indicator) { p->level--; @@ -2750,11 +2355,6 @@ annotated_rhs_rule(Parser *p) D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } - if (!p->call_invalid_rules) { - goto first_set_done_2; - } - first_set_done_2: - ; _res = NULL; done: p->level--; @@ -2796,36 +2396,36 @@ augassign_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 36: - goto first_set_alt_3; + goto first_set_alt_0; case 37: - goto first_set_alt_4; + goto first_set_alt_1; case 38: - goto first_set_alt_5; + goto first_set_alt_2; case 50: - goto first_set_alt_6; + goto first_set_alt_3; case 39: - goto first_set_alt_7; + goto first_set_alt_4; case 40: - goto first_set_alt_8; + goto first_set_alt_5; case 41: - goto first_set_alt_9; + goto first_set_alt_6; case 42: - goto first_set_alt_10; + goto first_set_alt_7; case 43: - goto first_set_alt_11; + goto first_set_alt_8; case 44: - goto first_set_alt_12; + goto first_set_alt_9; case 45: - goto first_set_alt_13; + goto first_set_alt_10; case 46: - goto first_set_alt_14; + goto first_set_alt_11; case 48: - goto first_set_alt_15; + goto first_set_alt_12; default: - goto first_set_done_16; + goto first_set_done_13; } } - first_set_alt_3: + first_set_alt_0: { // '+=' if (p->error_indicator) { p->level--; @@ -2851,9 +2451,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_4: + first_set_alt_1: { // '-=' if (p->error_indicator) { p->level--; @@ -2879,9 +2479,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_5: + first_set_alt_2: { // '*=' if (p->error_indicator) { p->level--; @@ -2907,9 +2507,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_6: + first_set_alt_3: { // '@=' if (p->error_indicator) { p->level--; @@ -2935,9 +2535,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_7: + first_set_alt_4: { // '/=' if (p->error_indicator) { p->level--; @@ -2963,9 +2563,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_8: + first_set_alt_5: { // '%=' if (p->error_indicator) { p->level--; @@ -2991,9 +2591,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_9: + first_set_alt_6: { // '&=' if (p->error_indicator) { p->level--; @@ -3019,9 +2619,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_10: + first_set_alt_7: { // '|=' if (p->error_indicator) { p->level--; @@ -3047,9 +2647,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_11: + first_set_alt_8: { // '^=' if (p->error_indicator) { p->level--; @@ -3075,9 +2675,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_12: + first_set_alt_9: { // '<<=' if (p->error_indicator) { p->level--; @@ -3103,9 +2703,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_13: + first_set_alt_10: { // '>>=' if (p->error_indicator) { p->level--; @@ -3131,9 +2731,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_14: + first_set_alt_11: { // '**=' if (p->error_indicator) { p->level--; @@ -3159,9 +2759,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_alt_15: + first_set_alt_12: { // '//=' if (p->error_indicator) { p->level--; @@ -3187,9 +2787,9 @@ augassign_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='")); } if (!p->call_invalid_rules) { - goto first_set_done_16; + goto first_set_done_13; } - first_set_done_16: + first_set_done_13: ; _res = NULL; done: @@ -4931,57 +4531,6 @@ block_rule(Parser *p) return _res; } int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 522: - case 527: - case 528: - case 529: - case 530: - case 531: - case 588: - case 598: - case 622: - case 627: - case 628: - case 629: - case 632: - case 634: - case 638: - case 650: - case 651: - case 721: - _first_set_mask = 0x2ULL; - break; - case 4: - _first_set_mask = 0x5ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // NEWLINE INDENT statements DEDENT if (p->error_indicator) { p->level--; @@ -5015,7 +4564,6 @@ block_rule(Parser *p) D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT")); } - if (_first_set_mask & 0x2ULL) { // simple_stmts if (p->error_indicator) { p->level--; @@ -5035,7 +4583,6 @@ block_rule(Parser *p) D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmts")); } - if (_first_set_mask & 0x4ULL) if (p->call_invalid_rules) { // invalid_block if (p->error_indicator) { p->level--; @@ -5127,14 +4674,14 @@ class_def_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 49: - goto first_set_alt_17; + goto first_set_alt_14; case 719: - goto first_set_alt_18; + goto first_set_alt_15; default: - goto first_set_done_19; + goto first_set_done_16; } } - first_set_alt_17: + first_set_alt_14: { // decorators class_def_raw if (p->error_indicator) { p->level--; @@ -5163,9 +4710,9 @@ class_def_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw")); } if (!p->call_invalid_rules) { - goto first_set_done_19; + goto first_set_done_16; } - first_set_alt_18: + first_set_alt_15: { // class_def_raw if (p->error_indicator) { p->level--; @@ -5186,9 +4733,9 @@ class_def_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw")); } if (!p->call_invalid_rules) { - goto first_set_done_19; + goto first_set_done_16; } - first_set_done_19: + first_set_done_16: ; _res = NULL; done: @@ -5329,15 +4876,15 @@ function_def_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 49: - goto first_set_alt_20; + goto first_set_alt_17; case 716: case 717: - goto first_set_alt_21; + goto first_set_alt_18; default: - goto first_set_done_22; + goto first_set_done_19; } } - first_set_alt_20: + first_set_alt_17: { // decorators function_def_raw if (p->error_indicator) { p->level--; @@ -5366,9 +4913,9 @@ function_def_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw")); } if (!p->call_invalid_rules) { - goto first_set_done_22; + goto first_set_done_19; } - first_set_alt_21: + first_set_alt_18: { // function_def_raw if (p->error_indicator) { p->level--; @@ -5389,9 +4936,9 @@ function_def_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw")); } if (!p->call_invalid_rules) { - goto first_set_done_22; + goto first_set_done_19; } - first_set_done_22: + first_set_done_19: ; _res = NULL; done: @@ -8082,44 +7629,6 @@ with_item_rule(Parser *p) } withitem_ty _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x7ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // expression 'as' star_target &(',' | ')' | ':') if (p->error_indicator) { p->level--; @@ -8152,7 +7661,6 @@ with_item_rule(Parser *p) D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression 'as' star_target &(',' | ')' | ':')")); } - if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_with_item if (p->error_indicator) { p->level--; @@ -8172,7 +7680,6 @@ with_item_rule(Parser *p) D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_with_item")); } - if (_first_set_mask & 0x4ULL) { // expression if (p->error_indicator) { p->level--; @@ -9121,42 +8628,6 @@ subject_expr_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - _first_set_mask = 0x1ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // star_named_expression ',' star_named_expressions? if (p->error_indicator) { p->level--; @@ -9196,7 +8667,6 @@ subject_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s subject_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?")); } - if (_first_set_mask & 0x2ULL) { // named_expression if (p->error_indicator) { p->level--; @@ -9383,34 +8853,6 @@ patterns_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - _first_set_mask = 0x1ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // open_sequence_pattern if (p->error_indicator) { p->level--; @@ -9444,7 +8886,6 @@ patterns_rule(Parser *p) D(fprintf(stderr, "%*c%s patterns[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "open_sequence_pattern")); } - if (_first_set_mask & 0x2ULL) { // pattern if (p->error_indicator) { p->level--; @@ -9483,36 +8924,6 @@ pattern_rule(Parser *p) } pattern_ty _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // as_pattern if (p->error_indicator) { p->level--; @@ -9532,7 +8943,6 @@ pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "as_pattern")); } - if (_first_set_mask & 0x2ULL) { // or_pattern if (p->error_indicator) { p->level--; @@ -9580,31 +8990,6 @@ as_pattern_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // or_pattern 'as' pattern_capture_target if (p->error_indicator) { p->level--; @@ -9644,7 +9029,6 @@ as_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s as_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' pattern_capture_target")); } - if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_as_pattern if (p->error_indicator) { p->level--; @@ -9756,44 +9140,6 @@ closed_pattern_rule(Parser *p) return _res; } int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 2: - case 3: - case 14: - case 15: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x1ULL; - break; - case 9: - _first_set_mask = 0x20ULL; - break; - case 7: - _first_set_mask = 0x30ULL; - break; - case 25: - _first_set_mask = 0x40ULL; - break; - case 1: - _first_set_mask = 0x8eULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // literal_pattern if (p->error_indicator) { p->level--; @@ -9813,7 +9159,6 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_pattern")); } - if (_first_set_mask & 0x2ULL) { // capture_pattern if (p->error_indicator) { p->level--; @@ -9833,7 +9178,6 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "capture_pattern")); } - if (_first_set_mask & 0x4ULL) { // wildcard_pattern if (p->error_indicator) { p->level--; @@ -9853,7 +9197,6 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "wildcard_pattern")); } - if (_first_set_mask & 0x8ULL) { // value_pattern if (p->error_indicator) { p->level--; @@ -9873,7 +9216,6 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "value_pattern")); } - if (_first_set_mask & 0x10ULL) { // group_pattern if (p->error_indicator) { p->level--; @@ -9893,7 +9235,6 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group_pattern")); } - if (_first_set_mask & 0x20ULL) { // sequence_pattern if (p->error_indicator) { p->level--; @@ -9913,7 +9254,6 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sequence_pattern")); } - if (_first_set_mask & 0x40ULL) { // mapping_pattern if (p->error_indicator) { p->level--; @@ -9933,7 +9273,6 @@ closed_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s closed_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "mapping_pattern")); } - if (_first_set_mask & 0x80ULL) { // class_pattern if (p->error_indicator) { p->level--; @@ -10256,35 +9595,6 @@ literal_expr_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 2: - case 14: - case 15: - _first_set_mask = 0x3ULL; - break; - case 3: - case 59: - case 62: - _first_set_mask = 0x4ULL; - break; - case 628: - _first_set_mask = 0x8ULL; - break; - case 627: - _first_set_mask = 0x10ULL; - break; - case 629: - _first_set_mask = 0x20ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // signed_number !('+' | '-') if (p->error_indicator) { p->level--; @@ -10306,7 +9616,6 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "signed_number !('+' | '-')")); } - if (_first_set_mask & 0x2ULL) { // complex_number if (p->error_indicator) { p->level--; @@ -10326,7 +9635,6 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "complex_number")); } - if (_first_set_mask & 0x4ULL) { // &(STRING | FSTRING_START | TSTRING_START) strings if (p->error_indicator) { p->level--; @@ -10348,7 +9656,6 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); } - if (_first_set_mask & 0x8ULL) { // 'None' if (p->error_indicator) { p->level--; @@ -10382,7 +9689,6 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } - if (_first_set_mask & 0x10ULL) { // 'True' if (p->error_indicator) { p->level--; @@ -10416,7 +9722,6 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c%s literal_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } - if (_first_set_mask & 0x20ULL) { // 'False' if (p->error_indicator) { p->level--; @@ -10606,16 +9911,16 @@ signed_number_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 2: - goto first_set_alt_23; + goto first_set_alt_20; case 14: - goto first_set_alt_24; + goto first_set_alt_21; case 15: - goto first_set_alt_25; + goto first_set_alt_22; default: - goto first_set_done_26; + goto first_set_done_23; } } - first_set_alt_23: + first_set_alt_20: { // NUMBER if (p->error_indicator) { p->level--; @@ -10636,9 +9941,9 @@ signed_number_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER")); } if (!p->call_invalid_rules) { - goto first_set_done_26; + goto first_set_done_23; } - first_set_alt_24: + first_set_alt_21: { // '+' NUMBER if (p->error_indicator) { p->level--; @@ -10667,9 +9972,9 @@ signed_number_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' NUMBER")); } if (!p->call_invalid_rules) { - goto first_set_done_26; + goto first_set_done_23; } - first_set_alt_25: + first_set_alt_22: { // '-' NUMBER if (p->error_indicator) { p->level--; @@ -10707,9 +10012,9 @@ signed_number_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' NUMBER")); } if (!p->call_invalid_rules) { - goto first_set_done_26; + goto first_set_done_23; } - first_set_done_26: + first_set_done_23: ; _res = NULL; done: @@ -10743,16 +10048,16 @@ signed_real_number_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 2: - goto first_set_alt_27; + goto first_set_alt_24; case 14: - goto first_set_alt_28; + goto first_set_alt_25; case 15: - goto first_set_alt_29; + goto first_set_alt_26; default: - goto first_set_done_30; + goto first_set_done_27; } } - first_set_alt_27: + first_set_alt_24: { // real_number if (p->error_indicator) { p->level--; @@ -10773,9 +10078,9 @@ signed_real_number_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "real_number")); } if (!p->call_invalid_rules) { - goto first_set_done_30; + goto first_set_done_27; } - first_set_alt_28: + first_set_alt_25: { // '+' real_number if (p->error_indicator) { p->level--; @@ -10804,9 +10109,9 @@ signed_real_number_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' real_number")); } if (!p->call_invalid_rules) { - goto first_set_done_30; + goto first_set_done_27; } - first_set_alt_29: + first_set_alt_26: { // '-' real_number if (p->error_indicator) { p->level--; @@ -10844,9 +10149,9 @@ signed_real_number_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' real_number")); } if (!p->call_invalid_rules) { - goto first_set_done_30; + goto first_set_done_27; } - first_set_done_30: + first_set_done_27: ; _res = NULL; done: @@ -11429,14 +10734,14 @@ sequence_pattern_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 9: - goto first_set_alt_31; + goto first_set_alt_28; case 7: - goto first_set_alt_32; + goto first_set_alt_29; default: - goto first_set_done_33; + goto first_set_done_30; } } - first_set_alt_31: + first_set_alt_28: { // '[' maybe_sequence_pattern? ']' if (p->error_indicator) { p->level--; @@ -11477,9 +10782,9 @@ sequence_pattern_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' maybe_sequence_pattern? ']'")); } if (!p->call_invalid_rules) { - goto first_set_done_33; + goto first_set_done_30; } - first_set_alt_32: + first_set_alt_29: { // '(' open_sequence_pattern? ')' if (p->error_indicator) { p->level--; @@ -11520,9 +10825,9 @@ sequence_pattern_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' open_sequence_pattern? ')'")); } if (!p->call_invalid_rules) { - goto first_set_done_33; + goto first_set_done_30; } - first_set_done_33: + first_set_done_30: ; _res = NULL; done: @@ -11639,35 +10944,6 @@ maybe_star_pattern_rule(Parser *p) } pattern_ty _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 16: - goto first_set_alt_34; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 59: - case 62: - case 627: - case 628: - case 629: - goto first_set_alt_35; - default: - goto first_set_done_36; - } - } - first_set_alt_34: { // star_pattern if (p->error_indicator) { p->level--; @@ -11687,10 +10963,6 @@ maybe_star_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_pattern")); } - if (!p->call_invalid_rules) { - goto first_set_done_36; - } - first_set_alt_35: { // pattern if (p->error_indicator) { p->level--; @@ -11710,11 +10982,6 @@ maybe_star_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s maybe_star_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pattern")); } - if (!p->call_invalid_rules) { - goto first_set_done_36; - } - first_set_done_36: - ; _res = NULL; done: p->level--; @@ -13148,8 +12415,8 @@ expressions_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_37_result = NULL; - int _prefix_37_end = 0, _prefix_37_valid = 0; + expr_ty _prefix_31_result = NULL; + int _prefix_31_end = 0, _prefix_31_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -13159,39 +12426,6 @@ expressions_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x7ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // expression ((',' expression))+ ','? if (p->error_indicator) { p->level--; @@ -13203,7 +12437,7 @@ expressions_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_37_valid) ? (p->mark = _prefix_37_end, _prefix_37_result) : (_prefix_37_result = expression_rule(p), _prefix_37_end = p->mark, _prefix_37_valid = 1, _prefix_37_result))) // expression + (a = ((!p->call_invalid_rules && _prefix_31_valid) ? (p->mark = _prefix_31_end, _prefix_31_result) : (_prefix_31_result = expression_rule(p), _prefix_31_end = p->mark, _prefix_31_valid = 1, _prefix_31_result))) // expression && (b = _loop1_55_rule(p)) // ((',' expression))+ && @@ -13232,7 +12466,6 @@ expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?")); } - if (_first_set_mask & 0x2ULL) { // expression ',' if (p->error_indicator) { p->level--; @@ -13242,7 +12475,7 @@ expressions_rule(Parser *p) Token * _literal; expr_ty a; if ( - (a = ((!p->call_invalid_rules && _prefix_37_valid) ? (p->mark = _prefix_37_end, _prefix_37_result) : (_prefix_37_result = expression_rule(p), _prefix_37_end = p->mark, _prefix_37_valid = 1, _prefix_37_result))) // expression + (a = ((!p->call_invalid_rules && _prefix_31_valid) ? (p->mark = _prefix_31_end, _prefix_31_result) : (_prefix_31_result = expression_rule(p), _prefix_31_end = p->mark, _prefix_31_valid = 1, _prefix_31_result))) // expression && (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) @@ -13269,7 +12502,6 @@ expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','")); } - if (_first_set_mask & 0x4ULL) { // expression if (p->error_indicator) { p->level--; @@ -13278,7 +12510,7 @@ expressions_rule(Parser *p) D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression")); expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_37_valid) ? (p->mark = _prefix_37_end, _prefix_37_result) : (_prefix_37_result = expression_rule(p), _prefix_37_end = p->mark, _prefix_37_valid = 1, _prefix_37_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_31_valid) ? (p->mark = _prefix_31_end, _prefix_31_result) : (_prefix_31_result = expression_rule(p), _prefix_31_end = p->mark, _prefix_31_valid = 1, _prefix_31_result))) // expression ) { D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression")); @@ -13318,50 +12550,6 @@ expression_rule(Parser *p) return _res; } int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 527: - case 528: - case 529: - _first_set_mask = 0x2ULL; - break; - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x1bULL; - break; - case 1: - _first_set_mask = 0x1fULL; - break; - case 622: - _first_set_mask = 0x22ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_if_expression if (p->error_indicator) { p->level--; @@ -13381,7 +12569,6 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_if_expression")); } - if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_expression if (p->error_indicator) { p->level--; @@ -13401,7 +12588,6 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression")); } - if (_first_set_mask & 0x4ULL) if (p->call_invalid_rules) { // invalid_legacy_expression if (p->error_indicator) { p->level--; @@ -13421,7 +12607,6 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression")); } - if (_first_set_mask & 0x8ULL) { // if_expression if (p->error_indicator) { p->level--; @@ -13441,7 +12626,6 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "if_expression")); } - if (_first_set_mask & 0x10ULL) { // disjunction if (p->error_indicator) { p->level--; @@ -13461,7 +12645,6 @@ expression_rule(Parser *p) D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction")); } - if (_first_set_mask & 0x20ULL) { // lambdef if (p->error_indicator) { p->level--; @@ -13694,8 +12877,8 @@ star_expressions_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_38_result = NULL; - int _prefix_38_end = 0, _prefix_38_valid = 0; + expr_ty _prefix_32_result = NULL; + int _prefix_32_end = 0, _prefix_32_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -13705,40 +12888,6 @@ star_expressions_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x7ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // star_expression ((',' star_expression))+ ','? if (p->error_indicator) { p->level--; @@ -13750,7 +12899,7 @@ star_expressions_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = star_expression_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // star_expression + (a = ((!p->call_invalid_rules && _prefix_32_valid) ? (p->mark = _prefix_32_end, _prefix_32_result) : (_prefix_32_result = star_expression_rule(p), _prefix_32_end = p->mark, _prefix_32_valid = 1, _prefix_32_result))) // star_expression && (b = _loop1_56_rule(p)) // ((',' star_expression))+ && @@ -13779,7 +12928,6 @@ star_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?")); } - if (_first_set_mask & 0x2ULL) { // star_expression ',' if (p->error_indicator) { p->level--; @@ -13789,7 +12937,7 @@ star_expressions_rule(Parser *p) Token * _literal; expr_ty a; if ( - (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = star_expression_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // star_expression + (a = ((!p->call_invalid_rules && _prefix_32_valid) ? (p->mark = _prefix_32_end, _prefix_32_result) : (_prefix_32_result = star_expression_rule(p), _prefix_32_end = p->mark, _prefix_32_valid = 1, _prefix_32_result))) // star_expression && (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) @@ -13816,7 +12964,6 @@ star_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','")); } - if (_first_set_mask & 0x4ULL) { // star_expression if (p->error_indicator) { p->level--; @@ -13825,7 +12972,7 @@ star_expressions_rule(Parser *p) D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression")); expr_ty star_expression_var; if ( - (star_expression_var = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = star_expression_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // star_expression + (star_expression_var = ((!p->call_invalid_rules && _prefix_32_valid) ? (p->mark = _prefix_32_end, _prefix_32_result) : (_prefix_32_result = star_expression_rule(p), _prefix_32_end = p->mark, _prefix_32_valid = 1, _prefix_32_result))) // star_expression ) { D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression")); @@ -13868,38 +13015,6 @@ star_expression_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 16: - goto first_set_alt_39; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - goto first_set_alt_40; - default: - goto first_set_done_41; - } - } - first_set_alt_39: { // '*' bitwise_or if (p->error_indicator) { p->level--; @@ -13936,10 +13051,6 @@ star_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or")); } - if (!p->call_invalid_rules) { - goto first_set_done_41; - } - first_set_alt_40: { // expression if (p->error_indicator) { p->level--; @@ -13959,11 +13070,6 @@ star_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression")); } - if (!p->call_invalid_rules) { - goto first_set_done_41; - } - first_set_done_41: - ; _res = NULL; done: _PyPegen_insert_memo(p, _mark, star_expression_type, _res); @@ -14040,38 +13146,6 @@ star_named_expression_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 16: - goto first_set_alt_42; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - goto first_set_alt_43; - default: - goto first_set_done_44; - } - } - first_set_alt_42: { // '*' bitwise_or if (p->error_indicator) { p->level--; @@ -14108,10 +13182,6 @@ star_named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or")); } - if (!p->call_invalid_rules) { - goto first_set_done_44; - } - first_set_alt_43: { // named_expression if (p->error_indicator) { p->level--; @@ -14131,11 +13201,6 @@ star_named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); } - if (!p->call_invalid_rules) { - goto first_set_done_44; - } - first_set_done_44: - ; _res = NULL; done: p->level--; @@ -14229,46 +13294,6 @@ named_expression_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x6ULL; - break; - case 1: - _first_set_mask = 0x7ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // assignment_expression if (p->error_indicator) { p->level--; @@ -14288,7 +13313,6 @@ named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } - if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_named_expression if (p->error_indicator) { p->level--; @@ -14308,7 +13332,6 @@ named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression")); } - if (_first_set_mask & 0x4ULL) { // expression !':=' if (p->error_indicator) { p->level--; @@ -14353,8 +13376,8 @@ disjunction_rule(Parser *p) return _res; } int _mark = p->mark; - expr_ty _prefix_45_result = NULL; - int _prefix_45_end = 0, _prefix_45_valid = 0; + expr_ty _prefix_33_result = NULL; + int _prefix_33_end = 0, _prefix_33_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -14364,35 +13387,6 @@ disjunction_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // conjunction (('or' conjunction))+ if (p->error_indicator) { p->level--; @@ -14402,7 +13396,7 @@ disjunction_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_45_valid) ? (p->mark = _prefix_45_end, _prefix_45_result) : (_prefix_45_result = conjunction_rule(p), _prefix_45_end = p->mark, _prefix_45_valid = 1, _prefix_45_result))) // conjunction + (a = ((!p->call_invalid_rules && _prefix_33_valid) ? (p->mark = _prefix_33_end, _prefix_33_result) : (_prefix_33_result = conjunction_rule(p), _prefix_33_end = p->mark, _prefix_33_valid = 1, _prefix_33_result))) // conjunction && (b = _loop1_59_rule(p)) // (('or' conjunction))+ ) @@ -14429,7 +13423,6 @@ disjunction_rule(Parser *p) D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+")); } - if (_first_set_mask & 0x2ULL) { // conjunction if (p->error_indicator) { p->level--; @@ -14438,7 +13431,7 @@ disjunction_rule(Parser *p) D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction")); expr_ty conjunction_var; if ( - (conjunction_var = ((!p->call_invalid_rules && _prefix_45_valid) ? (p->mark = _prefix_45_end, _prefix_45_result) : (_prefix_45_result = conjunction_rule(p), _prefix_45_end = p->mark, _prefix_45_valid = 1, _prefix_45_result))) // conjunction + (conjunction_var = ((!p->call_invalid_rules && _prefix_33_valid) ? (p->mark = _prefix_33_end, _prefix_33_result) : (_prefix_33_result = conjunction_rule(p), _prefix_33_end = p->mark, _prefix_33_valid = 1, _prefix_33_result))) // conjunction ) { D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction")); @@ -14473,8 +13466,8 @@ conjunction_rule(Parser *p) return _res; } int _mark = p->mark; - expr_ty _prefix_46_result = NULL; - int _prefix_46_end = 0, _prefix_46_valid = 0; + expr_ty _prefix_34_result = NULL; + int _prefix_34_end = 0, _prefix_34_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -14484,35 +13477,6 @@ conjunction_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // inversion (('and' inversion))+ if (p->error_indicator) { p->level--; @@ -14522,7 +13486,7 @@ conjunction_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_46_valid) ? (p->mark = _prefix_46_end, _prefix_46_result) : (_prefix_46_result = inversion_rule(p), _prefix_46_end = p->mark, _prefix_46_valid = 1, _prefix_46_result))) // inversion + (a = ((!p->call_invalid_rules && _prefix_34_valid) ? (p->mark = _prefix_34_end, _prefix_34_result) : (_prefix_34_result = inversion_rule(p), _prefix_34_end = p->mark, _prefix_34_valid = 1, _prefix_34_result))) // inversion && (b = _loop1_60_rule(p)) // (('and' inversion))+ ) @@ -14549,7 +13513,6 @@ conjunction_rule(Parser *p) D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+")); } - if (_first_set_mask & 0x2ULL) { // inversion if (p->error_indicator) { p->level--; @@ -14558,7 +13521,7 @@ conjunction_rule(Parser *p) D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion")); expr_ty inversion_var; if ( - (inversion_var = ((!p->call_invalid_rules && _prefix_46_valid) ? (p->mark = _prefix_46_end, _prefix_46_result) : (_prefix_46_result = inversion_rule(p), _prefix_46_end = p->mark, _prefix_46_valid = 1, _prefix_46_result))) // inversion + (inversion_var = ((!p->call_invalid_rules && _prefix_34_valid) ? (p->mark = _prefix_34_end, _prefix_34_result) : (_prefix_34_result = inversion_rule(p), _prefix_34_end = p->mark, _prefix_34_valid = 1, _prefix_34_result))) // inversion ) { D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion")); @@ -14602,33 +13565,6 @@ inversion_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 721: - goto first_set_alt_47; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - goto first_set_alt_48; - default: - goto first_set_done_49; - } - } - first_set_alt_47: { // 'not' inversion if (p->error_indicator) { p->level--; @@ -14665,10 +13601,6 @@ inversion_rule(Parser *p) D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion")); } - if (!p->call_invalid_rules) { - goto first_set_done_49; - } - first_set_alt_48: { // comparison if (p->error_indicator) { p->level--; @@ -14688,11 +13620,6 @@ inversion_rule(Parser *p) D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison")); } - if (!p->call_invalid_rules) { - goto first_set_done_49; - } - first_set_done_49: - ; _res = NULL; done: _PyPegen_insert_memo(p, _mark, inversion_type, _res); @@ -14713,8 +13640,8 @@ comparison_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_50_result = NULL; - int _prefix_50_end = 0, _prefix_50_valid = 0; + expr_ty _prefix_35_result = NULL; + int _prefix_35_end = 0, _prefix_35_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -14724,34 +13651,6 @@ comparison_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // bitwise_or compare_op_bitwise_or_pair+ if (p->error_indicator) { p->level--; @@ -14761,7 +13660,7 @@ comparison_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_50_valid) ? (p->mark = _prefix_50_end, _prefix_50_result) : (_prefix_50_result = bitwise_or_rule(p), _prefix_50_end = p->mark, _prefix_50_valid = 1, _prefix_50_result))) // bitwise_or + (a = ((!p->call_invalid_rules && _prefix_35_valid) ? (p->mark = _prefix_35_end, _prefix_35_result) : (_prefix_35_result = bitwise_or_rule(p), _prefix_35_end = p->mark, _prefix_35_valid = 1, _prefix_35_result))) // bitwise_or && (b = _loop1_61_rule(p)) // compare_op_bitwise_or_pair+ ) @@ -14788,7 +13687,6 @@ comparison_rule(Parser *p) D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+")); } - if (_first_set_mask & 0x2ULL) { // bitwise_or if (p->error_indicator) { p->level--; @@ -14797,7 +13695,7 @@ comparison_rule(Parser *p) D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or")); expr_ty bitwise_or_var; if ( - (bitwise_or_var = ((!p->call_invalid_rules && _prefix_50_valid) ? (p->mark = _prefix_50_end, _prefix_50_result) : (_prefix_50_result = bitwise_or_rule(p), _prefix_50_end = p->mark, _prefix_50_valid = 1, _prefix_50_result))) // bitwise_or + (bitwise_or_var = ((!p->call_invalid_rules && _prefix_35_valid) ? (p->mark = _prefix_35_end, _prefix_35_result) : (_prefix_35_result = bitwise_or_rule(p), _prefix_35_end = p->mark, _prefix_35_valid = 1, _prefix_35_result))) // bitwise_or ) { D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or")); @@ -15373,34 +14271,6 @@ bitwise_xor_raw(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // bitwise_xor '^' bitwise_and if (p->error_indicator) { p->level--; @@ -15440,7 +14310,6 @@ bitwise_xor_raw(Parser *p) D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and")); } - if (_first_set_mask & 0x2ULL) { // bitwise_and if (p->error_indicator) { p->level--; @@ -15660,8 +14529,8 @@ shift_expr_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_51_result = NULL; - int _prefix_51_end = 0, _prefix_51_valid = 0; + expr_ty _prefix_36_result = NULL; + int _prefix_36_end = 0, _prefix_36_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -15671,34 +14540,6 @@ shift_expr_raw(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - _first_set_mask = 0x7ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // shift_expr '<<' sum if (p->error_indicator) { p->level--; @@ -15709,7 +14550,7 @@ shift_expr_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_51_valid) ? (p->mark = _prefix_51_end, _prefix_51_result) : (_prefix_51_result = shift_expr_rule(p), _prefix_51_end = p->mark, _prefix_51_valid = 1, _prefix_51_result))) // shift_expr + (a = ((!p->call_invalid_rules && _prefix_36_valid) ? (p->mark = _prefix_36_end, _prefix_36_result) : (_prefix_36_result = shift_expr_rule(p), _prefix_36_end = p->mark, _prefix_36_valid = 1, _prefix_36_result))) // shift_expr && (_literal = _PyPegen_expect_token(p, 33)) // token='<<' && @@ -15738,7 +14579,6 @@ shift_expr_raw(Parser *p) D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum")); } - if (_first_set_mask & 0x2ULL) { // shift_expr '>>' sum if (p->error_indicator) { p->level--; @@ -15749,7 +14589,7 @@ shift_expr_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_51_valid) ? (p->mark = _prefix_51_end, _prefix_51_result) : (_prefix_51_result = shift_expr_rule(p), _prefix_51_end = p->mark, _prefix_51_valid = 1, _prefix_51_result))) // shift_expr + (a = ((!p->call_invalid_rules && _prefix_36_valid) ? (p->mark = _prefix_36_end, _prefix_36_result) : (_prefix_36_result = shift_expr_rule(p), _prefix_36_end = p->mark, _prefix_36_valid = 1, _prefix_36_result))) // shift_expr && (_literal = _PyPegen_expect_token(p, 34)) // token='>>' && @@ -15778,7 +14618,6 @@ shift_expr_raw(Parser *p) D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum")); } - if (_first_set_mask & 0x4ULL) { // sum if (p->error_indicator) { p->level--; @@ -15855,8 +14694,8 @@ sum_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_52_result = NULL; - int _prefix_52_end = 0, _prefix_52_valid = 0; + expr_ty _prefix_37_result = NULL; + int _prefix_37_end = 0, _prefix_37_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -15876,7 +14715,7 @@ sum_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_52_valid) ? (p->mark = _prefix_52_end, _prefix_52_result) : (_prefix_52_result = sum_rule(p), _prefix_52_end = p->mark, _prefix_52_valid = 1, _prefix_52_result))) // sum + (a = ((!p->call_invalid_rules && _prefix_37_valid) ? (p->mark = _prefix_37_end, _prefix_37_result) : (_prefix_37_result = sum_rule(p), _prefix_37_end = p->mark, _prefix_37_valid = 1, _prefix_37_result))) // sum && (_literal = _PyPegen_expect_token(p, 14)) // token='+' && @@ -15915,7 +14754,7 @@ sum_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_52_valid) ? (p->mark = _prefix_52_end, _prefix_52_result) : (_prefix_52_result = sum_rule(p), _prefix_52_end = p->mark, _prefix_52_valid = 1, _prefix_52_result))) // sum + (a = ((!p->call_invalid_rules && _prefix_37_valid) ? (p->mark = _prefix_37_end, _prefix_37_result) : (_prefix_37_result = sum_rule(p), _prefix_37_end = p->mark, _prefix_37_valid = 1, _prefix_37_result))) // sum && (_literal = _PyPegen_expect_token(p, 15)) // token='-' && @@ -16045,8 +14884,8 @@ term_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_53_result = NULL; - int _prefix_53_end = 0, _prefix_53_valid = 0; + expr_ty _prefix_38_result = NULL; + int _prefix_38_end = 0, _prefix_38_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -16056,34 +14895,6 @@ term_raw(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - _first_set_mask = 0x3fULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // term '*' factor if (p->error_indicator) { p->level--; @@ -16094,7 +14905,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term + (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = term_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // term && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -16123,7 +14934,6 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor")); } - if (_first_set_mask & 0x2ULL) { // term '/' factor if (p->error_indicator) { p->level--; @@ -16134,7 +14944,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term + (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = term_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // term && (_literal = _PyPegen_expect_token(p, 17)) // token='/' && @@ -16163,7 +14973,6 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor")); } - if (_first_set_mask & 0x4ULL) { // term '//' factor if (p->error_indicator) { p->level--; @@ -16174,7 +14983,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term + (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = term_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // term && (_literal = _PyPegen_expect_token(p, 47)) // token='//' && @@ -16203,7 +15012,6 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor")); } - if (_first_set_mask & 0x8ULL) { // term '%' factor if (p->error_indicator) { p->level--; @@ -16214,7 +15022,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term + (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = term_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // term && (_literal = _PyPegen_expect_token(p, 24)) // token='%' && @@ -16243,7 +15051,6 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor")); } - if (_first_set_mask & 0x10ULL) { // term '@' factor if (p->error_indicator) { p->level--; @@ -16254,7 +15061,7 @@ term_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = term_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // term + (a = ((!p->call_invalid_rules && _prefix_38_valid) ? (p->mark = _prefix_38_end, _prefix_38_result) : (_prefix_38_result = term_rule(p), _prefix_38_end = p->mark, _prefix_38_valid = 1, _prefix_38_result))) // term && (_literal = _PyPegen_expect_token(p, 49)) // token='@' && @@ -16283,7 +15090,6 @@ term_raw(Parser *p) D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor")); } - if (_first_set_mask & 0x20ULL) { // factor if (p->error_indicator) { p->level--; @@ -16335,40 +15141,6 @@ factor_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 25: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - _first_set_mask = 0x8ULL; - break; - case 14: - _first_set_mask = 0x11ULL; - break; - case 15: - _first_set_mask = 0x12ULL; - break; - case 31: - _first_set_mask = 0x14ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // '+' factor if (p->error_indicator) { p->level--; @@ -16405,7 +15177,6 @@ factor_rule(Parser *p) D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor")); } - if (_first_set_mask & 0x2ULL) { // '-' factor if (p->error_indicator) { p->level--; @@ -16442,7 +15213,6 @@ factor_rule(Parser *p) D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor")); } - if (_first_set_mask & 0x4ULL) { // '~' factor if (p->error_indicator) { p->level--; @@ -16479,7 +15249,6 @@ factor_rule(Parser *p) D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor")); } - if (_first_set_mask & 0x8ULL) { // power if (p->error_indicator) { p->level--; @@ -16499,7 +15268,6 @@ factor_rule(Parser *p) D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power")); } - if (_first_set_mask & 0x10ULL) if (p->call_invalid_rules) { // invalid_factor if (p->error_indicator) { p->level--; @@ -16539,8 +15307,8 @@ power_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_54_result = NULL; - int _prefix_54_end = 0, _prefix_54_valid = 0; + expr_ty _prefix_39_result = NULL; + int _prefix_39_end = 0, _prefix_39_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -16550,31 +15318,6 @@ power_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 25: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // await_primary '**' factor if (p->error_indicator) { p->level--; @@ -16585,7 +15328,7 @@ power_rule(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_54_valid) ? (p->mark = _prefix_54_end, _prefix_54_result) : (_prefix_54_result = await_primary_rule(p), _prefix_54_end = p->mark, _prefix_54_valid = 1, _prefix_54_result))) // await_primary + (a = ((!p->call_invalid_rules && _prefix_39_valid) ? (p->mark = _prefix_39_end, _prefix_39_result) : (_prefix_39_result = await_primary_rule(p), _prefix_39_end = p->mark, _prefix_39_valid = 1, _prefix_39_result))) // await_primary && (_literal = _PyPegen_expect_token(p, 35)) // token='**' && @@ -16614,7 +15357,6 @@ power_rule(Parser *p) D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor")); } - if (_first_set_mask & 0x2ULL) { // await_primary if (p->error_indicator) { p->level--; @@ -16623,7 +15365,7 @@ power_rule(Parser *p) D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary")); expr_ty await_primary_var; if ( - (await_primary_var = ((!p->call_invalid_rules && _prefix_54_valid) ? (p->mark = _prefix_54_end, _prefix_54_result) : (_prefix_54_result = await_primary_rule(p), _prefix_54_end = p->mark, _prefix_54_valid = 1, _prefix_54_result))) // await_primary + (await_primary_var = ((!p->call_invalid_rules && _prefix_39_valid) ? (p->mark = _prefix_39_end, _prefix_39_result) : (_prefix_39_result = await_primary_rule(p), _prefix_39_end = p->mark, _prefix_39_valid = 1, _prefix_39_result))) // await_primary ) { D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary")); @@ -16666,29 +15408,6 @@ await_primary_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 598: - goto first_set_alt_55; - case 1: - case 2: - case 3: - case 7: - case 9: - case 25: - case 52: - case 59: - case 62: - case 627: - case 628: - case 629: - goto first_set_alt_56; - default: - goto first_set_done_57; - } - } - first_set_alt_55: { // 'await' primary if (p->error_indicator) { p->level--; @@ -16725,10 +15444,6 @@ await_primary_rule(Parser *p) D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'await' primary")); } - if (!p->call_invalid_rules) { - goto first_set_done_57; - } - first_set_alt_56: { // primary if (p->error_indicator) { p->level--; @@ -16748,11 +15463,6 @@ await_primary_rule(Parser *p) D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary")); } - if (!p->call_invalid_rules) { - goto first_set_done_57; - } - first_set_done_57: - ; _res = NULL; done: _PyPegen_insert_memo(p, _mark, await_primary_type, _res); @@ -16816,8 +15526,8 @@ primary_raw(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_58_result = NULL; - int _prefix_58_end = 0, _prefix_58_valid = 0; + expr_ty _prefix_40_result = NULL; + int _prefix_40_end = 0, _prefix_40_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -16827,30 +15537,6 @@ primary_raw(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 25: - case 52: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x1fULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // primary '.' NAME if (p->error_indicator) { p->level--; @@ -16861,7 +15547,7 @@ primary_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = primary_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // primary + (a = ((!p->call_invalid_rules && _prefix_40_valid) ? (p->mark = _prefix_40_end, _prefix_40_result) : (_prefix_40_result = primary_rule(p), _prefix_40_end = p->mark, _prefix_40_valid = 1, _prefix_40_result))) // primary && (_literal = _PyPegen_expect_token(p, 23)) // token='.' && @@ -16890,7 +15576,6 @@ primary_raw(Parser *p) D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME")); } - if (_first_set_mask & 0x2ULL) { // primary genexp if (p->error_indicator) { p->level--; @@ -16900,7 +15585,7 @@ primary_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = primary_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // primary + (a = ((!p->call_invalid_rules && _prefix_40_valid) ? (p->mark = _prefix_40_end, _prefix_40_result) : (_prefix_40_result = primary_rule(p), _prefix_40_end = p->mark, _prefix_40_valid = 1, _prefix_40_result))) // primary && (b = genexp_rule(p)) // genexp ) @@ -16927,7 +15612,6 @@ primary_raw(Parser *p) D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp")); } - if (_first_set_mask & 0x4ULL) { // primary '(' arguments? ')' if (p->error_indicator) { p->level--; @@ -16939,7 +15623,7 @@ primary_raw(Parser *p) expr_ty a; void *b; if ( - (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = primary_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // primary + (a = ((!p->call_invalid_rules && _prefix_40_valid) ? (p->mark = _prefix_40_end, _prefix_40_result) : (_prefix_40_result = primary_rule(p), _prefix_40_end = p->mark, _prefix_40_valid = 1, _prefix_40_result))) // primary && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -16970,7 +15654,6 @@ primary_raw(Parser *p) D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'")); } - if (_first_set_mask & 0x8ULL) { // primary '[' slices ']' if (p->error_indicator) { p->level--; @@ -16982,7 +15665,7 @@ primary_raw(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = primary_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // primary + (a = ((!p->call_invalid_rules && _prefix_40_valid) ? (p->mark = _prefix_40_end, _prefix_40_result) : (_prefix_40_result = primary_rule(p), _prefix_40_end = p->mark, _prefix_40_valid = 1, _prefix_40_result))) // primary && (_literal = _PyPegen_expect_token(p, 9)) // token='[' && @@ -17013,7 +15696,6 @@ primary_raw(Parser *p) D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'")); } - if (_first_set_mask & 0x10ULL) { // atom if (p->error_indicator) { p->level--; @@ -17061,43 +15743,6 @@ slices_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - _first_set_mask = 0x2ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 11: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // slice !',' if (p->error_indicator) { p->level--; @@ -17124,7 +15769,6 @@ slices_rule(Parser *p) D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','")); } - if (_first_set_mask & 0x2ULL) { // ','.(slice | starred_expression)+ ','? if (p->error_indicator) { p->level--; @@ -17190,42 +15834,6 @@ slice_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 11: - _first_set_mask = 0x1ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // expression? ':' expression? [':' expression?] if (p->error_indicator) { p->level--; @@ -17268,7 +15876,6 @@ slice_rule(Parser *p) D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]")); } - if (_first_set_mask & 0x2ULL) { // named_expression if (p->error_indicator) { p->level--; @@ -17331,36 +15938,6 @@ atom_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 1: - goto first_set_alt_59; - case 627: - goto first_set_alt_60; - case 629: - goto first_set_alt_61; - case 628: - goto first_set_alt_62; - case 3: - case 59: - case 62: - goto first_set_alt_63; - case 2: - goto first_set_alt_64; - case 7: - goto first_set_alt_65; - case 9: - goto first_set_alt_66; - case 25: - goto first_set_alt_67; - case 52: - goto first_set_alt_68; - default: - goto first_set_done_69; - } - } - first_set_alt_59: { // NAME if (p->error_indicator) { p->level--; @@ -17380,10 +15957,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_60: { // 'True' if (p->error_indicator) { p->level--; @@ -17417,10 +15990,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_61: { // 'False' if (p->error_indicator) { p->level--; @@ -17454,10 +16023,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_62: { // 'None' if (p->error_indicator) { p->level--; @@ -17491,10 +16056,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_63: { // &(STRING | FSTRING_START | TSTRING_START) strings if (p->error_indicator) { p->level--; @@ -17516,10 +16077,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&(STRING | FSTRING_START | TSTRING_START) strings")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_64: { // NUMBER if (p->error_indicator) { p->level--; @@ -17539,10 +16096,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_65: { // &'(' (genexp | tuple | group) if (p->error_indicator) { p->level--; @@ -17564,10 +16117,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (genexp | tuple | group)")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_66: { // &'[' (listcomp | list) if (p->error_indicator) { p->level--; @@ -17589,10 +16138,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (listcomp | list)")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_67: { // &'{' (dictcomp | setcomp | dict | set) if (p->error_indicator) { p->level--; @@ -17614,10 +16159,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dictcomp | setcomp | dict | set)")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_alt_68: { // '...' if (p->error_indicator) { p->level--; @@ -17651,11 +16192,6 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } - if (!p->call_invalid_rules) { - goto first_set_done_69; - } - first_set_done_69: - ; _res = NULL; done: p->level--; @@ -18909,14 +17445,14 @@ fstring_middle_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 25: - goto first_set_alt_70; + goto first_set_alt_41; case 60: - goto first_set_alt_71; + goto first_set_alt_42; default: - goto first_set_done_72; + goto first_set_done_43; } } - first_set_alt_70: + first_set_alt_41: { // fstring_replacement_field if (p->error_indicator) { p->level--; @@ -18937,9 +17473,9 @@ fstring_middle_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); } if (!p->call_invalid_rules) { - goto first_set_done_72; + goto first_set_done_43; } - first_set_alt_71: + first_set_alt_42: { // FSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -18965,9 +17501,9 @@ fstring_middle_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); } if (!p->call_invalid_rules) { - goto first_set_done_72; + goto first_set_done_43; } - first_set_done_72: + first_set_done_43: ; _res = NULL; done: @@ -19218,14 +17754,14 @@ fstring_format_spec_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 60: - goto first_set_alt_73; + goto first_set_alt_44; case 25: - goto first_set_alt_74; + goto first_set_alt_45; default: - goto first_set_done_75; + goto first_set_done_46; } } - first_set_alt_73: + first_set_alt_44: { // FSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -19251,9 +17787,9 @@ fstring_format_spec_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_MIDDLE")); } if (!p->call_invalid_rules) { - goto first_set_done_75; + goto first_set_done_46; } - first_set_alt_74: + first_set_alt_45: { // fstring_replacement_field if (p->error_indicator) { p->level--; @@ -19274,9 +17810,9 @@ fstring_format_spec_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring_replacement_field")); } if (!p->call_invalid_rules) { - goto first_set_done_75; + goto first_set_done_46; } - first_set_done_75: + first_set_done_46: ; _res = NULL; done: @@ -19466,14 +18002,14 @@ tstring_format_spec_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 63: - goto first_set_alt_76; + goto first_set_alt_47; case 25: - goto first_set_alt_77; + goto first_set_alt_48; default: - goto first_set_done_78; + goto first_set_done_49; } } - first_set_alt_76: + first_set_alt_47: { // TSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -19499,9 +18035,9 @@ tstring_format_spec_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_MIDDLE")); } if (!p->call_invalid_rules) { - goto first_set_done_78; + goto first_set_done_49; } - first_set_alt_77: + first_set_alt_48: { // tstring_format_spec_replacement_field if (p->error_indicator) { p->level--; @@ -19522,9 +18058,9 @@ tstring_format_spec_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring_format_spec_replacement_field")); } if (!p->call_invalid_rules) { - goto first_set_done_78; + goto first_set_done_49; } - first_set_done_78: + first_set_done_49: ; _res = NULL; done: @@ -19729,14 +18265,14 @@ tstring_middle_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 25: - goto first_set_alt_79; + goto first_set_alt_50; case 63: - goto first_set_alt_80; + goto first_set_alt_51; default: - goto first_set_done_81; + goto first_set_done_52; } } - first_set_alt_79: + first_set_alt_50: { // tstring_replacement_field if (p->error_indicator) { p->level--; @@ -19757,9 +18293,9 @@ tstring_middle_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring_replacement_field")); } if (!p->call_invalid_rules) { - goto first_set_done_81; + goto first_set_done_52; } - first_set_alt_80: + first_set_alt_51: { // TSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -19785,9 +18321,9 @@ tstring_middle_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_MIDDLE")); } if (!p->call_invalid_rules) { - goto first_set_done_81; + goto first_set_done_52; } - first_set_done_81: + first_set_done_52: ; _res = NULL; done: @@ -20089,50 +18625,6 @@ display_item_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 35: - _first_set_mask = 0x1ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x2ULL; - break; - case 16: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_starred_expression_unpacking_sequence if (p->error_indicator) { p->level--; @@ -20152,7 +18644,6 @@ display_item_rule(Parser *p) D(fprintf(stderr, "%*c%s display_item[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression_unpacking_sequence")); } - if (_first_set_mask & 0x2ULL) { // star_named_expression if (p->error_indicator) { p->level--; @@ -20545,43 +19036,6 @@ double_starred_kvpair_rule(Parser *p) } KeyValuePair* _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 35: - goto first_set_alt_82; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - goto first_set_alt_83; - default: - goto first_set_done_84; - } - } - first_set_alt_82: { // '**' bitwise_or if (p->error_indicator) { p->level--; @@ -20609,10 +19063,6 @@ double_starred_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or")); } - if (!p->call_invalid_rules) { - goto first_set_done_84; - } - first_set_alt_83: { // kvpair if (p->error_indicator) { p->level--; @@ -20632,11 +19082,6 @@ double_starred_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair")); } - if (!p->call_invalid_rules) { - goto first_set_done_84; - } - first_set_done_84: - ; _res = NULL; done: p->level--; @@ -21378,46 +19823,6 @@ arguments_rule(Parser *p) return _res; } int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 35: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // args ','? &')' if (p->error_indicator) { p->level--; @@ -21448,7 +19853,6 @@ arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'")); } - if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_arguments if (p->error_indicator) { p->level--; @@ -21499,43 +19903,6 @@ args_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 35: - _first_set_mask = 0x2ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs] if (p->error_indicator) { p->level--; @@ -21572,7 +19939,6 @@ args_rule(Parser *p) D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ [',' kwargs]")); } - if (_first_set_mask & 0x2ULL) { // kwargs if (p->error_indicator) { p->level--; @@ -21627,48 +19993,6 @@ kwargs_rule(Parser *p) } asdl_seq* _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - _first_set_mask = 0x1ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 35: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // ','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+] if (p->error_indicator) { p->level--; @@ -21696,7 +20020,6 @@ kwargs_rule(Parser *p) D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ [',' ','.kwarg_or_double_starred+]")); } - if (_first_set_mask & 0x2ULL) { // ','.kwarg_or_double_starred+ if (p->error_indicator) { p->level--; @@ -21864,45 +20187,6 @@ kwarg_or_starred_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 35: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x1ULL; - break; - case 1: - _first_set_mask = 0x3ULL; - break; - case 16: - _first_set_mask = 0x4ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_kwarg if (p->error_indicator) { p->level--; @@ -21922,7 +20206,6 @@ kwarg_or_starred_rule(Parser *p) D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg")); } - if (_first_set_mask & 0x2ULL) { // NAME '=' expression if (p->error_indicator) { p->level--; @@ -21962,7 +20245,6 @@ kwarg_or_starred_rule(Parser *p) D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression")); } - if (_first_set_mask & 0x4ULL) { // starred_expression if (p->error_indicator) { p->level--; @@ -22015,44 +20297,6 @@ kwarg_or_double_starred_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x1ULL; - break; - case 1: - _first_set_mask = 0x3ULL; - break; - case 35: - _first_set_mask = 0x5ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_kwarg if (p->error_indicator) { p->level--; @@ -22072,7 +20316,6 @@ kwarg_or_double_starred_rule(Parser *p) D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg")); } - if (_first_set_mask & 0x2ULL) { // NAME '=' expression if (p->error_indicator) { p->level--; @@ -22112,7 +20355,6 @@ kwarg_or_double_starred_rule(Parser *p) D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression")); } - if (_first_set_mask & 0x4ULL) { // '**' expression if (p->error_indicator) { p->level--; @@ -22168,8 +20410,8 @@ star_targets_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_85_result = NULL; - int _prefix_85_end = 0, _prefix_85_valid = 0; + expr_ty _prefix_53_result = NULL; + int _prefix_53_end = 0, _prefix_53_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->level--; @@ -22179,31 +20421,6 @@ star_targets_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 16: - case 25: - case 52: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // star_target !',' if (p->error_indicator) { p->level--; @@ -22212,7 +20429,7 @@ star_targets_rule(Parser *p) D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','")); expr_ty a; if ( - (a = ((!p->call_invalid_rules && _prefix_85_valid) ? (p->mark = _prefix_85_end, _prefix_85_result) : (_prefix_85_result = star_target_rule(p), _prefix_85_end = p->mark, _prefix_85_valid = 1, _prefix_85_result))) // star_target + (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = star_target_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // star_target && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=',' ) @@ -22230,7 +20447,6 @@ star_targets_rule(Parser *p) D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','")); } - if (_first_set_mask & 0x2ULL) { // star_target ((',' star_target))* ','? if (p->error_indicator) { p->level--; @@ -22242,7 +20458,7 @@ star_targets_rule(Parser *p) expr_ty a; asdl_seq * b; if ( - (a = ((!p->call_invalid_rules && _prefix_85_valid) ? (p->mark = _prefix_85_end, _prefix_85_result) : (_prefix_85_result = star_target_rule(p), _prefix_85_end = p->mark, _prefix_85_valid = 1, _prefix_85_result))) // star_target + (a = ((!p->call_invalid_rules && _prefix_53_valid) ? (p->mark = _prefix_53_end, _prefix_53_result) : (_prefix_53_result = star_target_rule(p), _prefix_53_end = p->mark, _prefix_53_valid = 1, _prefix_53_result))) // star_target && (b = _loop0_98_rule(p)) // ((',' star_target))* && @@ -22303,29 +20519,6 @@ star_target_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 16: - goto first_set_alt_86; - case 1: - case 2: - case 3: - case 7: - case 9: - case 25: - case 52: - case 59: - case 62: - case 627: - case 628: - case 629: - goto first_set_alt_87; - default: - goto first_set_done_88; - } - } - first_set_alt_86: { // '*' (!'*' star_target) if (p->error_indicator) { p->level--; @@ -22362,10 +20555,6 @@ star_target_rule(Parser *p) D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)")); } - if (!p->call_invalid_rules) { - goto first_set_done_88; - } - first_set_alt_87: { // target if (p->error_indicator) { p->level--; @@ -22385,11 +20574,6 @@ star_target_rule(Parser *p) D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target")); } - if (!p->call_invalid_rules) { - goto first_set_done_88; - } - first_set_done_88: - ; _res = NULL; done: _PyPegen_insert_memo(p, _mark, star_target_type, _res); @@ -22691,50 +20875,6 @@ type_expressions_rule(Parser *p) } asdl_expr_seq* _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - _first_set_mask = 0x18ULL; - break; - case 35: - _first_set_mask = 0x20ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x47ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // ','.expression+ ',' '*' expression ',' '**' expression if (p->error_indicator) { p->level--; @@ -22777,7 +20917,6 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression")); } - if (_first_set_mask & 0x2ULL) { // ','.expression+ ',' '*' expression if (p->error_indicator) { p->level--; @@ -22811,7 +20950,6 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression")); } - if (_first_set_mask & 0x4ULL) { // ','.expression+ ',' '**' expression if (p->error_indicator) { p->level--; @@ -22845,7 +20983,6 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression")); } - if (_first_set_mask & 0x8ULL) { // '*' expression ',' '**' expression if (p->error_indicator) { p->level--; @@ -22882,7 +21019,6 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression")); } - if (_first_set_mask & 0x10ULL) { // '*' expression if (p->error_indicator) { p->level--; @@ -22910,7 +21046,6 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression")); } - if (_first_set_mask & 0x20ULL) { // '**' expression if (p->error_indicator) { p->level--; @@ -22938,7 +21073,6 @@ type_expressions_rule(Parser *p) D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression")); } - if (_first_set_mask & 0x40ULL) { // ','.expression+ if (p->error_indicator) { p->level--; @@ -23101,50 +21235,6 @@ invalid_arguments_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - case 35: - _first_set_mask = 0x79ULL; - break; - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x7bULL; - break; - case 1: - _first_set_mask = 0x7fULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // ((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+ if (p->error_indicator) { p->level--; @@ -23175,7 +21265,6 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) | kwargs) ',' ','.(starred_expression !'=')+")); } - if (_first_set_mask & 0x2ULL) { // expression for_if_clauses ',' [args | expression for_if_clauses] if (p->error_indicator) { p->level--; @@ -23210,7 +21299,6 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]")); } - if (_first_set_mask & 0x4ULL) { // NAME '=' expression for_if_clauses if (p->error_indicator) { p->level--; @@ -23244,7 +21332,6 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses")); } - if (_first_set_mask & 0x8ULL) { // [(args ',')] NAME '=' &(',' | ')') if (p->error_indicator) { p->level--; @@ -23278,7 +21365,6 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "[(args ',')] NAME '=' &(',' | ')')")); } - if (_first_set_mask & 0x10ULL) { // args for_if_clauses if (p->error_indicator) { p->level--; @@ -23306,7 +21392,6 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses")); } - if (_first_set_mask & 0x20ULL) { // args ',' expression for_if_clauses if (p->error_indicator) { p->level--; @@ -23340,7 +21425,6 @@ invalid_arguments_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_arguments[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses")); } - if (_first_set_mask & 0x40ULL) { // args ',' args if (p->error_indicator) { p->level--; @@ -23394,51 +21478,6 @@ invalid_kwarg_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - _first_set_mask = 0x2ULL; - break; - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 721: - _first_set_mask = 0x4ULL; - break; - case 627: - case 628: - case 629: - _first_set_mask = 0x5ULL; - break; - case 35: - _first_set_mask = 0x8ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // ('True' | 'False' | 'None') '=' if (p->error_indicator) { p->level--; @@ -23466,7 +21505,6 @@ invalid_kwarg_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('True' | 'False' | 'None') '='")); } - if (_first_set_mask & 0x2ULL) { // NAME '=' expression for_if_clauses if (p->error_indicator) { p->level--; @@ -23500,7 +21538,6 @@ invalid_kwarg_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression for_if_clauses")); } - if (_first_set_mask & 0x4ULL) { // !(NAME '=') expression '=' if (p->error_indicator) { p->level--; @@ -23530,7 +21567,6 @@ invalid_kwarg_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME '=') expression '='")); } - if (_first_set_mask & 0x8ULL) { // '**' expression '=' expression if (p->error_indicator) { p->level--; @@ -23589,8 +21625,8 @@ expression_without_invalid_rule(Parser *p) } expr_ty _res = NULL; int _mark = p->mark; - expr_ty _prefix_89_result = NULL; - int _prefix_89_end = 0, _prefix_89_valid = 0; + expr_ty _prefix_54_result = NULL; + int _prefix_54_end = 0, _prefix_54_valid = 0; if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { p->error_indicator = 1; p->call_invalid_rules = _prev_call_invalid; @@ -23601,38 +21637,6 @@ expression_without_invalid_rule(Parser *p) UNUSED(_start_lineno); // Only used by EXTRA macro int _start_col_offset = p->tokens[_mark]->col_offset; UNUSED(_start_col_offset); // Only used by EXTRA macro - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - case 622: - _first_set_mask = 0x4ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // disjunction 'if' disjunction 'else' expression if (p->error_indicator) { p->call_invalid_rules = _prev_call_invalid; @@ -23646,7 +21650,7 @@ expression_without_invalid_rule(Parser *p) expr_ty b; expr_ty c; if ( - (a = ((!p->call_invalid_rules && _prefix_89_valid) ? (p->mark = _prefix_89_end, _prefix_89_result) : (_prefix_89_result = disjunction_rule(p), _prefix_89_end = p->mark, _prefix_89_valid = 1, _prefix_89_result))) // disjunction + (a = ((!p->call_invalid_rules && _prefix_54_valid) ? (p->mark = _prefix_54_end, _prefix_54_result) : (_prefix_54_result = disjunction_rule(p), _prefix_54_end = p->mark, _prefix_54_valid = 1, _prefix_54_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -23681,7 +21685,6 @@ expression_without_invalid_rule(Parser *p) D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression")); } - if (_first_set_mask & 0x2ULL) { // disjunction if (p->error_indicator) { p->call_invalid_rules = _prev_call_invalid; @@ -23691,7 +21694,7 @@ expression_without_invalid_rule(Parser *p) D(fprintf(stderr, "%*c> expression_without_invalid[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction")); expr_ty disjunction_var; if ( - (disjunction_var = ((!p->call_invalid_rules && _prefix_89_valid) ? (p->mark = _prefix_89_end, _prefix_89_result) : (_prefix_89_result = disjunction_rule(p), _prefix_89_end = p->mark, _prefix_89_valid = 1, _prefix_89_result))) // disjunction + (disjunction_var = ((!p->call_invalid_rules && _prefix_54_valid) ? (p->mark = _prefix_54_end, _prefix_54_result) : (_prefix_54_result = disjunction_rule(p), _prefix_54_end = p->mark, _prefix_54_valid = 1, _prefix_54_result))) // disjunction ) { D(fprintf(stderr, "%*c+ expression_without_invalid[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction")); @@ -23702,7 +21705,6 @@ expression_without_invalid_rule(Parser *p) D(fprintf(stderr, "%*c%s expression_without_invalid[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction")); } - if (_first_set_mask & 0x4ULL) { // lambdef if (p->error_indicator) { p->call_invalid_rules = _prev_call_invalid; @@ -23800,14 +21802,14 @@ invalid_type_param_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 16: - goto first_set_alt_90; + goto first_set_alt_55; case 35: - goto first_set_alt_91; + goto first_set_alt_56; default: - goto first_set_done_92; + goto first_set_done_57; } } - first_set_alt_90: + first_set_alt_55: { // '*' NAME ':' expression if (p->error_indicator) { p->level--; @@ -23842,9 +21844,9 @@ invalid_type_param_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' NAME ':' expression")); } if (!p->call_invalid_rules) { - goto first_set_done_92; + goto first_set_done_57; } - first_set_alt_91: + first_set_alt_56: { // '**' NAME ':' expression if (p->error_indicator) { p->level--; @@ -23879,9 +21881,9 @@ invalid_type_param_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' NAME ':' expression")); } if (!p->call_invalid_rules) { - goto first_set_done_92; + goto first_set_done_57; } - first_set_done_92: + first_set_done_57: ; _res = NULL; done: @@ -23909,54 +21911,8 @@ invalid_expression_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - expr_ty _prefix_93_result = NULL; - int _prefix_93_end = 0, _prefix_93_valid = 0; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - _first_set_mask = 0xcULL; - break; - case 2: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0xeULL; - break; - case 3: - _first_set_mask = 0xfULL; - break; - case 527: - case 528: - case 529: - _first_set_mask = 0x10ULL; - break; - case 622: - _first_set_mask = 0x60ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) + expr_ty _prefix_58_result = NULL; + int _prefix_58_end = 0, _prefix_58_valid = 0; { // STRING ((!STRING expression_without_invalid))+ STRING if (p->error_indicator) { p->level--; @@ -23987,7 +21943,6 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING ((!STRING expression_without_invalid))+ STRING")); } - if (_first_set_mask & 0x2ULL) { // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid if (p->error_indicator) { p->level--; @@ -24017,7 +21972,6 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid")); } - if (_first_set_mask & 0x4ULL) { // disjunction 'if' disjunction !('else' | ':') if (p->error_indicator) { p->level--; @@ -24028,7 +21982,7 @@ invalid_expression_rule(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_93_valid) ? (p->mark = _prefix_93_end, _prefix_93_result) : (_prefix_93_result = disjunction_rule(p), _prefix_93_end = p->mark, _prefix_93_valid = 1, _prefix_93_result))) // disjunction + (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = disjunction_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -24050,7 +22004,6 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } - if (_first_set_mask & 0x8ULL) { // disjunction 'if' disjunction 'else' !expression if (p->error_indicator) { p->level--; @@ -24062,7 +22015,7 @@ invalid_expression_rule(Parser *p) expr_ty a; expr_ty b; if ( - (a = ((!p->call_invalid_rules && _prefix_93_valid) ? (p->mark = _prefix_93_end, _prefix_93_result) : (_prefix_93_result = disjunction_rule(p), _prefix_93_end = p->mark, _prefix_93_valid = 1, _prefix_93_result))) // disjunction + (a = ((!p->call_invalid_rules && _prefix_58_valid) ? (p->mark = _prefix_58_end, _prefix_58_result) : (_prefix_58_result = disjunction_rule(p), _prefix_58_end = p->mark, _prefix_58_valid = 1, _prefix_58_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -24086,7 +22039,6 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' !expression")); } - if (_first_set_mask & 0x10ULL) { // (pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt if (p->error_indicator) { p->level--; @@ -24123,7 +22075,6 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt")); } - if (_first_set_mask & 0x20ULL) { // 'lambda' lambda_params? ':' &FSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -24157,7 +22108,6 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_params? ':' &FSTRING_MIDDLE")); } - if (_first_set_mask & 0x40ULL) { // 'lambda' lambda_params? ':' &TSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -24212,42 +22162,8 @@ invalid_if_expression_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - expr_ty _prefix_94_result = NULL; - int _prefix_94_end = 0, _prefix_94_valid = 0; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 598: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) + expr_ty _prefix_59_result = NULL; + int _prefix_59_end = 0, _prefix_59_valid = 0; { // disjunction 'if' disjunction 'else' '*' if (p->error_indicator) { p->level--; @@ -24260,7 +22176,7 @@ invalid_if_expression_rule(Parser *p) expr_ty b; expr_ty disjunction_var; if ( - (disjunction_var = ((!p->call_invalid_rules && _prefix_94_valid) ? (p->mark = _prefix_94_end, _prefix_94_result) : (_prefix_94_result = disjunction_rule(p), _prefix_94_end = p->mark, _prefix_94_valid = 1, _prefix_94_result))) // disjunction + (disjunction_var = ((!p->call_invalid_rules && _prefix_59_valid) ? (p->mark = _prefix_59_end, _prefix_59_result) : (_prefix_59_result = disjunction_rule(p), _prefix_59_end = p->mark, _prefix_59_valid = 1, _prefix_59_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -24284,7 +22200,6 @@ invalid_if_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_if_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' '*'")); } - if (_first_set_mask & 0x2ULL) { // disjunction 'if' disjunction 'else' '**' if (p->error_indicator) { p->level--; @@ -24297,7 +22212,7 @@ invalid_if_expression_rule(Parser *p) expr_ty b; expr_ty disjunction_var; if ( - (disjunction_var = ((!p->call_invalid_rules && _prefix_94_valid) ? (p->mark = _prefix_94_end, _prefix_94_result) : (_prefix_94_result = disjunction_rule(p), _prefix_94_end = p->mark, _prefix_94_valid = 1, _prefix_94_result))) // disjunction + (disjunction_var = ((!p->call_invalid_rules && _prefix_59_valid) ? (p->mark = _prefix_59_end, _prefix_59_result) : (_prefix_59_result = disjunction_rule(p), _prefix_59_end = p->mark, _prefix_59_valid = 1, _prefix_59_result))) // disjunction && (_keyword = _PyPegen_expect_token(p, 700)) // token='if' && @@ -24347,48 +22262,6 @@ invalid_named_expression_rule(Parser *p) return _res; } int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 7: - case 9: - case 25: - case 527: - case 528: - case 529: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x1ULL; - break; - case 2: - case 3: - case 14: - case 15: - case 31: - case 52: - case 59: - case 62: - case 598: - _first_set_mask = 0x5ULL; - break; - case 1: - _first_set_mask = 0x7ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // expression ':=' expression if (p->error_indicator) { p->level--; @@ -24419,7 +22292,6 @@ invalid_named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression")); } - if (_first_set_mask & 0x2ULL) { // NAME '=' bitwise_or !('=' | ':=') if (p->error_indicator) { p->level--; @@ -24452,7 +22324,6 @@ invalid_named_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')")); } - if (_first_set_mask & 0x4ULL) { // !(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=') if (p->error_indicator) { p->level--; @@ -24513,54 +22384,6 @@ invalid_assignment_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 588: - _first_set_mask = 0x10ULL; - break; - case 14: - case 15: - case 31: - case 527: - case 528: - case 529: - case 598: - case 622: - case 721: - _first_set_mask = 0x2eULL; - break; - case 16: - _first_set_mask = 0x3aULL; - break; - case 1: - case 2: - case 3: - case 25: - case 52: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x3eULL; - break; - case 7: - case 9: - _first_set_mask = 0x3fULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // invalid_ann_assign_target ':' expression if (p->error_indicator) { p->level--; @@ -24591,7 +22414,6 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ann_assign_target ':' expression")); } - if (_first_set_mask & 0x2ULL) { // star_named_expression ',' star_named_expressions* ':' expression if (p->error_indicator) { p->level--; @@ -24628,7 +22450,6 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression")); } - if (_first_set_mask & 0x4ULL) { // expression ':' expression if (p->error_indicator) { p->level--; @@ -24659,7 +22480,6 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression")); } - if (_first_set_mask & 0x8ULL) { // ((star_targets '='))* star_expressions '=' if (p->error_indicator) { p->level--; @@ -24690,7 +22510,6 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='")); } - if (_first_set_mask & 0x10ULL) { // ((star_targets '='))* yield_expr '=' if (p->error_indicator) { p->level--; @@ -24721,7 +22540,6 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='")); } - if (_first_set_mask & 0x20ULL) { // star_expressions augassign annotated_rhs if (p->error_indicator) { p->level--; @@ -27311,14 +25129,14 @@ invalid_import_from_targets_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 1: - goto first_set_alt_95; + goto first_set_alt_60; case 4: - goto first_set_alt_96; + goto first_set_alt_61; default: - goto first_set_done_97; + goto first_set_done_62; } } - first_set_alt_95: + first_set_alt_60: { // import_from_as_names ',' NEWLINE if (p->error_indicator) { p->level--; @@ -27350,9 +25168,9 @@ invalid_import_from_targets_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ',' NEWLINE")); } if (!p->call_invalid_rules) { - goto first_set_done_97; + goto first_set_done_62; } - first_set_alt_96: + first_set_alt_61: { // NEWLINE if (p->error_indicator) { p->level--; @@ -27378,9 +25196,9 @@ invalid_import_from_targets_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } if (!p->call_invalid_rules) { - goto first_set_done_97; + goto first_set_done_62; } - first_set_done_97: + first_set_done_62: ; _res = NULL; done: @@ -28753,36 +26571,6 @@ invalid_as_pattern_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // or_pattern 'as' "_" if (p->error_indicator) { p->level--; @@ -28813,7 +26601,6 @@ invalid_as_pattern_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_as_pattern[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "or_pattern 'as' \"_\"")); } - if (_first_set_mask & 0x2ULL) { // or_pattern 'as' expression if (p->error_indicator) { p->level--; @@ -29850,50 +27637,6 @@ invalid_double_starred_kvpairs_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - _first_set_mask = 0x1ULL; - break; - case 35: - _first_set_mask = 0x3ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x7ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // invalid_kvpair_unpacking ','? if (p->error_indicator) { p->level--; @@ -29917,7 +27660,6 @@ invalid_double_starred_kvpairs_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kvpair_unpacking ','?")); } - if (_first_set_mask & 0x2ULL) { // ','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking) if (p->error_indicator) { p->level--; @@ -29943,7 +27685,6 @@ invalid_double_starred_kvpairs_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ',' (invalid_kvpair | invalid_kvpair_unpacking)")); } - if (_first_set_mask & 0x4ULL) { // expression ':' &('}' | ',') if (p->error_indicator) { p->level--; @@ -29997,52 +27738,8 @@ invalid_kvpair_unpacking_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - expr_ty _prefix_98_result = NULL; - int _prefix_98_end = 0, _prefix_98_valid = 0; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - _first_set_mask = 0x2ULL; - break; - case 35: - _first_set_mask = 0x5ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x18ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) + expr_ty _prefix_63_result = NULL; + int _prefix_63_end = 0, _prefix_63_valid = 0; { // '**' if_expression if (p->error_indicator) { p->level--; @@ -30070,7 +27767,6 @@ invalid_kvpair_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' if_expression")); } - if (_first_set_mask & 0x2ULL) { // '*' bitwise_or ':' expression if (p->error_indicator) { p->level--; @@ -30104,7 +27800,6 @@ invalid_kvpair_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or ':' expression")); } - if (_first_set_mask & 0x4ULL) { // '**' bitwise_or ':' expression if (p->error_indicator) { p->level--; @@ -30138,7 +27833,6 @@ invalid_kvpair_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or ':' expression")); } - if (_first_set_mask & 0x8ULL) { // expression ':' '*' bitwise_or if (p->error_indicator) { p->level--; @@ -30150,7 +27844,7 @@ invalid_kvpair_unpacking_rule(Parser *p) expr_ty b; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_98_valid) ? (p->mark = _prefix_98_end, _prefix_98_result) : (_prefix_98_result = expression_rule(p), _prefix_98_end = p->mark, _prefix_98_valid = 1, _prefix_98_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_63_valid) ? (p->mark = _prefix_63_end, _prefix_63_result) : (_prefix_63_result = expression_rule(p), _prefix_63_end = p->mark, _prefix_63_valid = 1, _prefix_63_result))) // expression && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -30172,7 +27866,6 @@ invalid_kvpair_unpacking_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair_unpacking[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or")); } - if (_first_set_mask & 0x10ULL) { // expression ':' '**' bitwise_or if (p->error_indicator) { p->level--; @@ -30184,7 +27877,7 @@ invalid_kvpair_unpacking_rule(Parser *p) expr_ty b; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_98_valid) ? (p->mark = _prefix_98_end, _prefix_98_result) : (_prefix_98_result = expression_rule(p), _prefix_98_end = p->mark, _prefix_98_valid = 1, _prefix_98_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_63_valid) ? (p->mark = _prefix_63_end, _prefix_63_result) : (_prefix_63_result = expression_rule(p), _prefix_63_end = p->mark, _prefix_63_valid = 1, _prefix_63_result))) // expression && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -30229,46 +27922,8 @@ invalid_kvpair_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - expr_ty _prefix_99_result = NULL; - int _prefix_99_end = 0, _prefix_99_valid = 0; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0xfULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) + expr_ty _prefix_64_result = NULL; + int _prefix_64_end = 0, _prefix_64_valid = 0; { // expression !(':') if (p->error_indicator) { p->level--; @@ -30277,7 +27932,7 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !(':')")); expr_ty a; if ( - (a = ((!p->call_invalid_rules && _prefix_99_valid) ? (p->mark = _prefix_99_end, _prefix_99_result) : (_prefix_99_result = expression_rule(p), _prefix_99_end = p->mark, _prefix_99_valid = 1, _prefix_99_result))) // expression + (a = ((!p->call_invalid_rules && _prefix_64_valid) ? (p->mark = _prefix_64_end, _prefix_64_result) : (_prefix_64_result = expression_rule(p), _prefix_64_end = p->mark, _prefix_64_valid = 1, _prefix_64_result))) // expression && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 11) // token=(':') ) @@ -30295,7 +27950,6 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !(':')")); } - if (_first_set_mask & 0x2ULL) { // expression ':' '*' bitwise_or if (p->error_indicator) { p->level--; @@ -30307,7 +27961,7 @@ invalid_kvpair_rule(Parser *p) expr_ty bitwise_or_var; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_99_valid) ? (p->mark = _prefix_99_end, _prefix_99_result) : (_prefix_99_result = expression_rule(p), _prefix_99_end = p->mark, _prefix_99_valid = 1, _prefix_99_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_64_valid) ? (p->mark = _prefix_64_end, _prefix_64_result) : (_prefix_64_result = expression_rule(p), _prefix_64_end = p->mark, _prefix_64_valid = 1, _prefix_64_result))) // expression && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -30329,7 +27983,6 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '*' bitwise_or")); } - if (_first_set_mask & 0x4ULL) { // expression ':' '**' bitwise_or if (p->error_indicator) { p->level--; @@ -30341,7 +27994,7 @@ invalid_kvpair_rule(Parser *p) expr_ty bitwise_or_var; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_99_valid) ? (p->mark = _prefix_99_end, _prefix_99_result) : (_prefix_99_result = expression_rule(p), _prefix_99_end = p->mark, _prefix_99_valid = 1, _prefix_99_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_64_valid) ? (p->mark = _prefix_64_end, _prefix_64_result) : (_prefix_64_result = expression_rule(p), _prefix_64_end = p->mark, _prefix_64_valid = 1, _prefix_64_result))) // expression && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -30363,7 +28016,6 @@ invalid_kvpair_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_kvpair[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' '**' bitwise_or")); } - if (_first_set_mask & 0x8ULL) { // expression ':' &('}' | ',') if (p->error_indicator) { p->level--; @@ -30373,7 +28025,7 @@ invalid_kvpair_rule(Parser *p) Token * a; expr_ty expression_var; if ( - (expression_var = ((!p->call_invalid_rules && _prefix_99_valid) ? (p->mark = _prefix_99_end, _prefix_99_result) : (_prefix_99_result = expression_rule(p), _prefix_99_end = p->mark, _prefix_99_valid = 1, _prefix_99_result))) // expression + (expression_var = ((!p->call_invalid_rules && _prefix_64_valid) ? (p->mark = _prefix_64_end, _prefix_64_result) : (_prefix_64_result = expression_rule(p), _prefix_64_end = p->mark, _prefix_64_valid = 1, _prefix_64_result))) // expression && (a = _PyPegen_expect_token(p, 11)) // token=':' && @@ -30521,14 +28173,14 @@ invalid_starred_expression_unpacking_sequence_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 35: - goto first_set_alt_100; + goto first_set_alt_65; case 16: - goto first_set_alt_101; + goto first_set_alt_66; default: - goto first_set_done_102; + goto first_set_done_67; } } - first_set_alt_100: + first_set_alt_65: { // '**' bitwise_or if (p->error_indicator) { p->level--; @@ -30557,9 +28209,9 @@ invalid_starred_expression_unpacking_sequence_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or")); } if (!p->call_invalid_rules) { - goto first_set_done_102; + goto first_set_done_67; } - first_set_alt_101: + first_set_alt_66: if (p->call_invalid_rules) { // invalid_starred_expression_unpacking if (p->error_indicator) { p->level--; @@ -30580,9 +28232,9 @@ invalid_starred_expression_unpacking_sequence_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_starred_expression_unpacking")); } if (!p->call_invalid_rules) { - goto first_set_done_102; + goto first_set_done_67; } - first_set_done_102: + first_set_done_67: ; _res = NULL; done: @@ -31636,14 +29288,14 @@ invalid_string_tstring_concat_rule(Parser *p) switch (_current_token_type) { case 3: case 59: - goto first_set_alt_103; + goto first_set_alt_68; case 62: - goto first_set_alt_104; + goto first_set_alt_69; default: - goto first_set_done_105; + goto first_set_done_70; } } - first_set_alt_103: + first_set_alt_68: { // ((fstring | string))+ tstring if (p->error_indicator) { p->level--; @@ -31672,9 +29324,9 @@ invalid_string_tstring_concat_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((fstring | string))+ tstring")); } if (!p->call_invalid_rules) { - goto first_set_done_105; + goto first_set_done_70; } - first_set_alt_104: + first_set_alt_69: { // tstring+ (fstring | string) if (p->error_indicator) { p->level--; @@ -31703,9 +29355,9 @@ invalid_string_tstring_concat_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tstring+ (fstring | string)")); } if (!p->call_invalid_rules) { - goto first_set_done_105; + goto first_set_done_70; } - first_set_done_105: + first_set_done_70: ; _res = NULL; done: @@ -32239,16 +29891,16 @@ _tmp_5_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 651: - goto first_set_alt_106; + goto first_set_alt_71; case 650: - goto first_set_alt_107; + goto first_set_alt_72; case 1: - goto first_set_alt_108; + goto first_set_alt_73; default: - goto first_set_done_109; + goto first_set_done_74; } } - first_set_alt_106: + first_set_alt_71: { // 'import' if (p->error_indicator) { p->level--; @@ -32269,9 +29921,9 @@ _tmp_5_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'")); } if (!p->call_invalid_rules) { - goto first_set_done_109; + goto first_set_done_74; } - first_set_alt_107: + first_set_alt_72: { // 'from' if (p->error_indicator) { p->level--; @@ -32292,9 +29944,9 @@ _tmp_5_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'")); } if (!p->call_invalid_rules) { - goto first_set_done_109; + goto first_set_done_74; } - first_set_alt_108: + first_set_alt_73: { // "lazy" if (p->error_indicator) { p->level--; @@ -32315,9 +29967,9 @@ _tmp_5_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "\"lazy\"")); } if (!p->call_invalid_rules) { - goto first_set_done_109; + goto first_set_done_74; } - first_set_done_109: + first_set_done_74: ; _res = NULL; done: @@ -32347,16 +29999,16 @@ _tmp_6_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 717: - goto first_set_alt_110; + goto first_set_alt_75; case 49: - goto first_set_alt_111; + goto first_set_alt_76; case 716: - goto first_set_alt_112; + goto first_set_alt_77; default: - goto first_set_done_113; + goto first_set_done_78; } } - first_set_alt_110: + first_set_alt_75: { // 'def' if (p->error_indicator) { p->level--; @@ -32377,9 +30029,9 @@ _tmp_6_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'")); } if (!p->call_invalid_rules) { - goto first_set_done_113; + goto first_set_done_78; } - first_set_alt_111: + first_set_alt_76: { // '@' if (p->error_indicator) { p->level--; @@ -32400,9 +30052,9 @@ _tmp_6_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } if (!p->call_invalid_rules) { - goto first_set_done_113; + goto first_set_done_78; } - first_set_alt_112: + first_set_alt_77: { // 'async' if (p->error_indicator) { p->level--; @@ -32423,9 +30075,9 @@ _tmp_6_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); } if (!p->call_invalid_rules) { - goto first_set_done_113; + goto first_set_done_78; } - first_set_done_113: + first_set_done_78: ; _res = NULL; done: @@ -32455,14 +30107,14 @@ _tmp_7_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 719: - goto first_set_alt_114; + goto first_set_alt_79; case 49: - goto first_set_alt_115; + goto first_set_alt_80; default: - goto first_set_done_116; + goto first_set_done_81; } } - first_set_alt_114: + first_set_alt_79: { // 'class' if (p->error_indicator) { p->level--; @@ -32483,9 +30135,9 @@ _tmp_7_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'")); } if (!p->call_invalid_rules) { - goto first_set_done_116; + goto first_set_done_81; } - first_set_alt_115: + first_set_alt_80: { // '@' if (p->error_indicator) { p->level--; @@ -32506,9 +30158,9 @@ _tmp_7_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } if (!p->call_invalid_rules) { - goto first_set_done_116; + goto first_set_done_81; } - first_set_done_116: + first_set_done_81: ; _res = NULL; done: @@ -32538,14 +30190,14 @@ _tmp_8_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 665: - goto first_set_alt_117; + goto first_set_alt_82; case 716: - goto first_set_alt_118; + goto first_set_alt_83; default: - goto first_set_done_119; + goto first_set_done_84; } } - first_set_alt_117: + first_set_alt_82: { // 'with' if (p->error_indicator) { p->level--; @@ -32566,9 +30218,9 @@ _tmp_8_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'")); } if (!p->call_invalid_rules) { - goto first_set_done_119; + goto first_set_done_84; } - first_set_alt_118: + first_set_alt_83: { // 'async' if (p->error_indicator) { p->level--; @@ -32589,9 +30241,9 @@ _tmp_8_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); } if (!p->call_invalid_rules) { - goto first_set_done_119; + goto first_set_done_84; } - first_set_done_119: + first_set_done_84: ; _res = NULL; done: @@ -32621,14 +30273,14 @@ _tmp_9_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 712: - goto first_set_alt_120; + goto first_set_alt_85; case 716: - goto first_set_alt_121; + goto first_set_alt_86; default: - goto first_set_done_122; + goto first_set_done_87; } } - first_set_alt_120: + first_set_alt_85: { // 'for' if (p->error_indicator) { p->level--; @@ -32649,9 +30301,9 @@ _tmp_9_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'")); } if (!p->call_invalid_rules) { - goto first_set_done_122; + goto first_set_done_87; } - first_set_alt_121: + first_set_alt_86: { // 'async' if (p->error_indicator) { p->level--; @@ -32672,9 +30324,9 @@ _tmp_9_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'async'")); } if (!p->call_invalid_rules) { - goto first_set_done_122; + goto first_set_done_87; } - first_set_done_122: + first_set_done_87: ; _res = NULL; done: @@ -32741,37 +30393,6 @@ _tmp_11_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 9: - case 25: - case 52: - case 59: - case 62: - case 627: - case 628: - case 629: - _first_set_mask = 0x2ULL; - break; - case 7: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // '(' single_target ')' if (p->error_indicator) { p->level--; @@ -32802,7 +30423,6 @@ _tmp_11_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_11[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'")); } - if (_first_set_mask & 0x2ULL) { // attribute_or_subscript_target if (p->error_indicator) { p->level--; @@ -33039,14 +30659,14 @@ _tmp_15_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 13: - goto first_set_alt_123; + goto first_set_alt_88; case 4: - goto first_set_alt_124; + goto first_set_alt_89; default: - goto first_set_done_125; + goto first_set_done_90; } } - first_set_alt_123: + first_set_alt_88: { // ';' if (p->error_indicator) { p->level--; @@ -33067,9 +30687,9 @@ _tmp_15_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'")); } if (!p->call_invalid_rules) { - goto first_set_done_125; + goto first_set_done_90; } - first_set_alt_124: + first_set_alt_89: { // NEWLINE if (p->error_indicator) { p->level--; @@ -33090,9 +30710,9 @@ _tmp_15_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } if (!p->call_invalid_rules) { - goto first_set_done_125; + goto first_set_done_90; } - first_set_done_125: + first_set_done_90: ; _res = NULL; done: @@ -34288,16 +31908,16 @@ _tmp_35_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 12: - goto first_set_alt_126; + goto first_set_alt_91; case 8: - goto first_set_alt_127; + goto first_set_alt_92; case 11: - goto first_set_alt_128; + goto first_set_alt_93; default: - goto first_set_done_129; + goto first_set_done_94; } } - first_set_alt_126: + first_set_alt_91: { // ',' if (p->error_indicator) { p->level--; @@ -34318,9 +31938,9 @@ _tmp_35_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_129; + goto first_set_done_94; } - first_set_alt_127: + first_set_alt_92: { // ')' if (p->error_indicator) { p->level--; @@ -34341,9 +31961,9 @@ _tmp_35_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } if (!p->call_invalid_rules) { - goto first_set_done_129; + goto first_set_done_94; } - first_set_alt_128: + first_set_alt_93: { // ':' if (p->error_indicator) { p->level--; @@ -34364,9 +31984,9 @@ _tmp_35_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } if (!p->call_invalid_rules) { - goto first_set_done_129; + goto first_set_done_94; } - first_set_done_129: + first_set_done_94: ; _res = NULL; done: @@ -34729,14 +32349,14 @@ _tmp_41_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 14: - goto first_set_alt_130; + goto first_set_alt_95; case 15: - goto first_set_alt_131; + goto first_set_alt_96; default: - goto first_set_done_132; + goto first_set_done_97; } } - first_set_alt_130: + first_set_alt_95: { // '+' if (p->error_indicator) { p->level--; @@ -34757,9 +32377,9 @@ _tmp_41_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } if (!p->call_invalid_rules) { - goto first_set_done_132; + goto first_set_done_97; } - first_set_alt_131: + first_set_alt_96: { // '-' if (p->error_indicator) { p->level--; @@ -34780,9 +32400,9 @@ _tmp_41_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } if (!p->call_invalid_rules) { - goto first_set_done_132; + goto first_set_done_97; } - first_set_done_132: + first_set_done_97: ; _res = NULL; done: @@ -34812,16 +32432,16 @@ _tmp_42_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 3: - goto first_set_alt_133; + goto first_set_alt_98; case 59: - goto first_set_alt_134; + goto first_set_alt_99; case 62: - goto first_set_alt_135; + goto first_set_alt_100; default: - goto first_set_done_136; + goto first_set_done_101; } } - first_set_alt_133: + first_set_alt_98: { // STRING if (p->error_indicator) { p->level--; @@ -34842,9 +32462,9 @@ _tmp_42_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING")); } if (!p->call_invalid_rules) { - goto first_set_done_136; + goto first_set_done_101; } - first_set_alt_134: + first_set_alt_99: { // FSTRING_START if (p->error_indicator) { p->level--; @@ -34865,9 +32485,9 @@ _tmp_42_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "FSTRING_START")); } if (!p->call_invalid_rules) { - goto first_set_done_136; + goto first_set_done_101; } - first_set_alt_135: + first_set_alt_100: { // TSTRING_START if (p->error_indicator) { p->level--; @@ -34888,9 +32508,9 @@ _tmp_42_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TSTRING_START")); } if (!p->call_invalid_rules) { - goto first_set_done_136; + goto first_set_done_101; } - first_set_done_136: + first_set_done_101: ; _res = NULL; done: @@ -34920,16 +32540,16 @@ _tmp_43_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 23: - goto first_set_alt_137; + goto first_set_alt_102; case 7: - goto first_set_alt_138; + goto first_set_alt_103; case 22: - goto first_set_alt_139; + goto first_set_alt_104; default: - goto first_set_done_140; + goto first_set_done_105; } } - first_set_alt_137: + first_set_alt_102: { // '.' if (p->error_indicator) { p->level--; @@ -34950,9 +32570,9 @@ _tmp_43_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } if (!p->call_invalid_rules) { - goto first_set_done_140; + goto first_set_done_105; } - first_set_alt_138: + first_set_alt_103: { // '(' if (p->error_indicator) { p->level--; @@ -34973,9 +32593,9 @@ _tmp_43_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } if (!p->call_invalid_rules) { - goto first_set_done_140; + goto first_set_done_105; } - first_set_alt_139: + first_set_alt_104: { // '=' if (p->error_indicator) { p->level--; @@ -34996,9 +32616,9 @@ _tmp_43_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } if (!p->call_invalid_rules) { - goto first_set_done_140; + goto first_set_done_105; } - first_set_done_140: + first_set_done_105: ; _res = NULL; done: @@ -35253,31 +32873,6 @@ _tmp_48_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 2: - case 3: - case 14: - case 15: - case 59: - case 62: - case 627: - case 628: - case 629: - goto first_set_alt_141; - case 1: - goto first_set_alt_142; - default: - goto first_set_done_143; - } - } - first_set_alt_141: { // literal_expr if (p->error_indicator) { p->level--; @@ -35297,10 +32892,6 @@ _tmp_48_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_48[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "literal_expr")); } - if (!p->call_invalid_rules) { - goto first_set_done_143; - } - first_set_alt_142: { // attr if (p->error_indicator) { p->level--; @@ -35320,11 +32911,6 @@ _tmp_48_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_48[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "attr")); } - if (!p->call_invalid_rules) { - goto first_set_done_143; - } - first_set_done_143: - ; _res = NULL; done: p->level--; @@ -36678,43 +34264,6 @@ _tmp_69_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 588: - goto first_set_alt_144; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - goto first_set_alt_145; - default: - goto first_set_done_146; - } - } - first_set_alt_144: { // yield_expr if (p->error_indicator) { p->level--; @@ -36734,10 +34283,6 @@ _tmp_69_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } - if (!p->call_invalid_rules) { - goto first_set_done_146; - } - first_set_alt_145: { // named_expression if (p->error_indicator) { p->level--; @@ -36757,11 +34302,6 @@ _tmp_69_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_69[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression")); } - if (!p->call_invalid_rules) { - goto first_set_done_146; - } - first_set_done_146: - ; _res = NULL; done: p->level--; @@ -38032,49 +35572,6 @@ _tmp_89_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x2ULL; - break; - case 1: - _first_set_mask = 0x3ULL; - break; - case 16: - _first_set_mask = 0x4ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // assignment_expression if (p->error_indicator) { p->level--; @@ -38094,7 +35591,6 @@ _tmp_89_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } - if (_first_set_mask & 0x2ULL) { // expression !':=' if (p->error_indicator) { p->level--; @@ -38116,7 +35612,6 @@ _tmp_89_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_89[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } - if (_first_set_mask & 0x4ULL) { // starred_expression if (p->error_indicator) { p->level--; @@ -38715,16 +36210,16 @@ _tmp_100_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 7: - goto first_set_alt_147; + goto first_set_alt_106; case 9: - goto first_set_alt_148; + goto first_set_alt_107; case 23: - goto first_set_alt_149; + goto first_set_alt_108; default: - goto first_set_done_150; + goto first_set_done_109; } } - first_set_alt_147: + first_set_alt_106: { // '(' if (p->error_indicator) { p->level--; @@ -38745,9 +36240,9 @@ _tmp_100_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } if (!p->call_invalid_rules) { - goto first_set_done_150; + goto first_set_done_109; } - first_set_alt_148: + first_set_alt_107: { // '[' if (p->error_indicator) { p->level--; @@ -38768,9 +36263,9 @@ _tmp_100_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } if (!p->call_invalid_rules) { - goto first_set_done_150; + goto first_set_done_109; } - first_set_alt_149: + first_set_alt_108: { // '.' if (p->error_indicator) { p->level--; @@ -38791,9 +36286,9 @@ _tmp_100_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } if (!p->call_invalid_rules) { - goto first_set_done_150; + goto first_set_done_109; } - first_set_done_150: + first_set_done_109: ; _res = NULL; done: @@ -39091,48 +36586,6 @@ _tmp_106_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 35: - _first_set_mask = 0x2ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 16: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // (','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs) if (p->error_indicator) { p->level--; @@ -39152,7 +36605,6 @@ _tmp_106_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_106[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)")); } - if (_first_set_mask & 0x2ULL) { // kwargs if (p->error_indicator) { p->level--; @@ -39308,48 +36760,6 @@ _tmp_109_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - case 35: - _first_set_mask = 0x1ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // args if (p->error_indicator) { p->level--; @@ -39369,7 +36779,6 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_109[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args")); } - if (_first_set_mask & 0x2ULL) { // expression for_if_clauses if (p->error_indicator) { p->level--; @@ -39461,14 +36870,14 @@ _tmp_111_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 12: - goto first_set_alt_151; + goto first_set_alt_110; case 8: - goto first_set_alt_152; + goto first_set_alt_111; default: - goto first_set_done_153; + goto first_set_done_112; } } - first_set_alt_151: + first_set_alt_110: { // ',' if (p->error_indicator) { p->level--; @@ -39489,9 +36898,9 @@ _tmp_111_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_153; + goto first_set_done_112; } - first_set_alt_152: + first_set_alt_111: { // ')' if (p->error_indicator) { p->level--; @@ -39512,9 +36921,9 @@ _tmp_111_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } if (!p->call_invalid_rules) { - goto first_set_done_153; + goto first_set_done_112; } - first_set_done_153: + first_set_done_112: ; _res = NULL; done: @@ -39544,16 +36953,16 @@ _tmp_112_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 627: - goto first_set_alt_154; + goto first_set_alt_113; case 629: - goto first_set_alt_155; + goto first_set_alt_114; case 628: - goto first_set_alt_156; + goto first_set_alt_115; default: - goto first_set_done_157; + goto first_set_done_116; } } - first_set_alt_154: + first_set_alt_113: { // 'True' if (p->error_indicator) { p->level--; @@ -39574,9 +36983,9 @@ _tmp_112_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } if (!p->call_invalid_rules) { - goto first_set_done_157; + goto first_set_done_116; } - first_set_alt_155: + first_set_alt_114: { // 'False' if (p->error_indicator) { p->level--; @@ -39597,9 +37006,9 @@ _tmp_112_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } if (!p->call_invalid_rules) { - goto first_set_done_157; + goto first_set_done_116; } - first_set_alt_156: + first_set_alt_115: { // 'None' if (p->error_indicator) { p->level--; @@ -39620,9 +37029,9 @@ _tmp_112_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } if (!p->call_invalid_rules) { - goto first_set_done_157; + goto first_set_done_116; } - first_set_done_157: + first_set_done_116: ; _res = NULL; done: @@ -39762,17 +37171,18 @@ _tmp_115_rule(Parser *p) return NULL; } int _current_token_type = p->tokens[_mark]->type; + unsigned long long _first_set_mask = ~0ULL; if (!p->call_invalid_rules) { + _first_set_mask = 0; switch (_current_token_type) { case 1: - goto first_set_alt_158; - case 58: - goto first_set_alt_159; + _first_set_mask = 0x3ULL; + break; default: - goto first_set_done_160; + break; } } - first_set_alt_158: + if (_first_set_mask & 0x1ULL) { // NAME STRING if (p->error_indicator) { p->level--; @@ -39795,10 +37205,7 @@ _tmp_115_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME STRING")); } - if (!p->call_invalid_rules) { - goto first_set_done_160; - } - first_set_alt_159: + if (_first_set_mask & 0x2ULL) { // SOFT_KEYWORD if (p->error_indicator) { p->level--; @@ -39818,11 +37225,6 @@ _tmp_115_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "SOFT_KEYWORD")); } - if (!p->call_invalid_rules) { - goto first_set_done_160; - } - first_set_done_160: - ; _res = NULL; done: p->level--; @@ -39851,14 +37253,14 @@ _tmp_116_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 704: - goto first_set_alt_161; + goto first_set_alt_117; case 11: - goto first_set_alt_162; + goto first_set_alt_118; default: - goto first_set_done_163; + goto first_set_done_119; } } - first_set_alt_161: + first_set_alt_117: { // 'else' if (p->error_indicator) { p->level--; @@ -39879,9 +37281,9 @@ _tmp_116_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'")); } if (!p->call_invalid_rules) { - goto first_set_done_163; + goto first_set_done_119; } - first_set_alt_162: + first_set_alt_118: { // ':' if (p->error_indicator) { p->level--; @@ -39902,9 +37304,9 @@ _tmp_116_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } if (!p->call_invalid_rules) { - goto first_set_done_163; + goto first_set_done_119; } - first_set_done_163: + first_set_done_119: ; _res = NULL; done: @@ -39934,16 +37336,16 @@ _tmp_117_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 527: - goto first_set_alt_164; + goto first_set_alt_120; case 528: - goto first_set_alt_165; + goto first_set_alt_121; case 529: - goto first_set_alt_166; + goto first_set_alt_122; default: - goto first_set_done_167; + goto first_set_done_123; } } - first_set_alt_164: + first_set_alt_120: { // pass_stmt if (p->error_indicator) { p->level--; @@ -39964,9 +37366,9 @@ _tmp_117_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); } if (!p->call_invalid_rules) { - goto first_set_done_167; + goto first_set_done_123; } - first_set_alt_165: + first_set_alt_121: { // break_stmt if (p->error_indicator) { p->level--; @@ -39987,9 +37389,9 @@ _tmp_117_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); } if (!p->call_invalid_rules) { - goto first_set_done_167; + goto first_set_done_123; } - first_set_alt_166: + first_set_alt_122: { // continue_stmt if (p->error_indicator) { p->level--; @@ -40010,9 +37412,9 @@ _tmp_117_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); } if (!p->call_invalid_rules) { - goto first_set_done_167; + goto first_set_done_123; } - first_set_done_167: + first_set_done_123: ; _res = NULL; done: @@ -40042,14 +37444,14 @@ _tmp_118_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 22: - goto first_set_alt_168; + goto first_set_alt_124; case 53: - goto first_set_alt_169; + goto first_set_alt_125; default: - goto first_set_done_170; + goto first_set_done_126; } } - first_set_alt_168: + first_set_alt_124: { // '=' if (p->error_indicator) { p->level--; @@ -40070,9 +37472,9 @@ _tmp_118_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } if (!p->call_invalid_rules) { - goto first_set_done_170; + goto first_set_done_126; } - first_set_alt_169: + first_set_alt_125: { // ':=' if (p->error_indicator) { p->level--; @@ -40093,9 +37495,9 @@ _tmp_118_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } if (!p->call_invalid_rules) { - goto first_set_done_170; + goto first_set_done_126; } - first_set_done_170: + first_set_done_126: ; _res = NULL; done: @@ -40430,14 +37832,14 @@ _tmp_122_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 9: - goto first_set_alt_171; + goto first_set_alt_127; case 25: - goto first_set_alt_172; + goto first_set_alt_128; default: - goto first_set_done_173; + goto first_set_done_129; } } - first_set_alt_171: + first_set_alt_127: { // '[' if (p->error_indicator) { p->level--; @@ -40458,9 +37860,9 @@ _tmp_122_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } if (!p->call_invalid_rules) { - goto first_set_done_173; + goto first_set_done_129; } - first_set_alt_172: + first_set_alt_128: { // '{' if (p->error_indicator) { p->level--; @@ -40481,9 +37883,9 @@ _tmp_122_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } if (!p->call_invalid_rules) { - goto first_set_done_173; + goto first_set_done_129; } - first_set_done_173: + first_set_done_129: ; _res = NULL; done: @@ -40589,14 +37991,14 @@ _tmp_124_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 12: - goto first_set_alt_174; + goto first_set_alt_130; case 1: - goto first_set_alt_175; + goto first_set_alt_131; default: - goto first_set_done_176; + goto first_set_done_132; } } - first_set_alt_174: + first_set_alt_130: { // ',' if (p->error_indicator) { p->level--; @@ -40617,9 +38019,9 @@ _tmp_124_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_176; + goto first_set_done_132; } - first_set_alt_175: + first_set_alt_131: { // param_no_default if (p->error_indicator) { p->level--; @@ -40640,9 +38042,9 @@ _tmp_124_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } if (!p->call_invalid_rules) { - goto first_set_done_176; + goto first_set_done_132; } - first_set_done_176: + first_set_done_132: ; _res = NULL; done: @@ -40672,14 +38074,14 @@ _tmp_125_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 8: - goto first_set_alt_177; + goto first_set_alt_133; case 12: - goto first_set_alt_178; + goto first_set_alt_134; default: - goto first_set_done_179; + goto first_set_done_135; } } - first_set_alt_177: + first_set_alt_133: { // ')' if (p->error_indicator) { p->level--; @@ -40700,9 +38102,9 @@ _tmp_125_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } if (!p->call_invalid_rules) { - goto first_set_done_179; + goto first_set_done_135; } - first_set_alt_178: + first_set_alt_134: { // ',' if (p->error_indicator) { p->level--; @@ -40723,9 +38125,9 @@ _tmp_125_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_179; + goto first_set_done_135; } - first_set_done_179: + first_set_done_135: ; _res = NULL; done: @@ -40755,14 +38157,14 @@ _tmp_126_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 8: - goto first_set_alt_180; + goto first_set_alt_136; case 12: - goto first_set_alt_181; + goto first_set_alt_137; default: - goto first_set_done_182; + goto first_set_done_138; } } - first_set_alt_180: + first_set_alt_136: { // ')' if (p->error_indicator) { p->level--; @@ -40783,9 +38185,9 @@ _tmp_126_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } if (!p->call_invalid_rules) { - goto first_set_done_182; + goto first_set_done_138; } - first_set_alt_181: + first_set_alt_137: { // ',' (')' | '**') if (p->error_indicator) { p->level--; @@ -40809,9 +38211,9 @@ _tmp_126_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')")); } if (!p->call_invalid_rules) { - goto first_set_done_182; + goto first_set_done_138; } - first_set_done_182: + first_set_done_138: ; _res = NULL; done: @@ -40841,14 +38243,14 @@ _tmp_127_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 1: - goto first_set_alt_183; + goto first_set_alt_139; case 12: - goto first_set_alt_184; + goto first_set_alt_140; default: - goto first_set_done_185; + goto first_set_done_141; } } - first_set_alt_183: + first_set_alt_139: { // param_no_default if (p->error_indicator) { p->level--; @@ -40869,9 +38271,9 @@ _tmp_127_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } if (!p->call_invalid_rules) { - goto first_set_done_185; + goto first_set_done_141; } - first_set_alt_184: + first_set_alt_140: { // ',' if (p->error_indicator) { p->level--; @@ -40892,9 +38294,9 @@ _tmp_127_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_185; + goto first_set_done_141; } - first_set_done_185: + first_set_done_141: ; _res = NULL; done: @@ -40924,16 +38326,16 @@ _tmp_128_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 16: - goto first_set_alt_186; + goto first_set_alt_142; case 35: - goto first_set_alt_187; + goto first_set_alt_143; case 17: - goto first_set_alt_188; + goto first_set_alt_144; default: - goto first_set_done_189; + goto first_set_done_145; } } - first_set_alt_186: + first_set_alt_142: { // '*' if (p->error_indicator) { p->level--; @@ -40954,9 +38356,9 @@ _tmp_128_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } if (!p->call_invalid_rules) { - goto first_set_done_189; + goto first_set_done_145; } - first_set_alt_187: + first_set_alt_143: { // '**' if (p->error_indicator) { p->level--; @@ -40977,9 +38379,9 @@ _tmp_128_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } if (!p->call_invalid_rules) { - goto first_set_done_189; + goto first_set_done_145; } - first_set_alt_188: + first_set_alt_144: { // '/' if (p->error_indicator) { p->level--; @@ -41000,9 +38402,9 @@ _tmp_128_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } if (!p->call_invalid_rules) { - goto first_set_done_189; + goto first_set_done_145; } - first_set_done_189: + first_set_done_145: ; _res = NULL; done: @@ -41225,14 +38627,14 @@ _tmp_132_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 12: - goto first_set_alt_190; + goto first_set_alt_146; case 1: - goto first_set_alt_191; + goto first_set_alt_147; default: - goto first_set_done_192; + goto first_set_done_148; } } - first_set_alt_190: + first_set_alt_146: { // ',' if (p->error_indicator) { p->level--; @@ -41253,9 +38655,9 @@ _tmp_132_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_192; + goto first_set_done_148; } - first_set_alt_191: + first_set_alt_147: { // lambda_param_no_default if (p->error_indicator) { p->level--; @@ -41276,9 +38678,9 @@ _tmp_132_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } if (!p->call_invalid_rules) { - goto first_set_done_192; + goto first_set_done_148; } - first_set_done_192: + first_set_done_148: ; _res = NULL; done: @@ -41308,14 +38710,14 @@ _tmp_133_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 11: - goto first_set_alt_193; + goto first_set_alt_149; case 12: - goto first_set_alt_194; + goto first_set_alt_150; default: - goto first_set_done_195; + goto first_set_done_151; } } - first_set_alt_193: + first_set_alt_149: { // ':' if (p->error_indicator) { p->level--; @@ -41336,9 +38738,9 @@ _tmp_133_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } if (!p->call_invalid_rules) { - goto first_set_done_195; + goto first_set_done_151; } - first_set_alt_194: + first_set_alt_150: { // ',' (':' | '**') if (p->error_indicator) { p->level--; @@ -41362,9 +38764,9 @@ _tmp_133_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')")); } if (!p->call_invalid_rules) { - goto first_set_done_195; + goto first_set_done_151; } - first_set_done_195: + first_set_done_151: ; _res = NULL; done: @@ -41394,14 +38796,14 @@ _tmp_134_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 1: - goto first_set_alt_196; + goto first_set_alt_152; case 12: - goto first_set_alt_197; + goto first_set_alt_153; default: - goto first_set_done_198; + goto first_set_done_154; } } - first_set_alt_196: + first_set_alt_152: { // lambda_param_no_default if (p->error_indicator) { p->level--; @@ -41422,9 +38824,9 @@ _tmp_134_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } if (!p->call_invalid_rules) { - goto first_set_done_198; + goto first_set_done_154; } - first_set_alt_197: + first_set_alt_153: { // ',' if (p->error_indicator) { p->level--; @@ -41445,9 +38847,9 @@ _tmp_134_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_198; + goto first_set_done_154; } - first_set_done_198: + first_set_done_154: ; _res = NULL; done: @@ -41914,14 +39316,14 @@ _tmp_143_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 695: - goto first_set_alt_199; + goto first_set_alt_155; case 691: - goto first_set_alt_200; + goto first_set_alt_156; default: - goto first_set_done_201; + goto first_set_done_157; } } - first_set_alt_199: + first_set_alt_155: { // 'except' if (p->error_indicator) { p->level--; @@ -41942,9 +39344,9 @@ _tmp_143_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'")); } if (!p->call_invalid_rules) { - goto first_set_done_201; + goto first_set_done_157; } - first_set_alt_200: + first_set_alt_156: { // 'finally' if (p->error_indicator) { p->level--; @@ -41965,9 +39367,9 @@ _tmp_143_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'")); } if (!p->call_invalid_rules) { - goto first_set_done_201; + goto first_set_done_157; } - first_set_done_201: + first_set_done_157: ; _res = NULL; done: @@ -42106,14 +39508,14 @@ _tmp_146_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 4: - goto first_set_alt_202; + goto first_set_alt_158; case 11: - goto first_set_alt_203; + goto first_set_alt_159; default: - goto first_set_done_204; + goto first_set_done_160; } } - first_set_alt_202: + first_set_alt_158: { // NEWLINE if (p->error_indicator) { p->level--; @@ -42134,9 +39536,9 @@ _tmp_146_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } if (!p->call_invalid_rules) { - goto first_set_done_204; + goto first_set_done_160; } - first_set_alt_203: + first_set_alt_159: { // ':' if (p->error_indicator) { p->level--; @@ -42157,9 +39559,9 @@ _tmp_146_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } if (!p->call_invalid_rules) { - goto first_set_done_204; + goto first_set_done_160; } - first_set_done_204: + first_set_done_160: ; _res = NULL; done: @@ -42262,48 +39664,6 @@ _tmp_149_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 16: - case 35: - _first_set_mask = 0x2ULL; - break; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) if (p->call_invalid_rules) { // invalid_kvpair if (p->error_indicator) { p->level--; @@ -42323,7 +39683,6 @@ _tmp_149_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kvpair")); } - if (_first_set_mask & 0x2ULL) if (p->call_invalid_rules) { // invalid_kvpair_unpacking if (p->error_indicator) { p->level--; @@ -42371,14 +39730,14 @@ _tmp_150_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 26: - goto first_set_alt_205; + goto first_set_alt_161; case 12: - goto first_set_alt_206; + goto first_set_alt_162; default: - goto first_set_done_207; + goto first_set_done_163; } } - first_set_alt_205: + first_set_alt_161: { // '}' if (p->error_indicator) { p->level--; @@ -42399,9 +39758,9 @@ _tmp_150_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } if (!p->call_invalid_rules) { - goto first_set_done_207; + goto first_set_done_163; } - first_set_alt_206: + first_set_alt_162: { // ',' if (p->error_indicator) { p->level--; @@ -42422,9 +39781,9 @@ _tmp_150_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_207; + goto first_set_done_163; } - first_set_done_207: + first_set_done_163: ; _res = NULL; done: @@ -42454,18 +39813,18 @@ _tmp_151_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 22: - goto first_set_alt_208; + goto first_set_alt_164; case 54: - goto first_set_alt_209; + goto first_set_alt_165; case 11: - goto first_set_alt_210; + goto first_set_alt_166; case 26: - goto first_set_alt_211; + goto first_set_alt_167; default: - goto first_set_done_212; + goto first_set_done_168; } } - first_set_alt_208: + first_set_alt_164: { // '=' if (p->error_indicator) { p->level--; @@ -42486,9 +39845,9 @@ _tmp_151_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } if (!p->call_invalid_rules) { - goto first_set_done_212; + goto first_set_done_168; } - first_set_alt_209: + first_set_alt_165: { // '!' if (p->error_indicator) { p->level--; @@ -42509,9 +39868,9 @@ _tmp_151_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } if (!p->call_invalid_rules) { - goto first_set_done_212; + goto first_set_done_168; } - first_set_alt_210: + first_set_alt_166: { // ':' if (p->error_indicator) { p->level--; @@ -42532,9 +39891,9 @@ _tmp_151_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } if (!p->call_invalid_rules) { - goto first_set_done_212; + goto first_set_done_168; } - first_set_alt_211: + first_set_alt_167: { // '}' if (p->error_indicator) { p->level--; @@ -42555,9 +39914,9 @@ _tmp_151_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } if (!p->call_invalid_rules) { - goto first_set_done_212; + goto first_set_done_168; } - first_set_done_212: + first_set_done_168: ; _res = NULL; done: @@ -42587,16 +39946,16 @@ _tmp_152_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 54: - goto first_set_alt_213; + goto first_set_alt_169; case 11: - goto first_set_alt_214; + goto first_set_alt_170; case 26: - goto first_set_alt_215; + goto first_set_alt_171; default: - goto first_set_done_216; + goto first_set_done_172; } } - first_set_alt_213: + first_set_alt_169: { // '!' if (p->error_indicator) { p->level--; @@ -42617,9 +39976,9 @@ _tmp_152_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } if (!p->call_invalid_rules) { - goto first_set_done_216; + goto first_set_done_172; } - first_set_alt_214: + first_set_alt_170: { // ':' if (p->error_indicator) { p->level--; @@ -42640,9 +39999,9 @@ _tmp_152_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } if (!p->call_invalid_rules) { - goto first_set_done_216; + goto first_set_done_172; } - first_set_alt_215: + first_set_alt_171: { // '}' if (p->error_indicator) { p->level--; @@ -42663,9 +40022,9 @@ _tmp_152_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } if (!p->call_invalid_rules) { - goto first_set_done_216; + goto first_set_done_172; } - first_set_done_216: + first_set_done_172: ; _res = NULL; done: @@ -42736,14 +40095,14 @@ _tmp_154_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 11: - goto first_set_alt_217; + goto first_set_alt_173; case 26: - goto first_set_alt_218; + goto first_set_alt_174; default: - goto first_set_done_219; + goto first_set_done_175; } } - first_set_alt_217: + first_set_alt_173: { // ':' if (p->error_indicator) { p->level--; @@ -42764,9 +40123,9 @@ _tmp_154_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } if (!p->call_invalid_rules) { - goto first_set_done_219; + goto first_set_done_175; } - first_set_alt_218: + first_set_alt_174: { // '}' if (p->error_indicator) { p->level--; @@ -42787,9 +40146,9 @@ _tmp_154_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } if (!p->call_invalid_rules) { - goto first_set_done_219; + goto first_set_done_175; } - first_set_done_219: + first_set_done_175: ; _res = NULL; done: @@ -42819,14 +40178,14 @@ _tmp_155_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 59: - goto first_set_alt_220; + goto first_set_alt_176; case 3: - goto first_set_alt_221; + goto first_set_alt_177; default: - goto first_set_done_222; + goto first_set_done_178; } } - first_set_alt_220: + first_set_alt_176: { // fstring if (p->error_indicator) { p->level--; @@ -42847,9 +40206,9 @@ _tmp_155_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring")); } if (!p->call_invalid_rules) { - goto first_set_done_222; + goto first_set_done_178; } - first_set_alt_221: + first_set_alt_177: { // string if (p->error_indicator) { p->level--; @@ -42870,9 +40229,9 @@ _tmp_155_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "string")); } if (!p->call_invalid_rules) { - goto first_set_done_222; + goto first_set_done_178; } - first_set_done_222: + first_set_done_178: ; _res = NULL; done: @@ -42902,24 +40261,24 @@ _tmp_156_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 14: - goto first_set_alt_223; + goto first_set_alt_179; case 15: - goto first_set_alt_224; + goto first_set_alt_180; case 16: - goto first_set_alt_225; + goto first_set_alt_181; case 17: - goto first_set_alt_226; + goto first_set_alt_182; case 24: - goto first_set_alt_227; + goto first_set_alt_183; case 47: - goto first_set_alt_228; + goto first_set_alt_184; case 49: - goto first_set_alt_229; + goto first_set_alt_185; default: - goto first_set_done_230; + goto first_set_done_186; } } - first_set_alt_223: + first_set_alt_179: { // '+' if (p->error_indicator) { p->level--; @@ -42940,9 +40299,9 @@ _tmp_156_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } if (!p->call_invalid_rules) { - goto first_set_done_230; + goto first_set_done_186; } - first_set_alt_224: + first_set_alt_180: { // '-' if (p->error_indicator) { p->level--; @@ -42963,9 +40322,9 @@ _tmp_156_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } if (!p->call_invalid_rules) { - goto first_set_done_230; + goto first_set_done_186; } - first_set_alt_225: + first_set_alt_181: { // '*' if (p->error_indicator) { p->level--; @@ -42986,9 +40345,9 @@ _tmp_156_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } if (!p->call_invalid_rules) { - goto first_set_done_230; + goto first_set_done_186; } - first_set_alt_226: + first_set_alt_182: { // '/' if (p->error_indicator) { p->level--; @@ -43009,9 +40368,9 @@ _tmp_156_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } if (!p->call_invalid_rules) { - goto first_set_done_230; + goto first_set_done_186; } - first_set_alt_227: + first_set_alt_183: { // '%' if (p->error_indicator) { p->level--; @@ -43032,9 +40391,9 @@ _tmp_156_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%'")); } if (!p->call_invalid_rules) { - goto first_set_done_230; + goto first_set_done_186; } - first_set_alt_228: + first_set_alt_184: { // '//' if (p->error_indicator) { p->level--; @@ -43055,9 +40414,9 @@ _tmp_156_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//'")); } if (!p->call_invalid_rules) { - goto first_set_done_230; + goto first_set_done_186; } - first_set_alt_229: + first_set_alt_185: { // '@' if (p->error_indicator) { p->level--; @@ -43078,9 +40437,9 @@ _tmp_156_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } if (!p->call_invalid_rules) { - goto first_set_done_230; + goto first_set_done_186; } - first_set_done_230: + first_set_done_186: ; _res = NULL; done: @@ -43110,16 +40469,16 @@ _tmp_157_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 14: - goto first_set_alt_231; + goto first_set_alt_187; case 15: - goto first_set_alt_232; + goto first_set_alt_188; case 31: - goto first_set_alt_233; + goto first_set_alt_189; default: - goto first_set_done_234; + goto first_set_done_190; } } - first_set_alt_231: + first_set_alt_187: { // '+' if (p->error_indicator) { p->level--; @@ -43140,9 +40499,9 @@ _tmp_157_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } if (!p->call_invalid_rules) { - goto first_set_done_234; + goto first_set_done_190; } - first_set_alt_232: + first_set_alt_188: { // '-' if (p->error_indicator) { p->level--; @@ -43163,9 +40522,9 @@ _tmp_157_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } if (!p->call_invalid_rules) { - goto first_set_done_234; + goto first_set_done_190; } - first_set_alt_233: + first_set_alt_189: { // '~' if (p->error_indicator) { p->level--; @@ -43186,9 +40545,9 @@ _tmp_157_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~'")); } if (!p->call_invalid_rules) { - goto first_set_done_234; + goto first_set_done_190; } - first_set_done_234: + first_set_done_190: ; _res = NULL; done: @@ -43264,14 +40623,14 @@ _tmp_159_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 23: - goto first_set_alt_235; + goto first_set_alt_191; case 52: - goto first_set_alt_236; + goto first_set_alt_192; default: - goto first_set_done_237; + goto first_set_done_193; } } - first_set_alt_235: + first_set_alt_191: { // '.' if (p->error_indicator) { p->level--; @@ -43292,9 +40651,9 @@ _tmp_159_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } if (!p->call_invalid_rules) { - goto first_set_done_237; + goto first_set_done_193; } - first_set_alt_236: + first_set_alt_192: { // '...' if (p->error_indicator) { p->level--; @@ -43315,9 +40674,9 @@ _tmp_159_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } if (!p->call_invalid_rules) { - goto first_set_done_237; + goto first_set_done_193; } - first_set_done_237: + first_set_done_193: ; _res = NULL; done: @@ -43525,44 +40884,6 @@ _tmp_164_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 1: - case 2: - case 3: - case 7: - case 9: - case 11: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - goto first_set_alt_238; - case 16: - goto first_set_alt_239; - default: - goto first_set_done_240; - } - } - first_set_alt_238: { // slice if (p->error_indicator) { p->level--; @@ -43582,10 +40903,6 @@ _tmp_164_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); } - if (!p->call_invalid_rules) { - goto first_set_done_240; - } - first_set_alt_239: { // starred_expression if (p->error_indicator) { p->level--; @@ -43605,11 +40922,6 @@ _tmp_164_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } - if (!p->call_invalid_rules) { - goto first_set_done_240; - } - first_set_done_240: - ; _res = NULL; done: p->level--; @@ -43675,43 +40987,6 @@ _tmp_166_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - if (!p->call_invalid_rules) { - switch (_current_token_type) { - case 16: - goto first_set_alt_241; - case 1: - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - goto first_set_alt_242; - default: - goto first_set_done_243; - } - } - first_set_alt_241: { // starred_expression if (p->error_indicator) { p->level--; @@ -43731,10 +41006,6 @@ _tmp_166_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } - if (!p->call_invalid_rules) { - goto first_set_done_243; - } - first_set_alt_242: { // (assignment_expression | expression !':=') !'=' if (p->error_indicator) { p->level--; @@ -43756,11 +41027,6 @@ _tmp_166_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } - if (!p->call_invalid_rules) { - goto first_set_done_243; - } - first_set_done_243: - ; _res = NULL; done: p->level--; @@ -43960,14 +41226,14 @@ _tmp_171_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 8: - goto first_set_alt_244; + goto first_set_alt_194; case 35: - goto first_set_alt_245; + goto first_set_alt_195; default: - goto first_set_done_246; + goto first_set_done_196; } } - first_set_alt_244: + first_set_alt_194: { // ')' if (p->error_indicator) { p->level--; @@ -43988,9 +41254,9 @@ _tmp_171_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } if (!p->call_invalid_rules) { - goto first_set_done_246; + goto first_set_done_196; } - first_set_alt_245: + first_set_alt_195: { // '**' if (p->error_indicator) { p->level--; @@ -44011,9 +41277,9 @@ _tmp_171_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } if (!p->call_invalid_rules) { - goto first_set_done_246; + goto first_set_done_196; } - first_set_done_246: + first_set_done_196: ; _res = NULL; done: @@ -44043,14 +41309,14 @@ _tmp_172_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 11: - goto first_set_alt_247; + goto first_set_alt_197; case 35: - goto first_set_alt_248; + goto first_set_alt_198; default: - goto first_set_done_249; + goto first_set_done_199; } } - first_set_alt_247: + first_set_alt_197: { // ':' if (p->error_indicator) { p->level--; @@ -44071,9 +41337,9 @@ _tmp_172_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } if (!p->call_invalid_rules) { - goto first_set_done_249; + goto first_set_done_199; } - first_set_alt_248: + first_set_alt_198: { // '**' if (p->error_indicator) { p->level--; @@ -44094,9 +41360,9 @@ _tmp_172_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } if (!p->call_invalid_rules) { - goto first_set_done_249; + goto first_set_done_199; } - first_set_done_249: + first_set_done_199: ; _res = NULL; done: @@ -44193,18 +41459,18 @@ _tmp_174_rule(Parser *p) if (!p->call_invalid_rules) { switch (_current_token_type) { case 12: - goto first_set_alt_250; + goto first_set_alt_200; case 8: - goto first_set_alt_251; + goto first_set_alt_201; case 13: - goto first_set_alt_252; + goto first_set_alt_202; case 4: - goto first_set_alt_253; + goto first_set_alt_203; default: - goto first_set_done_254; + goto first_set_done_204; } } - first_set_alt_250: + first_set_alt_200: { // ',' if (p->error_indicator) { p->level--; @@ -44225,9 +41491,9 @@ _tmp_174_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } if (!p->call_invalid_rules) { - goto first_set_done_254; + goto first_set_done_204; } - first_set_alt_251: + first_set_alt_201: { // ')' if (p->error_indicator) { p->level--; @@ -44248,9 +41514,9 @@ _tmp_174_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } if (!p->call_invalid_rules) { - goto first_set_done_254; + goto first_set_done_204; } - first_set_alt_252: + first_set_alt_202: { // ';' if (p->error_indicator) { p->level--; @@ -44271,9 +41537,9 @@ _tmp_174_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'")); } if (!p->call_invalid_rules) { - goto first_set_done_254; + goto first_set_done_204; } - first_set_alt_253: + first_set_alt_203: { // NEWLINE if (p->error_indicator) { p->level--; @@ -44294,9 +41560,9 @@ _tmp_174_rule(Parser *p) p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } if (!p->call_invalid_rules) { - goto first_set_done_254; + goto first_set_done_204; } - first_set_done_254: + first_set_done_204: ; _res = NULL; done: @@ -44401,46 +41667,6 @@ _tmp_177_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _current_token_type = p->tokens[_mark]->type; - unsigned long long _first_set_mask = ~0ULL; - if (!p->call_invalid_rules) { - _first_set_mask = 0; - switch (_current_token_type) { - case 2: - case 3: - case 7: - case 9: - case 14: - case 15: - case 25: - case 31: - case 52: - case 59: - case 62: - case 527: - case 528: - case 529: - case 598: - case 622: - case 627: - case 628: - case 629: - case 721: - _first_set_mask = 0x2ULL; - break; - case 1: - _first_set_mask = 0x3ULL; - break; - default: - break; - } - } - if (_first_set_mask & 0x1ULL) { // assignment_expression if (p->error_indicator) { p->level--; @@ -44460,7 +41686,6 @@ _tmp_177_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_177[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment_expression")); } - if (_first_set_mask & 0x2ULL) { // expression !':=' if (p->error_indicator) { p->level--; diff --git a/Tools/peg_generator/pegen/c_generator.py b/Tools/peg_generator/pegen/c_generator.py index ffa548f41ed3664..105a9ae6aa80407 100644 --- a/Tools/peg_generator/pegen/c_generator.py +++ b/Tools/peg_generator/pegen/c_generator.py @@ -28,7 +28,7 @@ Rule, StringLeaf, ) -from pegen.parser_generator import NullableVisitor, ParserGenerator +from pegen.parser_generator import ParserGenerator EXTENSION_PREFIX = """\ #include "pegen.h" @@ -429,7 +429,6 @@ def __init__( self.consuming = consuming_rules(self.rules) self.prefix_calls: dict[int, tuple[str, str, str]] = {} self.first_set_calculator: FirstSetCalculator | None = None - self.nullable_visitor: NullableVisitor | None = None def add_level(self) -> None: self.print("if (p->level++ == MAXSTACK || _PyPegen_stack_exhausted(p)) {") @@ -492,9 +491,6 @@ def generate(self, filename: str) -> None: self.collect_rules() self.first_set_calculator = FirstSetCalculator(self.all_rules) self.first_set_calculator.calculate() - self.nullable_visitor = NullableVisitor(self.all_rules) - for rule in self.all_rules.values(): - self.nullable_visitor.visit(rule) basename = os.path.basename(filename) self.print(f"// @generated by pegen from {basename}") header = self.grammar.metas.get("header", EXTENSION_PREFIX) @@ -885,8 +881,8 @@ def _visit_rhs_with_first_set_mask( self.print("_first_set_mask = 0;") self.print("switch (_current_token_type) {") with self.indent(): - for mask, token_types in sorted(masks.items()): - for token_type in sorted(token_types): + for mask, mask_token_types in sorted(masks.items()): + for token_type in sorted(mask_token_types): self.print(f"case {token_type}:") with self.indent(): self.print(f"_first_set_mask = 0x{mask:x}ULL;") @@ -902,6 +898,8 @@ def _visit_rhs_with_first_set_mask( self.visit(alt, is_loop=False, is_gather=is_gather, rulename=rulename) def _first_set_token_type(self, terminal: str) -> int | None: + if terminal == "SOFT_KEYWORD": + return self.token_types.get("NAME") if terminal in self.token_types: return self.token_types[terminal] @@ -925,14 +923,13 @@ def _first_set_dispatch(self, node: Rhs) -> list[set[int]] | None: if len(node.alts) < 2 or len(node.alts) > 64: return None assert self.first_set_calculator is not None - assert self.nullable_visitor is not None dispatch: list[set[int]] = [] for alt in node.alts: - if self.nullable_visitor.visit(alt): - return None token_types: set[int] = set() for terminal in self.first_set_calculator.visit(alt): + if terminal is None or terminal == "": + return None token_type = self._first_set_token_type(terminal) if token_type is None: return None diff --git a/Tools/peg_generator/pegen/first_sets.py b/Tools/peg_generator/pegen/first_sets.py index 4b56c03beee0cdc..e45f8cce954901b 100755 --- a/Tools/peg_generator/pegen/first_sets.py +++ b/Tools/peg_generator/pegen/first_sets.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.8 +#!/usr/bin/env python3 import argparse import pprint @@ -7,13 +7,12 @@ from pegen.grammar import ( Alt, Cut, + Forced, Gather, - GrammarVisitor, Group, Lookahead, NamedItem, NameLeaf, - NegativeLookahead, Opt, Repeat0, Repeat1, @@ -21,7 +20,6 @@ Rule, StringLeaf, ) -from pegen.parser_generator import compute_nullables argparser = argparse.ArgumentParser( prog="calculate_first_sets", @@ -30,107 +28,81 @@ argparser.add_argument("grammar_file", help="The grammar file") -class FirstSetCalculator(GrammarVisitor): - def __init__(self, rules: dict[str, Rule]) -> None: - self.rules = rules - self.nullables = compute_nullables(rules) - self.first_sets: dict[str, set[str]] = dict() - self.in_process: set[str] = set() - - def calculate(self) -> dict[str, set[str]]: - for name, rule in self.rules.items(): - self.visit(rule) - return self.first_sets - - def visit_Alt(self, item: Alt) -> set[str]: - result: set[str] = set() - to_remove: set[str] = set() - for other in item.items: - new_terminals = self.visit(other) - if isinstance(other.item, NegativeLookahead): - to_remove |= new_terminals - result |= new_terminals - if to_remove: - result -= to_remove - - # If the set of new terminals can start with the empty string, - # it means that the item is completely nullable and we should - # also considering at least the next item in case the current - # one fails to parse. - - if "" in new_terminals: - continue - - if not isinstance(other.item, (Opt, NegativeLookahead, Repeat0)): - break - - # Do not allow the empty string to propagate. - result.discard("") - - return result - - def visit_Cut(self, item: Cut) -> set[str]: - return set() - - def visit_Group(self, item: Group) -> set[str]: - return self.visit(item.rhs) - - def visit_PositiveLookahead(self, item: Lookahead) -> set[str]: - return self.visit(item.node) +class FirstSetCalculator: + """Conservative FIRST sets, including "" for a possibly empty match. - def visit_NegativeLookahead(self, item: NegativeLookahead) -> set[str]: - return self.visit(item.node) + None means parsing can commit or run an action before consuming a token, + so callers must not use that set to skip a parse attempt. + """ - def visit_NamedItem(self, item: NamedItem) -> set[str]: - return self.visit(item.item) - - def visit_Opt(self, item: Opt) -> set[str]: - return self.visit(item.node) - - def visit_Gather(self, item: Gather) -> set[str]: - return self.visit(item.node) - - def visit_Repeat0(self, item: Repeat0) -> set[str]: - return self.visit(item.node) - - def visit_Repeat1(self, item: Repeat1) -> set[str]: - return self.visit(item.node) - - def visit_NameLeaf(self, item: NameLeaf) -> set[str]: - if item.value not in self.rules: - return {item.value} - - if item.value not in self.first_sets: - self.first_sets[item.value] = self.visit(self.rules[item.value]) - return self.first_sets[item.value] - elif item.value in self.in_process: - return set() - - return self.first_sets[item.value] - - def visit_StringLeaf(self, item: StringLeaf) -> set[str]: - return {item.value} - - def visit_Rhs(self, item: Rhs) -> set[str]: - result: set[str] = set() - for alt in item.alts: - result |= self.visit(alt) - return result - - def visit_Rule(self, item: Rule) -> set[str]: - if item.name in self.in_process: - return set() - elif item.name not in self.first_sets: - self.in_process.add(item.name) - terminals = self.visit(item.rhs) - if item in self.nullables: - terminals.add("") - self.first_sets[item.name] = terminals - self.in_process.remove(item.name) - return self.first_sets[item.name] + def __init__(self, rules: dict[str, Rule]) -> None: + self.rules = rules + self.first_sets: dict[str, set[str | None]] = {name: set() for name in rules} + + def calculate(self) -> dict[str, set[str | None]]: + # Recursive rules can discover terminals through each other. Keep + # propagating them until every rule's set has stopped growing. + while True: + changed = False + for name, rule in self.rules.items(): + terminals = self.visit(rule.rhs) + if not terminals <= self.first_sets[name]: + self.first_sets[name].update(terminals) + changed = True + if not changed: + return self.first_sets + + def visit(self, item: object) -> set[str | None]: + match item: + case Alt(items=items, action=action): + result: set[str | None] = set() + for other in items: + terminals = self.visit(other) + result.update(terminals - {""}) + if "" not in terminals: + break + else: + result.add("") + if action: + # An empty action can raise before a later token fails + # to match. Do not bypass it with token dispatch. + result.add(None) + return result + case Rhs(alts=alts): + result = set() + for alt in alts: + result.update(self.visit(alt)) + return result + case Rule(name=name): + return self.first_sets[name] + case NameLeaf(value=name): + return self.first_sets[name] if name in self.rules else {name} + case StringLeaf(value=value): + return {value} + case NamedItem(item=node) | Group(rhs=node) | Repeat1(node=node): + return self.visit(node) + case Opt(node=node) | Repeat0(node=node): + return self.visit(node) | {""} + case Gather(node=node, separator=separator): + terminals = self.visit(node) + if "" in terminals: + return terminals | self.visit(separator) + return terminals + case Cut(): + return {"", None} + case Forced(node=node): + # A mismatch raises instead of trying the next alternative. + return self.visit(node) | {None} + case Lookahead(): + # Predicates may raise after consuming tokens internally, and + # negative predicates cannot safely narrow the next FIRST set. + return {"", None} + case _: + raise TypeError(f"Unexpected grammar node: {type(item).__name__}") def main() -> None: + # build imports c_generator, which imports FirstSetCalculator. from pegen.build import build_parser args = argparser.parse_args()