summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
Diffstat (limited to 'Include')
-rw-r--r--Include/Python-ast.h27
-rw-r--r--Include/graminit.h77
-rw-r--r--Include/pyerrors.h1
-rw-r--r--Include/symtable.h1
-rw-r--r--Include/token.h7
5 files changed, 63 insertions, 50 deletions
diff --git a/Include/Python-ast.h b/Include/Python-ast.h
index f8394e6..3527ae8 100644
--- a/Include/Python-ast.h
+++ b/Include/Python-ast.h
@@ -17,7 +17,7 @@ typedef struct _stmt *stmt_ty;
typedef struct _expr *expr_ty;
typedef enum _expr_context { Load=1, Store=2, Del=3, AugLoad=4, AugStore=5,
- Param=6 } expr_context_ty;
+ Param=6, NamedStore=7 } expr_context_ty;
typedef struct _slice *slice_ty;
@@ -214,14 +214,14 @@ struct _stmt {
int end_col_offset;
};
-enum _expr_kind {BoolOp_kind=1, BinOp_kind=2, UnaryOp_kind=3, Lambda_kind=4,
- IfExp_kind=5, Dict_kind=6, Set_kind=7, ListComp_kind=8,
- SetComp_kind=9, DictComp_kind=10, GeneratorExp_kind=11,
- Await_kind=12, Yield_kind=13, YieldFrom_kind=14,
- Compare_kind=15, Call_kind=16, FormattedValue_kind=17,
- JoinedStr_kind=18, Constant_kind=19, Attribute_kind=20,
- Subscript_kind=21, Starred_kind=22, Name_kind=23,
- List_kind=24, Tuple_kind=25};
+enum _expr_kind {BoolOp_kind=1, NamedExpr_kind=2, BinOp_kind=3, UnaryOp_kind=4,
+ Lambda_kind=5, IfExp_kind=6, Dict_kind=7, Set_kind=8,
+ ListComp_kind=9, SetComp_kind=10, DictComp_kind=11,
+ GeneratorExp_kind=12, Await_kind=13, Yield_kind=14,
+ YieldFrom_kind=15, Compare_kind=16, Call_kind=17,
+ FormattedValue_kind=18, JoinedStr_kind=19, Constant_kind=20,
+ Attribute_kind=21, Subscript_kind=22, Starred_kind=23,
+ Name_kind=24, List_kind=25, Tuple_kind=26};
struct _expr {
enum _expr_kind kind;
union {
@@ -231,6 +231,11 @@ struct _expr {
} BoolOp;
struct {
+ expr_ty target;
+ expr_ty value;
+ } NamedExpr;
+
+ struct {
expr_ty left;
operator_ty op;
expr_ty right;
@@ -541,6 +546,10 @@ stmt_ty _Py_Continue(int lineno, int col_offset, int end_lineno, int
#define BoolOp(a0, a1, a2, a3, a4, a5, a6) _Py_BoolOp(a0, a1, a2, a3, a4, a5, a6)
expr_ty _Py_BoolOp(boolop_ty op, asdl_seq * values, int lineno, int col_offset,
int end_lineno, int end_col_offset, PyArena *arena);
+#define NamedExpr(a0, a1, a2, a3, a4, a5, a6) _Py_NamedExpr(a0, a1, a2, a3, a4, a5, a6)
+expr_ty _Py_NamedExpr(expr_ty target, expr_ty value, int lineno, int
+ col_offset, int end_lineno, int end_col_offset, PyArena
+ *arena);
#define BinOp(a0, a1, a2, a3, a4, a5, a6, a7) _Py_BinOp(a0, a1, a2, a3, a4, a5, a6, a7)
expr_ty _Py_BinOp(expr_ty left, operator_ty op, expr_ty right, int lineno, int
col_offset, int end_lineno, int end_col_offset, PyArena
diff --git a/Include/graminit.h b/Include/graminit.h
index bdfe821..e3acff8 100644
--- a/Include/graminit.h
+++ b/Include/graminit.h
@@ -49,41 +49,42 @@
#define with_item 302
#define except_clause 303
#define suite 304
-#define test 305
-#define test_nocond 306
-#define lambdef 307
-#define lambdef_nocond 308
-#define or_test 309
-#define and_test 310
-#define not_test 311
-#define comparison 312
-#define comp_op 313
-#define star_expr 314
-#define expr 315
-#define xor_expr 316
-#define and_expr 317
-#define shift_expr 318
-#define arith_expr 319
-#define term 320
-#define factor 321
-#define power 322
-#define atom_expr 323
-#define atom 324
-#define testlist_comp 325
-#define trailer 326
-#define subscriptlist 327
-#define subscript 328
-#define sliceop 329
-#define exprlist 330
-#define testlist 331
-#define dictorsetmaker 332
-#define classdef 333
-#define arglist 334
-#define argument 335
-#define comp_iter 336
-#define sync_comp_for 337
-#define comp_for 338
-#define comp_if 339
-#define encoding_decl 340
-#define yield_expr 341
-#define yield_arg 342
+#define namedexpr_test 305
+#define test 306
+#define test_nocond 307
+#define lambdef 308
+#define lambdef_nocond 309
+#define or_test 310
+#define and_test 311
+#define not_test 312
+#define comparison 313
+#define comp_op 314
+#define star_expr 315
+#define expr 316
+#define xor_expr 317
+#define and_expr 318
+#define shift_expr 319
+#define arith_expr 320
+#define term 321
+#define factor 322
+#define power 323
+#define atom_expr 324
+#define atom 325
+#define testlist_comp 326
+#define trailer 327
+#define subscriptlist 328
+#define subscript 329
+#define sliceop 330
+#define exprlist 331
+#define testlist 332
+#define dictorsetmaker 333
+#define classdef 334
+#define arglist 335
+#define argument 336
+#define comp_iter 337
+#define sync_comp_for 338
+#define comp_for 339
+#define comp_if 340
+#define encoding_decl 341
+#define yield_expr 342
+#define yield_arg 343
diff --git a/Include/pyerrors.h b/Include/pyerrors.h
index efe1c49..5c67518 100644
--- a/Include/pyerrors.h
+++ b/Include/pyerrors.h
@@ -108,6 +108,7 @@ PyAPI_DATA(PyObject *) PyExc_NotImplementedError;
PyAPI_DATA(PyObject *) PyExc_SyntaxError;
PyAPI_DATA(PyObject *) PyExc_IndentationError;
PyAPI_DATA(PyObject *) PyExc_TabError;
+PyAPI_DATA(PyObject *) PyExc_TargetScopeError;
PyAPI_DATA(PyObject *) PyExc_ReferenceError;
PyAPI_DATA(PyObject *) PyExc_SystemError;
PyAPI_DATA(PyObject *) PyExc_SystemExit;
diff --git a/Include/symtable.h b/Include/symtable.h
index 949022b..9392e64 100644
--- a/Include/symtable.h
+++ b/Include/symtable.h
@@ -50,6 +50,7 @@ typedef struct _symtable_entry {
including free refs to globals */
unsigned ste_generator : 1; /* true if namespace is a generator */
unsigned ste_coroutine : 1; /* true if namespace is a coroutine */
+ unsigned ste_comprehension : 1; /* true if namespace is a list comprehension */
unsigned ste_varargs : 1; /* true if block has varargs */
unsigned ste_varkeywords : 1; /* true if block has varkeywords */
unsigned ste_returns_value : 1; /* true if namespace uses return with
diff --git a/Include/token.h b/Include/token.h
index 2d491e6..b87b84c 100644
--- a/Include/token.h
+++ b/Include/token.h
@@ -63,9 +63,10 @@ extern "C" {
#define ATEQUAL 50
#define RARROW 51
#define ELLIPSIS 52
-#define OP 53
-#define ERRORTOKEN 54
-#define N_TOKENS 58
+#define COLONEQUAL 53
+#define OP 54
+#define ERRORTOKEN 55
+#define N_TOKENS 59
#define NT_OFFSET 256
/* Special definitions for cooperation with parser */