@@ -9717,6 +9717,7 @@ expressions_rule(Parser *p)
9717
9717
9718
9718
// expression:
9719
9719
// | invalid_expression
9720
+ // | invalid_legacy_expression
9720
9721
// | disjunction 'if' disjunction 'else' expression
9721
9722
// | disjunction
9722
9723
// | lambdef
@@ -9762,6 +9763,25 @@ expression_rule(Parser *p)
9762
9763
D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9763
9764
p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_expression"));
9764
9765
}
9766
+ if (p->call_invalid_rules) { // invalid_legacy_expression
9767
+ if (p->error_indicator) {
9768
+ D(p->level--);
9769
+ return NULL;
9770
+ }
9771
+ D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
9772
+ void *invalid_legacy_expression_var;
9773
+ if (
9774
+ (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
9775
+ )
9776
+ {
9777
+ D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
9778
+ _res = invalid_legacy_expression_var;
9779
+ goto done;
9780
+ }
9781
+ p->mark = _mark;
9782
+ D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
9783
+ p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
9784
+ }
9765
9785
{ // disjunction 'if' disjunction 'else' expression
9766
9786
if (p->error_indicator) {
9767
9787
D(p->level--);
@@ -18207,7 +18227,6 @@ invalid_legacy_expression_rule(Parser *p)
18207
18227
}
18208
18228
18209
18229
// invalid_expression:
18210
- // | invalid_legacy_expression
18211
18230
// | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
18212
18231
// | disjunction 'if' disjunction !('else' | ':')
18213
18232
static void *
@@ -18220,25 +18239,6 @@ invalid_expression_rule(Parser *p)
18220
18239
}
18221
18240
void * _res = NULL;
18222
18241
int _mark = p->mark;
18223
- if (p->call_invalid_rules) { // invalid_legacy_expression
18224
- if (p->error_indicator) {
18225
- D(p->level--);
18226
- return NULL;
18227
- }
18228
- D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18229
- void *invalid_legacy_expression_var;
18230
- if (
18231
- (invalid_legacy_expression_var = invalid_legacy_expression_rule(p)) // invalid_legacy_expression
18232
- )
18233
- {
18234
- D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_legacy_expression"));
18235
- _res = invalid_legacy_expression_var;
18236
- goto done;
18237
- }
18238
- p->mark = _mark;
18239
- D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ',
18240
- p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_legacy_expression"));
18241
- }
18242
18242
{ // !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid
18243
18243
if (p->error_indicator) {
18244
18244
D(p->level--);
@@ -18256,7 +18256,7 @@ invalid_expression_rule(Parser *p)
18256
18256
)
18257
18257
{
18258
18258
D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid"));
18259
- _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
18259
+ _res = _PyPegen_check_legacy_stmt ( p , a ) ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "invalid syntax. Perhaps you forgot a comma?" );
18260
18260
if (_res == NULL && PyErr_Occurred()) {
18261
18261
p->error_indicator = 1;
18262
18262
D(p->level--);
0 commit comments