diff --git a/Grammar/python.gram b/Grammar/python.gram
index 324793c..8524a12 100644
--- a/Grammar/python.gram
+++ b/Grammar/python.gram
@@ -447,6 +447,10 @@
     | invalid_named_expression
     | expression !':='
 
+direct_named_expression[expr_ty]:
+    | a=NAME ':=' ~ b=expression { _PyAST_NamedExpr(CHECK(expr_ty, _PyPegen_set_expr_context(p, a, Store)), b, EXTRA) }
+    | expression !':='
+
 annotated_rhs[expr_ty]: yield_expr | star_expressions
 
 expressions[expr_ty]:
@@ -671,7 +675,7 @@
     | a=args [','] &')' { a }
     | invalid_arguments
 args[expr_ty]:
-    | a[asdl_expr_seq*]=','.(starred_expression | named_expression !'=')+ b=[',' k=kwargs {k}] { _PyPegen_collect_call_seqs(p, a, b, EXTRA) }
+    | a[asdl_expr_seq*]=','.(starred_expression | direct_named_expression !'=')+ b=[',' k=kwargs {k}] { _PyPegen_collect_call_seqs(p, a, b, EXTRA) }
     | a=kwargs { _PyAST_Call(_PyPegen_dummy_name(p),
                           CHECK_NULL_ALLOWED(asdl_expr_seq*, _PyPegen_seq_extract_starred_exprs(p, a)),
                           CHECK_NULL_ALLOWED(asdl_keyword_seq*, _PyPegen_seq_delete_starred_exprs(p, a)),
diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py
index 78b11c9..0e6942f 100644
--- a/Lib/test/test_syntax.py
+++ b/Lib/test/test_syntax.py
@@ -863,6 +863,11 @@
    Traceback (most recent call last):
    SyntaxError: cannot assign to attribute here. Maybe you meant '==' instead of '='?
 
+Ensure that early = are not matched by the parser as invalid comparisons
+   >>> f(2, 4, x=34); {1,2 a}
+   Traceback (most recent call last):
+   SyntaxError: invalid syntax
+
 Make sure that the old "raise X, Y[, Z]" form is gone:
    >>> raise X, Y
    Traceback (most recent call last):
diff --git a/Parser/parser.c b/Parser/parser.c
index 099186e..38bab96 100644
--- a/Parser/parser.c
+++ b/Parser/parser.c
@@ -159,299 +159,300 @@ static KeywordToken *reserved_keywords[] = {
 #define star_named_expressions_type 1091
 #define star_named_expression_type 1092
 #define named_expression_type 1093
-#define annotated_rhs_type 1094
-#define expressions_type 1095
-#define expression_type 1096
-#define lambdef_type 1097
-#define lambda_params_type 1098
-#define lambda_parameters_type 1099
-#define lambda_slash_no_default_type 1100
-#define lambda_slash_with_default_type 1101
-#define lambda_star_etc_type 1102
-#define lambda_kwds_type 1103
-#define lambda_param_no_default_type 1104
-#define lambda_param_with_default_type 1105
-#define lambda_param_maybe_default_type 1106
-#define lambda_param_type 1107
-#define disjunction_type 1108
-#define conjunction_type 1109
-#define inversion_type 1110
-#define comparison_type 1111
-#define compare_op_bitwise_or_pair_type 1112
-#define eq_bitwise_or_type 1113
-#define noteq_bitwise_or_type 1114
-#define lte_bitwise_or_type 1115
-#define lt_bitwise_or_type 1116
-#define gte_bitwise_or_type 1117
-#define gt_bitwise_or_type 1118
-#define notin_bitwise_or_type 1119
-#define in_bitwise_or_type 1120
-#define isnot_bitwise_or_type 1121
-#define is_bitwise_or_type 1122
-#define bitwise_or_type 1123  // Left-recursive
-#define bitwise_xor_type 1124  // Left-recursive
-#define bitwise_and_type 1125  // Left-recursive
-#define shift_expr_type 1126  // Left-recursive
-#define sum_type 1127  // Left-recursive
-#define term_type 1128  // Left-recursive
-#define factor_type 1129
-#define power_type 1130
-#define await_primary_type 1131
-#define primary_type 1132  // Left-recursive
-#define slices_type 1133
-#define slice_type 1134
-#define atom_type 1135
-#define strings_type 1136
-#define list_type 1137
-#define listcomp_type 1138
-#define tuple_type 1139
-#define group_type 1140
-#define genexp_type 1141
-#define set_type 1142
-#define setcomp_type 1143
-#define dict_type 1144
-#define dictcomp_type 1145
-#define double_starred_kvpairs_type 1146
-#define double_starred_kvpair_type 1147
-#define kvpair_type 1148
-#define for_if_clauses_type 1149
-#define for_if_clause_type 1150
-#define yield_expr_type 1151
-#define arguments_type 1152
-#define args_type 1153
-#define kwargs_type 1154
-#define starred_expression_type 1155
-#define kwarg_or_starred_type 1156
-#define kwarg_or_double_starred_type 1157
-#define star_targets_type 1158
-#define star_targets_list_seq_type 1159
-#define star_targets_tuple_seq_type 1160
-#define star_target_type 1161
-#define target_with_star_atom_type 1162
-#define star_atom_type 1163
-#define single_target_type 1164
-#define single_subscript_attribute_target_type 1165
-#define del_targets_type 1166
-#define del_target_type 1167
-#define del_t_atom_type 1168
-#define targets_type 1169
-#define target_type 1170
-#define t_primary_type 1171  // Left-recursive
-#define t_lookahead_type 1172
-#define t_atom_type 1173
-#define invalid_arguments_type 1174
-#define invalid_kwarg_type 1175
-#define invalid_named_expression_type 1176
-#define invalid_assignment_type 1177
-#define invalid_ann_assign_target_type 1178
-#define invalid_del_stmt_type 1179
-#define invalid_block_type 1180
-#define invalid_primary_type 1181  // Left-recursive
-#define invalid_comprehension_type 1182
-#define invalid_dict_comprehension_type 1183
-#define invalid_parameters_type 1184
-#define invalid_parameters_helper_type 1185
-#define invalid_lambda_parameters_type 1186
-#define invalid_lambda_parameters_helper_type 1187
-#define invalid_star_etc_type 1188
-#define invalid_lambda_star_etc_type 1189
-#define invalid_double_type_comments_type 1190
-#define invalid_with_item_type 1191
-#define invalid_for_target_type 1192
-#define invalid_group_type 1193
-#define invalid_import_from_targets_type 1194
-#define invalid_with_stmt_type 1195
-#define invalid_except_block_type 1196
-#define invalid_match_stmt_type 1197
-#define invalid_case_block_type 1198
-#define invalid_if_stmt_type 1199
-#define invalid_elif_stmt_type 1200
-#define invalid_while_stmt_type 1201
-#define _loop0_1_type 1202
-#define _loop0_2_type 1203
-#define _loop0_4_type 1204
-#define _gather_3_type 1205
-#define _loop0_6_type 1206
-#define _gather_5_type 1207
-#define _loop0_8_type 1208
-#define _gather_7_type 1209
-#define _loop0_10_type 1210
-#define _gather_9_type 1211
-#define _loop1_11_type 1212
-#define _loop0_13_type 1213
-#define _gather_12_type 1214
-#define _tmp_14_type 1215
-#define _tmp_15_type 1216
-#define _tmp_16_type 1217
-#define _tmp_17_type 1218
-#define _tmp_18_type 1219
-#define _tmp_19_type 1220
-#define _tmp_20_type 1221
-#define _tmp_21_type 1222
-#define _loop1_22_type 1223
-#define _tmp_23_type 1224
-#define _tmp_24_type 1225
-#define _loop0_26_type 1226
-#define _gather_25_type 1227
-#define _loop0_28_type 1228
-#define _gather_27_type 1229
-#define _tmp_29_type 1230
-#define _tmp_30_type 1231
-#define _loop0_31_type 1232
-#define _loop1_32_type 1233
-#define _loop0_34_type 1234
-#define _gather_33_type 1235
-#define _tmp_35_type 1236
-#define _loop0_37_type 1237
-#define _gather_36_type 1238
-#define _tmp_38_type 1239
-#define _loop0_40_type 1240
-#define _gather_39_type 1241
-#define _loop0_42_type 1242
-#define _gather_41_type 1243
-#define _loop0_44_type 1244
-#define _gather_43_type 1245
-#define _loop0_46_type 1246
-#define _gather_45_type 1247
-#define _tmp_47_type 1248
-#define _loop1_48_type 1249
-#define _tmp_49_type 1250
-#define _loop1_50_type 1251
-#define _loop0_52_type 1252
-#define _gather_51_type 1253
-#define _tmp_53_type 1254
-#define _tmp_54_type 1255
-#define _tmp_55_type 1256
-#define _loop0_57_type 1257
-#define _gather_56_type 1258
-#define _tmp_58_type 1259
-#define _loop0_60_type 1260
-#define _gather_59_type 1261
-#define _tmp_61_type 1262
-#define _loop0_63_type 1263
-#define _gather_62_type 1264
-#define _loop0_65_type 1265
-#define _gather_64_type 1266
-#define _tmp_66_type 1267
-#define _tmp_67_type 1268
-#define _tmp_68_type 1269
-#define _tmp_69_type 1270
-#define _loop0_70_type 1271
-#define _loop0_71_type 1272
-#define _loop0_72_type 1273
-#define _loop1_73_type 1274
-#define _loop0_74_type 1275
-#define _loop1_75_type 1276
-#define _loop1_76_type 1277
-#define _loop1_77_type 1278
-#define _loop0_78_type 1279
-#define _loop1_79_type 1280
-#define _loop0_80_type 1281
-#define _loop1_81_type 1282
-#define _loop0_82_type 1283
-#define _loop1_83_type 1284
-#define _loop1_84_type 1285
-#define _tmp_85_type 1286
-#define _loop1_86_type 1287
-#define _loop0_88_type 1288
-#define _gather_87_type 1289
-#define _loop1_89_type 1290
-#define _loop0_90_type 1291
-#define _loop0_91_type 1292
-#define _loop0_92_type 1293
-#define _loop1_93_type 1294
-#define _loop0_94_type 1295
-#define _loop1_95_type 1296
-#define _loop1_96_type 1297
-#define _loop1_97_type 1298
-#define _loop0_98_type 1299
-#define _loop1_99_type 1300
-#define _loop0_100_type 1301
-#define _loop1_101_type 1302
-#define _loop0_102_type 1303
-#define _loop1_103_type 1304
-#define _loop1_104_type 1305
-#define _loop1_105_type 1306
-#define _loop1_106_type 1307
-#define _tmp_107_type 1308
-#define _loop0_109_type 1309
-#define _gather_108_type 1310
-#define _tmp_110_type 1311
-#define _tmp_111_type 1312
-#define _tmp_112_type 1313
-#define _tmp_113_type 1314
-#define _loop1_114_type 1315
-#define _tmp_115_type 1316
-#define _tmp_116_type 1317
-#define _loop0_118_type 1318
-#define _gather_117_type 1319
-#define _loop1_119_type 1320
-#define _loop0_120_type 1321
-#define _loop0_121_type 1322
-#define _loop0_123_type 1323
-#define _gather_122_type 1324
-#define _tmp_124_type 1325
-#define _loop0_126_type 1326
-#define _gather_125_type 1327
-#define _loop0_128_type 1328
-#define _gather_127_type 1329
-#define _loop0_130_type 1330
-#define _gather_129_type 1331
-#define _loop0_132_type 1332
-#define _gather_131_type 1333
-#define _loop0_133_type 1334
-#define _loop0_135_type 1335
-#define _gather_134_type 1336
-#define _loop1_136_type 1337
-#define _tmp_137_type 1338
-#define _loop0_139_type 1339
-#define _gather_138_type 1340
-#define _loop0_141_type 1341
-#define _gather_140_type 1342
-#define _tmp_142_type 1343
-#define _tmp_143_type 1344
-#define _tmp_144_type 1345
-#define _tmp_145_type 1346
-#define _loop0_146_type 1347
-#define _loop0_147_type 1348
-#define _loop0_148_type 1349
-#define _tmp_149_type 1350
-#define _tmp_150_type 1351
-#define _tmp_151_type 1352
-#define _loop0_152_type 1353
-#define _loop1_153_type 1354
-#define _loop0_154_type 1355
-#define _loop1_155_type 1356
-#define _tmp_156_type 1357
-#define _tmp_157_type 1358
-#define _tmp_158_type 1359
-#define _loop0_160_type 1360
-#define _gather_159_type 1361
-#define _loop0_162_type 1362
-#define _gather_161_type 1363
-#define _tmp_163_type 1364
-#define _tmp_164_type 1365
-#define _tmp_165_type 1366
-#define _tmp_166_type 1367
-#define _tmp_167_type 1368
-#define _tmp_168_type 1369
-#define _tmp_169_type 1370
-#define _tmp_170_type 1371
-#define _tmp_171_type 1372
-#define _tmp_172_type 1373
-#define _tmp_173_type 1374
-#define _tmp_174_type 1375
-#define _tmp_175_type 1376
-#define _tmp_176_type 1377
-#define _tmp_177_type 1378
-#define _tmp_178_type 1379
-#define _tmp_179_type 1380
-#define _tmp_180_type 1381
-#define _tmp_181_type 1382
-#define _tmp_182_type 1383
-#define _tmp_183_type 1384
-#define _tmp_184_type 1385
-#define _tmp_185_type 1386
+#define direct_named_expression_type 1094
+#define annotated_rhs_type 1095
+#define expressions_type 1096
+#define expression_type 1097
+#define lambdef_type 1098
+#define lambda_params_type 1099
+#define lambda_parameters_type 1100
+#define lambda_slash_no_default_type 1101
+#define lambda_slash_with_default_type 1102
+#define lambda_star_etc_type 1103
+#define lambda_kwds_type 1104
+#define lambda_param_no_default_type 1105
+#define lambda_param_with_default_type 1106
+#define lambda_param_maybe_default_type 1107
+#define lambda_param_type 1108
+#define disjunction_type 1109
+#define conjunction_type 1110
+#define inversion_type 1111
+#define comparison_type 1112
+#define compare_op_bitwise_or_pair_type 1113
+#define eq_bitwise_or_type 1114
+#define noteq_bitwise_or_type 1115
+#define lte_bitwise_or_type 1116
+#define lt_bitwise_or_type 1117
+#define gte_bitwise_or_type 1118
+#define gt_bitwise_or_type 1119
+#define notin_bitwise_or_type 1120
+#define in_bitwise_or_type 1121
+#define isnot_bitwise_or_type 1122
+#define is_bitwise_or_type 1123
+#define bitwise_or_type 1124  // Left-recursive
+#define bitwise_xor_type 1125  // Left-recursive
+#define bitwise_and_type 1126  // Left-recursive
+#define shift_expr_type 1127  // Left-recursive
+#define sum_type 1128  // Left-recursive
+#define term_type 1129  // Left-recursive
+#define factor_type 1130
+#define power_type 1131
+#define await_primary_type 1132
+#define primary_type 1133  // Left-recursive
+#define slices_type 1134
+#define slice_type 1135
+#define atom_type 1136
+#define strings_type 1137
+#define list_type 1138
+#define listcomp_type 1139
+#define tuple_type 1140
+#define group_type 1141
+#define genexp_type 1142
+#define set_type 1143
+#define setcomp_type 1144
+#define dict_type 1145
+#define dictcomp_type 1146
+#define double_starred_kvpairs_type 1147
+#define double_starred_kvpair_type 1148
+#define kvpair_type 1149
+#define for_if_clauses_type 1150
+#define for_if_clause_type 1151
+#define yield_expr_type 1152
+#define arguments_type 1153
+#define args_type 1154
+#define kwargs_type 1155
+#define starred_expression_type 1156
+#define kwarg_or_starred_type 1157
+#define kwarg_or_double_starred_type 1158
+#define star_targets_type 1159
+#define star_targets_list_seq_type 1160
+#define star_targets_tuple_seq_type 1161
+#define star_target_type 1162
+#define target_with_star_atom_type 1163
+#define star_atom_type 1164
+#define single_target_type 1165
+#define single_subscript_attribute_target_type 1166
+#define del_targets_type 1167
+#define del_target_type 1168
+#define del_t_atom_type 1169
+#define targets_type 1170
+#define target_type 1171
+#define t_primary_type 1172  // Left-recursive
+#define t_lookahead_type 1173
+#define t_atom_type 1174
+#define invalid_arguments_type 1175
+#define invalid_kwarg_type 1176
+#define invalid_named_expression_type 1177
+#define invalid_assignment_type 1178
+#define invalid_ann_assign_target_type 1179
+#define invalid_del_stmt_type 1180
+#define invalid_block_type 1181
+#define invalid_primary_type 1182  // Left-recursive
+#define invalid_comprehension_type 1183
+#define invalid_dict_comprehension_type 1184
+#define invalid_parameters_type 1185
+#define invalid_parameters_helper_type 1186
+#define invalid_lambda_parameters_type 1187
+#define invalid_lambda_parameters_helper_type 1188
+#define invalid_star_etc_type 1189
+#define invalid_lambda_star_etc_type 1190
+#define invalid_double_type_comments_type 1191
+#define invalid_with_item_type 1192
+#define invalid_for_target_type 1193
+#define invalid_group_type 1194
+#define invalid_import_from_targets_type 1195
+#define invalid_with_stmt_type 1196
+#define invalid_except_block_type 1197
+#define invalid_match_stmt_type 1198
+#define invalid_case_block_type 1199
+#define invalid_if_stmt_type 1200
+#define invalid_elif_stmt_type 1201
+#define invalid_while_stmt_type 1202
+#define _loop0_1_type 1203
+#define _loop0_2_type 1204
+#define _loop0_4_type 1205
+#define _gather_3_type 1206
+#define _loop0_6_type 1207
+#define _gather_5_type 1208
+#define _loop0_8_type 1209
+#define _gather_7_type 1210
+#define _loop0_10_type 1211
+#define _gather_9_type 1212
+#define _loop1_11_type 1213
+#define _loop0_13_type 1214
+#define _gather_12_type 1215
+#define _tmp_14_type 1216
+#define _tmp_15_type 1217
+#define _tmp_16_type 1218
+#define _tmp_17_type 1219
+#define _tmp_18_type 1220
+#define _tmp_19_type 1221
+#define _tmp_20_type 1222
+#define _tmp_21_type 1223
+#define _loop1_22_type 1224
+#define _tmp_23_type 1225
+#define _tmp_24_type 1226
+#define _loop0_26_type 1227
+#define _gather_25_type 1228
+#define _loop0_28_type 1229
+#define _gather_27_type 1230
+#define _tmp_29_type 1231
+#define _tmp_30_type 1232
+#define _loop0_31_type 1233
+#define _loop1_32_type 1234
+#define _loop0_34_type 1235
+#define _gather_33_type 1236
+#define _tmp_35_type 1237
+#define _loop0_37_type 1238
+#define _gather_36_type 1239
+#define _tmp_38_type 1240
+#define _loop0_40_type 1241
+#define _gather_39_type 1242
+#define _loop0_42_type 1243
+#define _gather_41_type 1244
+#define _loop0_44_type 1245
+#define _gather_43_type 1246
+#define _loop0_46_type 1247
+#define _gather_45_type 1248
+#define _tmp_47_type 1249
+#define _loop1_48_type 1250
+#define _tmp_49_type 1251
+#define _loop1_50_type 1252
+#define _loop0_52_type 1253
+#define _gather_51_type 1254
+#define _tmp_53_type 1255
+#define _tmp_54_type 1256
+#define _tmp_55_type 1257
+#define _loop0_57_type 1258
+#define _gather_56_type 1259
+#define _tmp_58_type 1260
+#define _loop0_60_type 1261
+#define _gather_59_type 1262
+#define _tmp_61_type 1263
+#define _loop0_63_type 1264
+#define _gather_62_type 1265
+#define _loop0_65_type 1266
+#define _gather_64_type 1267
+#define _tmp_66_type 1268
+#define _tmp_67_type 1269
+#define _tmp_68_type 1270
+#define _tmp_69_type 1271
+#define _loop0_70_type 1272
+#define _loop0_71_type 1273
+#define _loop0_72_type 1274
+#define _loop1_73_type 1275
+#define _loop0_74_type 1276
+#define _loop1_75_type 1277
+#define _loop1_76_type 1278
+#define _loop1_77_type 1279
+#define _loop0_78_type 1280
+#define _loop1_79_type 1281
+#define _loop0_80_type 1282
+#define _loop1_81_type 1283
+#define _loop0_82_type 1284
+#define _loop1_83_type 1285
+#define _loop1_84_type 1286
+#define _tmp_85_type 1287
+#define _loop1_86_type 1288
+#define _loop0_88_type 1289
+#define _gather_87_type 1290
+#define _loop1_89_type 1291
+#define _loop0_90_type 1292
+#define _loop0_91_type 1293
+#define _loop0_92_type 1294
+#define _loop1_93_type 1295
+#define _loop0_94_type 1296
+#define _loop1_95_type 1297
+#define _loop1_96_type 1298
+#define _loop1_97_type 1299
+#define _loop0_98_type 1300
+#define _loop1_99_type 1301
+#define _loop0_100_type 1302
+#define _loop1_101_type 1303
+#define _loop0_102_type 1304
+#define _loop1_103_type 1305
+#define _loop1_104_type 1306
+#define _loop1_105_type 1307
+#define _loop1_106_type 1308
+#define _tmp_107_type 1309
+#define _loop0_109_type 1310
+#define _gather_108_type 1311
+#define _tmp_110_type 1312
+#define _tmp_111_type 1313
+#define _tmp_112_type 1314
+#define _tmp_113_type 1315
+#define _loop1_114_type 1316
+#define _tmp_115_type 1317
+#define _tmp_116_type 1318
+#define _loop0_118_type 1319
+#define _gather_117_type 1320
+#define _loop1_119_type 1321
+#define _loop0_120_type 1322
+#define _loop0_121_type 1323
+#define _loop0_123_type 1324
+#define _gather_122_type 1325
+#define _tmp_124_type 1326
+#define _loop0_126_type 1327
+#define _gather_125_type 1328
+#define _loop0_128_type 1329
+#define _gather_127_type 1330
+#define _loop0_130_type 1331
+#define _gather_129_type 1332
+#define _loop0_132_type 1333
+#define _gather_131_type 1334
+#define _loop0_133_type 1335
+#define _loop0_135_type 1336
+#define _gather_134_type 1337
+#define _loop1_136_type 1338
+#define _tmp_137_type 1339
+#define _loop0_139_type 1340
+#define _gather_138_type 1341
+#define _loop0_141_type 1342
+#define _gather_140_type 1343
+#define _tmp_142_type 1344
+#define _tmp_143_type 1345
+#define _tmp_144_type 1346
+#define _tmp_145_type 1347
+#define _loop0_146_type 1348
+#define _loop0_147_type 1349
+#define _loop0_148_type 1350
+#define _tmp_149_type 1351
+#define _tmp_150_type 1352
+#define _tmp_151_type 1353
+#define _loop0_152_type 1354
+#define _loop1_153_type 1355
+#define _loop0_154_type 1356
+#define _loop1_155_type 1357
+#define _tmp_156_type 1358
+#define _tmp_157_type 1359
+#define _tmp_158_type 1360
+#define _loop0_160_type 1361
+#define _gather_159_type 1362
+#define _loop0_162_type 1363
+#define _gather_161_type 1364
+#define _tmp_163_type 1365
+#define _tmp_164_type 1366
+#define _tmp_165_type 1367
+#define _tmp_166_type 1368
+#define _tmp_167_type 1369
+#define _tmp_168_type 1370
+#define _tmp_169_type 1371
+#define _tmp_170_type 1372
+#define _tmp_171_type 1373
+#define _tmp_172_type 1374
+#define _tmp_173_type 1375
+#define _tmp_174_type 1376
+#define _tmp_175_type 1377
+#define _tmp_176_type 1378
+#define _tmp_177_type 1379
+#define _tmp_178_type 1380
+#define _tmp_179_type 1381
+#define _tmp_180_type 1382
+#define _tmp_181_type 1383
+#define _tmp_182_type 1384
+#define _tmp_183_type 1385
+#define _tmp_184_type 1386
+#define _tmp_185_type 1387
 
 static mod_ty file_rule(Parser *p);
 static mod_ty interactive_rule(Parser *p);
@@ -547,6 +548,7 @@ static expr_ty star_expression_rule(Parser *p);
 static asdl_expr_seq* star_named_expressions_rule(Parser *p);
 static expr_ty star_named_expression_rule(Parser *p);
 static expr_ty named_expression_rule(Parser *p);
+static expr_ty direct_named_expression_rule(Parser *p);
 static expr_ty annotated_rhs_rule(Parser *p);
 static expr_ty expressions_rule(Parser *p);
 static expr_ty expression_rule(Parser *p);
@@ -9397,6 +9399,99 @@ named_expression_rule(Parser *p)
     return _res;
 }
 
+// direct_named_expression: NAME ':=' ~ expression | expression !':='
+static expr_ty
+direct_named_expression_rule(Parser *p)
+{
+    D(p->level++);
+    if (p->error_indicator) {
+        D(p->level--);
+        return NULL;
+    }
+    expr_ty _res = NULL;
+    int _mark = p->mark;
+    if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
+        p->error_indicator = 1;
+        D(p->level--);
+        return NULL;
+    }
+    int _start_lineno = p->tokens[_mark]->lineno;
+    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
+    { // NAME ':=' ~ expression
+        if (p->error_indicator) {
+            D(p->level--);
+            return NULL;
+        }
+        D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
+        int _cut_var = 0;
+        Token * _literal;
+        expr_ty a;
+        expr_ty b;
+        if (
+            (a = _PyPegen_name_token(p))  // NAME
+            &&
+            (_literal = _PyPegen_expect_token(p, 53))  // token=':='
+            &&
+            (_cut_var = 1)
+            &&
+            (b = expression_rule(p))  // expression
+        )
+        {
+            D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':=' ~ expression"));
+            Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
+            if (_token == NULL) {
+                D(p->level--);
+                return NULL;
+            }
+            int _end_lineno = _token->end_lineno;
+            UNUSED(_end_lineno); // Only used by EXTRA macro
+            int _end_col_offset = _token->end_col_offset;
+            UNUSED(_end_col_offset); // Only used by EXTRA macro
+            _res = _PyAST_NamedExpr ( CHECK ( expr_ty , _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
+            if (_res == NULL && PyErr_Occurred()) {
+                p->error_indicator = 1;
+                D(p->level--);
+                return NULL;
+            }
+            goto done;
+        }
+        p->mark = _mark;
+        D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' ~ expression"));
+        if (_cut_var) {
+            D(p->level--);
+            return NULL;
+        }
+    }
+    { // expression !':='
+        if (p->error_indicator) {
+            D(p->level--);
+            return NULL;
+        }
+        D(fprintf(stderr, "%*c> direct_named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+        expr_ty expression_var;
+        if (
+            (expression_var = expression_rule(p))  // expression
+            &&
+            _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53)  // token=':='
+        )
+        {
+            D(fprintf(stderr, "%*c+ direct_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
+            _res = expression_var;
+            goto done;
+        }
+        p->mark = _mark;
+        D(fprintf(stderr, "%*c%s direct_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
+    }
+    _res = NULL;
+  done:
+    D(p->level--);
+    return _res;
+}
+
 // annotated_rhs: yield_expr | star_expressions
 static expr_ty
 annotated_rhs_rule(Parser *p)
@@ -14807,7 +14902,7 @@ arguments_rule(Parser *p)
     return _res;
 }
 
-// args: ','.(starred_expression | named_expression !'=')+ [',' kwargs] | kwargs
+// args: ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs] | kwargs
 static expr_ty
 args_rule(Parser *p)
 {
@@ -14827,21 +14922,21 @@ 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
-    { // ','.(starred_expression | named_expression !'=')+ [',' kwargs]
+    { // ','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
+        D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
         asdl_expr_seq* a;
         void *b;
         if (
-            (a = (asdl_expr_seq*)_gather_122_rule(p))  // ','.(starred_expression | named_expression !'=')+
+            (a = (asdl_expr_seq*)_gather_122_rule(p))  // ','.(starred_expression | direct_named_expression !'=')+
             &&
             (b = _tmp_124_rule(p), 1)  // [',' kwargs]
         )
         {
-            D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
+            D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
             Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
             if (_token == NULL) {
                 D(p->level--);
@@ -14861,7 +14956,7 @@ args_rule(Parser *p)
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | direct_named_expression !'=')+ [',' kwargs]"));
     }
     { // kwargs
         if (p->error_indicator) {
@@ -26406,7 +26501,7 @@ _loop0_121_rule(Parser *p)
     return _seq;
 }
 
-// _loop0_123: ',' (starred_expression | named_expression !'=')
+// _loop0_123: ',' (starred_expression | direct_named_expression !'=')
 static asdl_seq *
 _loop0_123_rule(Parser *p)
 {
@@ -26427,18 +26522,18 @@ _loop0_123_rule(Parser *p)
     }
     Py_ssize_t _children_capacity = 1;
     Py_ssize_t _n = 0;
-    { // ',' (starred_expression | named_expression !'=')
+    { // ',' (starred_expression | direct_named_expression !'=')
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
+        D(fprintf(stderr, "%*c> _loop0_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
         Token * _literal;
         void *elem;
         while (
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (elem = _tmp_175_rule(p))  // starred_expression | named_expression !'='
+            (elem = _tmp_175_rule(p))  // starred_expression | direct_named_expression !'='
         )
         {
             _res = elem;
@@ -26464,7 +26559,7 @@ _loop0_123_rule(Parser *p)
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s _loop0_123[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | named_expression !'=')"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (starred_expression | direct_named_expression !'=')"));
     }
     asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena);
     if (!_seq) {
@@ -26481,7 +26576,7 @@ _loop0_123_rule(Parser *p)
     return _seq;
 }
 
-// _gather_122: (starred_expression | named_expression !'=') _loop0_123
+// _gather_122: (starred_expression | direct_named_expression !'=') _loop0_123
 static asdl_seq *
 _gather_122_rule(Parser *p)
 {
@@ -26492,27 +26587,27 @@ _gather_122_rule(Parser *p)
     }
     asdl_seq * _res = NULL;
     int _mark = p->mark;
-    { // (starred_expression | named_expression !'=') _loop0_123
+    { // (starred_expression | direct_named_expression !'=') _loop0_123
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
+        D(fprintf(stderr, "%*c> _gather_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
         void *elem;
         asdl_seq * seq;
         if (
-            (elem = _tmp_175_rule(p))  // starred_expression | named_expression !'='
+            (elem = _tmp_175_rule(p))  // starred_expression | direct_named_expression !'='
             &&
             (seq = _loop0_123_rule(p))  // _loop0_123
         )
         {
-            D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
+            D(fprintf(stderr, "%*c+ _gather_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
             _res = _PyPegen_seq_insert_in_front(p, elem, seq);
             goto done;
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s _gather_122[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | named_expression !'=') _loop0_123"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(starred_expression | direct_named_expression !'=') _loop0_123"));
     }
     _res = NULL;
   done:
@@ -29491,7 +29586,7 @@ _tmp_174_rule(Parser *p)
     return _res;
 }
 
-// _tmp_175: starred_expression | named_expression !'='
+// _tmp_175: starred_expression | direct_named_expression !'='
 static void *
 _tmp_175_rule(Parser *p)
 {
@@ -29521,26 +29616,26 @@ _tmp_175_rule(Parser *p)
         D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
                   p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
     }
-    { // named_expression !'='
+    { // direct_named_expression !'='
         if (p->error_indicator) {
             D(p->level--);
             return NULL;
         }
-        D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
-        expr_ty named_expression_var;
+        D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
+        expr_ty direct_named_expression_var;
         if (
-            (named_expression_var = named_expression_rule(p))  // named_expression
+            (direct_named_expression_var = direct_named_expression_rule(p))  // direct_named_expression
             &&
             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
         )
         {
-            D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression !'='"));
-            _res = named_expression_var;
+            D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "direct_named_expression !'='"));
+            _res = direct_named_expression_var;
             goto done;
         }
         p->mark = _mark;
         D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ',
-                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression !'='"));
+                  p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "direct_named_expression !'='"));
     }
     _res = NULL;
   done:
