@@ -9719,6 +9719,7 @@ expressions_rule(Parser *p)
9719
9719
9720
9720
// expression:
9721
9721
// | invalid_expression
9722
+ // | invalid_legacy_expression
9722
9723
// | disjunction 'if' disjunction 'else' expression
9723
9724
// | disjunction
9724
9725
// | lambdef
@@ -9764,6 +9765,25 @@ expression_rule(Parser *p)
9764
9765
D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9765
9766
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
9766
9767
}
9768
+ if (p->call_invalid_rules) { // invalid_legacy_expression
9769
+ if (p->error_indicator) {
9770
+ D(p->level--);
9771
+ return NULL;
9772
+ }
9773
+ D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
9774
+ void *invalid_legacy_expression_var;
9775
+ if (
9776
+ (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
9777
+ )
9778
+ {
9779
+ D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
9780
+ _res = invalid_legacy_expression_var;
9781
+ goto done;
9782
+ }
9783
+ p->mark = _mark;
9784
+ D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9785
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
9786
+ }
9767
9787
{ // disjunction 'if' disjunction 'else' expression
9768
9788
if (p->error_indicator) {
9769
9789
D(p->level--);
@@ -18239,7 +18259,6 @@ invalid_legacy_expression_rule(Parser *p)
18239
18259
}
18240
18260
18241
18261
// invalid_expression:
18242
- // | invalid_legacy_expression
18243
18262
// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
18244
18263
// | disjunction 'if' disjunction !('else' | ':')
18245
18264
static void *
@@ -18252,25 +18271,6 @@ invalid_expression_rule(Parser *p)
18252
18271
}
18253
18272
void * _res = NULL;
18254
18273
int _mark = p->mark;
18255
- if (p->call_invalid_rules) { // invalid_legacy_expression
18256
- if (p->error_indicator) {
18257
- D(p->level--);
18258
- return NULL;
18259
- }
18260
- D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18261
- void *invalid_legacy_expression_var;
18262
- if (
18263
- (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
18264
- )
18265
- {
18266
- D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18267
- _res = invalid_legacy_expression_var;
18268
- goto done;
18269
- }
18270
- p->mark = _mark;
18271
- D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18272
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
18273
- }
18274
18274
{ // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
18275
18275
if (p->error_indicator) {
18276
18276
D(p->level--);
@@ -18288,7 +18288,7 @@ invalid_expression_rule(Parser *p)
18288
18288
)
18289
18289
{
18290
18290
D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
18291
- _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
18291
+ _res = _PyPegen_check_legacy_stmt ( p , a ) ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
18292
18292
if (_res == NULL && PyErr_Occurred()) {
18293
18293
p->error_indicator = 1;
18294
18294
D(p->level--);
0 commit comments