summaryrefslogtreecommitdiffstats
path: root/Python/Python-ast.c
diff options
context:
space:
mode:
authorThomas Wouters <thomas@python.org>2006-04-21 10:40:58 (GMT)
committerThomas Wouters <thomas@python.org>2006-04-21 10:40:58 (GMT)
commit49fd7fa4431da299196d74087df4a04f99f9c46f (patch)
tree35ace5fe78d3d52c7a9ab356ab9f6dbf8d4b71f4 /Python/Python-ast.c
parent9ada3d6e29d5165dadacbe6be07bcd35cfbef59d (diff)
downloadcpython-49fd7fa4431da299196d74087df4a04f99f9c46f.zip
cpython-49fd7fa4431da299196d74087df4a04f99f9c46f.tar.gz
cpython-49fd7fa4431da299196d74087df4a04f99f9c46f.tar.bz2
Merge p3yk branch with the trunk up to revision 45595. This breaks a fair
number of tests, all because of the codecs/_multibytecodecs issue described here (it's not a Py3K issue, just something Py3K discovers): http://mail.python.org/pipermail/python-dev/2006-April/064051.html Hye-Shik Chang promised to look for a fix, so no need to fix it here. The tests that are expected to break are: test_codecencodings_cn test_codecencodings_hk test_codecencodings_jp test_codecencodings_kr test_codecencodings_tw test_codecs test_multibytecodec This merge fixes an actual test failure (test_weakref) in this branch, though, so I believe merging is the right thing to do anyway.
Diffstat (limited to 'Python/Python-ast.c')
-rw-r--r--Python/Python-ast.c313
1 files changed, 165 insertions, 148 deletions
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 3f8345e..249f70e 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -331,6 +331,8 @@ static char *excepthandler_fields[]={
"type",
"name",
"body",
+ "lineno",
+ "col_offset",
};
static PyTypeObject *arguments_type;
static PyObject* ast2obj_arguments(void*);
@@ -381,10 +383,10 @@ static PyTypeObject* make_type(char *type, PyTypeObject* base, char**fields, int
static int add_attributes(PyTypeObject* type, char**attrs, int num_fields)
{
- int i;
+ int i, result;
PyObject *s, *l = PyList_New(num_fields);
if (!l) return 0;
- for(i=0; i < num_fields; i++) {
+ for(i = 0; i < num_fields; i++) {
s = PyString_FromString(attrs[i]);
if (!s) {
Py_DECREF(l);
@@ -392,7 +394,9 @@ static int add_attributes(PyTypeObject* type, char**attrs, int num_fields)
}
PyList_SET_ITEM(l, i, s);
}
- return PyObject_SetAttrString((PyObject*)type, "_attributes", l) >=0;
+ result = PyObject_SetAttrString((PyObject*)type, "_attributes", l) >= 0;
+ Py_DECREF(l);
+ return result;
}
static PyObject* ast2obj_list(asdl_seq *seq, PyObject* (*func)(void*))
@@ -432,9 +436,9 @@ static PyObject* ast2obj_int(bool b)
return PyInt_FromLong(b);
}
-static int initialized;
static int init_types(void)
{
+ static int initialized;
if (initialized) return 1;
AST_type = make_type("AST", &PyBaseObject_Type, NULL, 0);
mod_type = make_type("mod", AST_type, NULL, 0);
@@ -710,7 +714,7 @@ static int init_types(void)
comprehension_fields, 3);
if (!comprehension_type) return 0;
excepthandler_type = make_type("excepthandler", AST_type,
- excepthandler_fields, 3);
+ excepthandler_fields, 5);
if (!excepthandler_type) return 0;
arguments_type = make_type("arguments", AST_type, arguments_fields, 4);
if (!arguments_type) return 0;
@@ -1499,8 +1503,8 @@ Yield(expr_ty value, int lineno, int col_offset, PyArena *arena)
}
expr_ty
-Compare(expr_ty left, asdl_seq * ops, asdl_seq * comparators, int lineno, int
- col_offset, PyArena *arena)
+Compare(expr_ty left, asdl_int_seq * ops, asdl_seq * comparators, int lineno,
+ int col_offset, PyArena *arena)
{
expr_ty p;
if (!left) {
@@ -1841,7 +1845,8 @@ comprehension(expr_ty target, expr_ty iter, asdl_seq * ifs, PyArena *arena)
}
excepthandler_ty
-excepthandler(expr_ty type, expr_ty name, asdl_seq * body, PyArena *arena)
+excepthandler(expr_ty type, expr_ty name, asdl_seq * body, int lineno, int
+ col_offset, PyArena *arena)
{
excepthandler_ty p;
p = (excepthandler_ty)PyArena_Malloc(arena, sizeof(*p));
@@ -1852,6 +1857,8 @@ excepthandler(expr_ty type, expr_ty name, asdl_seq * body, PyArena *arena)
p->type = type;
p->name = name;
p->body = body;
+ p->lineno = lineno;
+ p->col_offset = col_offset;
return p;
}
@@ -2915,6 +2922,16 @@ ast2obj_excepthandler(void* _o)
if (PyObject_SetAttrString(result, "body", value) == -1)
goto failed;
Py_DECREF(value);
+ value = ast2obj_int(o->lineno);
+ if (!value) goto failed;
+ if (PyObject_SetAttrString(result, "lineno", value) == -1)
+ goto failed;
+ Py_DECREF(value);
+ value = ast2obj_int(o->col_offset);
+ if (!value) goto failed;
+ if (PyObject_SetAttrString(result, "col_offset", value) == -1)
+ goto failed;
+ Py_DECREF(value);
return result;
failed:
Py_XDECREF(value);
@@ -3033,146 +3050,146 @@ init_ast(void)
return;
if (PyModule_AddStringConstant(m, "__version__", "42753") < 0)
return;
- if(PyDict_SetItemString(d, "mod", (PyObject*)mod_type) < 0) return;
- if(PyDict_SetItemString(d, "Module", (PyObject*)Module_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Interactive", (PyObject*)Interactive_type)
- < 0) return;
- if(PyDict_SetItemString(d, "Expression", (PyObject*)Expression_type) <
- 0) return;
- if(PyDict_SetItemString(d, "Suite", (PyObject*)Suite_type) < 0) return;
- if(PyDict_SetItemString(d, "stmt", (PyObject*)stmt_type) < 0) return;
- if(PyDict_SetItemString(d, "FunctionDef", (PyObject*)FunctionDef_type)
- < 0) return;
- if(PyDict_SetItemString(d, "ClassDef", (PyObject*)ClassDef_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Return", (PyObject*)Return_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Delete", (PyObject*)Delete_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Assign", (PyObject*)Assign_type) < 0)
- return;
- if(PyDict_SetItemString(d, "AugAssign", (PyObject*)AugAssign_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Print", (PyObject*)Print_type) < 0) return;
- if(PyDict_SetItemString(d, "For", (PyObject*)For_type) < 0) return;
- if(PyDict_SetItemString(d, "While", (PyObject*)While_type) < 0) return;
- if(PyDict_SetItemString(d, "If", (PyObject*)If_type) < 0) return;
- if(PyDict_SetItemString(d, "With", (PyObject*)With_type) < 0) return;
- if(PyDict_SetItemString(d, "Raise", (PyObject*)Raise_type) < 0) return;
- if(PyDict_SetItemString(d, "TryExcept", (PyObject*)TryExcept_type) < 0)
- return;
- if(PyDict_SetItemString(d, "TryFinally", (PyObject*)TryFinally_type) <
- 0) return;
- if(PyDict_SetItemString(d, "Assert", (PyObject*)Assert_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Import", (PyObject*)Import_type) < 0)
- return;
- if(PyDict_SetItemString(d, "ImportFrom", (PyObject*)ImportFrom_type) <
- 0) return;
- if(PyDict_SetItemString(d, "Exec", (PyObject*)Exec_type) < 0) return;
- if(PyDict_SetItemString(d, "Global", (PyObject*)Global_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Expr", (PyObject*)Expr_type) < 0) return;
- if(PyDict_SetItemString(d, "Pass", (PyObject*)Pass_type) < 0) return;
- if(PyDict_SetItemString(d, "Break", (PyObject*)Break_type) < 0) return;
- if(PyDict_SetItemString(d, "Continue", (PyObject*)Continue_type) < 0)
- return;
- if(PyDict_SetItemString(d, "expr", (PyObject*)expr_type) < 0) return;
- if(PyDict_SetItemString(d, "BoolOp", (PyObject*)BoolOp_type) < 0)
- return;
- if(PyDict_SetItemString(d, "BinOp", (PyObject*)BinOp_type) < 0) return;
- if(PyDict_SetItemString(d, "UnaryOp", (PyObject*)UnaryOp_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Lambda", (PyObject*)Lambda_type) < 0)
- return;
- if(PyDict_SetItemString(d, "IfExp", (PyObject*)IfExp_type) < 0) return;
- if(PyDict_SetItemString(d, "Dict", (PyObject*)Dict_type) < 0) return;
- if(PyDict_SetItemString(d, "ListComp", (PyObject*)ListComp_type) < 0)
- return;
- if(PyDict_SetItemString(d, "GeneratorExp",
- (PyObject*)GeneratorExp_type) < 0) return;
- if(PyDict_SetItemString(d, "Yield", (PyObject*)Yield_type) < 0) return;
- if(PyDict_SetItemString(d, "Compare", (PyObject*)Compare_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Call", (PyObject*)Call_type) < 0) return;
- if(PyDict_SetItemString(d, "Repr", (PyObject*)Repr_type) < 0) return;
- if(PyDict_SetItemString(d, "Num", (PyObject*)Num_type) < 0) return;
- if(PyDict_SetItemString(d, "Str", (PyObject*)Str_type) < 0) return;
- if(PyDict_SetItemString(d, "Attribute", (PyObject*)Attribute_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Subscript", (PyObject*)Subscript_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Name", (PyObject*)Name_type) < 0) return;
- if(PyDict_SetItemString(d, "List", (PyObject*)List_type) < 0) return;
- if(PyDict_SetItemString(d, "Tuple", (PyObject*)Tuple_type) < 0) return;
- if(PyDict_SetItemString(d, "expr_context",
- (PyObject*)expr_context_type) < 0) return;
- if(PyDict_SetItemString(d, "Load", (PyObject*)Load_type) < 0) return;
- if(PyDict_SetItemString(d, "Store", (PyObject*)Store_type) < 0) return;
- if(PyDict_SetItemString(d, "Del", (PyObject*)Del_type) < 0) return;
- if(PyDict_SetItemString(d, "AugLoad", (PyObject*)AugLoad_type) < 0)
- return;
- if(PyDict_SetItemString(d, "AugStore", (PyObject*)AugStore_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Param", (PyObject*)Param_type) < 0) return;
- if(PyDict_SetItemString(d, "slice", (PyObject*)slice_type) < 0) return;
- if(PyDict_SetItemString(d, "Ellipsis", (PyObject*)Ellipsis_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Slice", (PyObject*)Slice_type) < 0) return;
- if(PyDict_SetItemString(d, "ExtSlice", (PyObject*)ExtSlice_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Index", (PyObject*)Index_type) < 0) return;
- if(PyDict_SetItemString(d, "boolop", (PyObject*)boolop_type) < 0)
- return;
- if(PyDict_SetItemString(d, "And", (PyObject*)And_type) < 0) return;
- if(PyDict_SetItemString(d, "Or", (PyObject*)Or_type) < 0) return;
- if(PyDict_SetItemString(d, "operator", (PyObject*)operator_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Add", (PyObject*)Add_type) < 0) return;
- if(PyDict_SetItemString(d, "Sub", (PyObject*)Sub_type) < 0) return;
- if(PyDict_SetItemString(d, "Mult", (PyObject*)Mult_type) < 0) return;
- if(PyDict_SetItemString(d, "Div", (PyObject*)Div_type) < 0) return;
- if(PyDict_SetItemString(d, "Mod", (PyObject*)Mod_type) < 0) return;
- if(PyDict_SetItemString(d, "Pow", (PyObject*)Pow_type) < 0) return;
- if(PyDict_SetItemString(d, "LShift", (PyObject*)LShift_type) < 0)
- return;
- if(PyDict_SetItemString(d, "RShift", (PyObject*)RShift_type) < 0)
- return;
- if(PyDict_SetItemString(d, "BitOr", (PyObject*)BitOr_type) < 0) return;
- if(PyDict_SetItemString(d, "BitXor", (PyObject*)BitXor_type) < 0)
- return;
- if(PyDict_SetItemString(d, "BitAnd", (PyObject*)BitAnd_type) < 0)
- return;
- if(PyDict_SetItemString(d, "FloorDiv", (PyObject*)FloorDiv_type) < 0)
- return;
- if(PyDict_SetItemString(d, "unaryop", (PyObject*)unaryop_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Invert", (PyObject*)Invert_type) < 0)
- return;
- if(PyDict_SetItemString(d, "Not", (PyObject*)Not_type) < 0) return;
- if(PyDict_SetItemString(d, "UAdd", (PyObject*)UAdd_type) < 0) return;
- if(PyDict_SetItemString(d, "USub", (PyObject*)USub_type) < 0) return;
- if(PyDict_SetItemString(d, "cmpop", (PyObject*)cmpop_type) < 0) return;
- if(PyDict_SetItemString(d, "Eq", (PyObject*)Eq_type) < 0) return;
- if(PyDict_SetItemString(d, "NotEq", (PyObject*)NotEq_type) < 0) return;
- if(PyDict_SetItemString(d, "Lt", (PyObject*)Lt_type) < 0) return;
- if(PyDict_SetItemString(d, "LtE", (PyObject*)LtE_type) < 0) return;
- if(PyDict_SetItemString(d, "Gt", (PyObject*)Gt_type) < 0) return;
- if(PyDict_SetItemString(d, "GtE", (PyObject*)GtE_type) < 0) return;
- if(PyDict_SetItemString(d, "Is", (PyObject*)Is_type) < 0) return;
- if(PyDict_SetItemString(d, "IsNot", (PyObject*)IsNot_type) < 0) return;
- if(PyDict_SetItemString(d, "In", (PyObject*)In_type) < 0) return;
- if(PyDict_SetItemString(d, "NotIn", (PyObject*)NotIn_type) < 0) return;
- if(PyDict_SetItemString(d, "comprehension",
- (PyObject*)comprehension_type) < 0) return;
- if(PyDict_SetItemString(d, "excepthandler",
- (PyObject*)excepthandler_type) < 0) return;
- if(PyDict_SetItemString(d, "arguments", (PyObject*)arguments_type) < 0)
- return;
- if(PyDict_SetItemString(d, "keyword", (PyObject*)keyword_type) < 0)
- return;
- if(PyDict_SetItemString(d, "alias", (PyObject*)alias_type) < 0) return;
+ if (PyDict_SetItemString(d, "mod", (PyObject*)mod_type) < 0) return;
+ if (PyDict_SetItemString(d, "Module", (PyObject*)Module_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Interactive", (PyObject*)Interactive_type)
+ < 0) return;
+ if (PyDict_SetItemString(d, "Expression", (PyObject*)Expression_type) <
+ 0) return;
+ if (PyDict_SetItemString(d, "Suite", (PyObject*)Suite_type) < 0) return;
+ if (PyDict_SetItemString(d, "stmt", (PyObject*)stmt_type) < 0) return;
+ if (PyDict_SetItemString(d, "FunctionDef", (PyObject*)FunctionDef_type)
+ < 0) return;
+ if (PyDict_SetItemString(d, "ClassDef", (PyObject*)ClassDef_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Return", (PyObject*)Return_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Delete", (PyObject*)Delete_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Assign", (PyObject*)Assign_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "AugAssign", (PyObject*)AugAssign_type) <
+ 0) return;
+ if (PyDict_SetItemString(d, "Print", (PyObject*)Print_type) < 0) return;
+ if (PyDict_SetItemString(d, "For", (PyObject*)For_type) < 0) return;
+ if (PyDict_SetItemString(d, "While", (PyObject*)While_type) < 0) return;
+ if (PyDict_SetItemString(d, "If", (PyObject*)If_type) < 0) return;
+ if (PyDict_SetItemString(d, "With", (PyObject*)With_type) < 0) return;
+ if (PyDict_SetItemString(d, "Raise", (PyObject*)Raise_type) < 0) return;
+ if (PyDict_SetItemString(d, "TryExcept", (PyObject*)TryExcept_type) <
+ 0) return;
+ if (PyDict_SetItemString(d, "TryFinally", (PyObject*)TryFinally_type) <
+ 0) return;
+ if (PyDict_SetItemString(d, "Assert", (PyObject*)Assert_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Import", (PyObject*)Import_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "ImportFrom", (PyObject*)ImportFrom_type) <
+ 0) return;
+ if (PyDict_SetItemString(d, "Exec", (PyObject*)Exec_type) < 0) return;
+ if (PyDict_SetItemString(d, "Global", (PyObject*)Global_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Expr", (PyObject*)Expr_type) < 0) return;
+ if (PyDict_SetItemString(d, "Pass", (PyObject*)Pass_type) < 0) return;
+ if (PyDict_SetItemString(d, "Break", (PyObject*)Break_type) < 0) return;
+ if (PyDict_SetItemString(d, "Continue", (PyObject*)Continue_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "expr", (PyObject*)expr_type) < 0) return;
+ if (PyDict_SetItemString(d, "BoolOp", (PyObject*)BoolOp_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "BinOp", (PyObject*)BinOp_type) < 0) return;
+ if (PyDict_SetItemString(d, "UnaryOp", (PyObject*)UnaryOp_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Lambda", (PyObject*)Lambda_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "IfExp", (PyObject*)IfExp_type) < 0) return;
+ if (PyDict_SetItemString(d, "Dict", (PyObject*)Dict_type) < 0) return;
+ if (PyDict_SetItemString(d, "ListComp", (PyObject*)ListComp_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "GeneratorExp",
+ (PyObject*)GeneratorExp_type) < 0) return;
+ if (PyDict_SetItemString(d, "Yield", (PyObject*)Yield_type) < 0) return;
+ if (PyDict_SetItemString(d, "Compare", (PyObject*)Compare_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Call", (PyObject*)Call_type) < 0) return;
+ if (PyDict_SetItemString(d, "Repr", (PyObject*)Repr_type) < 0) return;
+ if (PyDict_SetItemString(d, "Num", (PyObject*)Num_type) < 0) return;
+ if (PyDict_SetItemString(d, "Str", (PyObject*)Str_type) < 0) return;
+ if (PyDict_SetItemString(d, "Attribute", (PyObject*)Attribute_type) <
+ 0) return;
+ if (PyDict_SetItemString(d, "Subscript", (PyObject*)Subscript_type) <
+ 0) return;
+ if (PyDict_SetItemString(d, "Name", (PyObject*)Name_type) < 0) return;
+ if (PyDict_SetItemString(d, "List", (PyObject*)List_type) < 0) return;
+ if (PyDict_SetItemString(d, "Tuple", (PyObject*)Tuple_type) < 0) return;
+ if (PyDict_SetItemString(d, "expr_context",
+ (PyObject*)expr_context_type) < 0) return;
+ if (PyDict_SetItemString(d, "Load", (PyObject*)Load_type) < 0) return;
+ if (PyDict_SetItemString(d, "Store", (PyObject*)Store_type) < 0) return;
+ if (PyDict_SetItemString(d, "Del", (PyObject*)Del_type) < 0) return;
+ if (PyDict_SetItemString(d, "AugLoad", (PyObject*)AugLoad_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "AugStore", (PyObject*)AugStore_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Param", (PyObject*)Param_type) < 0) return;
+ if (PyDict_SetItemString(d, "slice", (PyObject*)slice_type) < 0) return;
+ if (PyDict_SetItemString(d, "Ellipsis", (PyObject*)Ellipsis_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Slice", (PyObject*)Slice_type) < 0) return;
+ if (PyDict_SetItemString(d, "ExtSlice", (PyObject*)ExtSlice_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Index", (PyObject*)Index_type) < 0) return;
+ if (PyDict_SetItemString(d, "boolop", (PyObject*)boolop_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "And", (PyObject*)And_type) < 0) return;
+ if (PyDict_SetItemString(d, "Or", (PyObject*)Or_type) < 0) return;
+ if (PyDict_SetItemString(d, "operator", (PyObject*)operator_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Add", (PyObject*)Add_type) < 0) return;
+ if (PyDict_SetItemString(d, "Sub", (PyObject*)Sub_type) < 0) return;
+ if (PyDict_SetItemString(d, "Mult", (PyObject*)Mult_type) < 0) return;
+ if (PyDict_SetItemString(d, "Div", (PyObject*)Div_type) < 0) return;
+ if (PyDict_SetItemString(d, "Mod", (PyObject*)Mod_type) < 0) return;
+ if (PyDict_SetItemString(d, "Pow", (PyObject*)Pow_type) < 0) return;
+ if (PyDict_SetItemString(d, "LShift", (PyObject*)LShift_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "RShift", (PyObject*)RShift_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "BitOr", (PyObject*)BitOr_type) < 0) return;
+ if (PyDict_SetItemString(d, "BitXor", (PyObject*)BitXor_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "BitAnd", (PyObject*)BitAnd_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "FloorDiv", (PyObject*)FloorDiv_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "unaryop", (PyObject*)unaryop_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Invert", (PyObject*)Invert_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "Not", (PyObject*)Not_type) < 0) return;
+ if (PyDict_SetItemString(d, "UAdd", (PyObject*)UAdd_type) < 0) return;
+ if (PyDict_SetItemString(d, "USub", (PyObject*)USub_type) < 0) return;
+ if (PyDict_SetItemString(d, "cmpop", (PyObject*)cmpop_type) < 0) return;
+ if (PyDict_SetItemString(d, "Eq", (PyObject*)Eq_type) < 0) return;
+ if (PyDict_SetItemString(d, "NotEq", (PyObject*)NotEq_type) < 0) return;
+ if (PyDict_SetItemString(d, "Lt", (PyObject*)Lt_type) < 0) return;
+ if (PyDict_SetItemString(d, "LtE", (PyObject*)LtE_type) < 0) return;
+ if (PyDict_SetItemString(d, "Gt", (PyObject*)Gt_type) < 0) return;
+ if (PyDict_SetItemString(d, "GtE", (PyObject*)GtE_type) < 0) return;
+ if (PyDict_SetItemString(d, "Is", (PyObject*)Is_type) < 0) return;
+ if (PyDict_SetItemString(d, "IsNot", (PyObject*)IsNot_type) < 0) return;
+ if (PyDict_SetItemString(d, "In", (PyObject*)In_type) < 0) return;
+ if (PyDict_SetItemString(d, "NotIn", (PyObject*)NotIn_type) < 0) return;
+ if (PyDict_SetItemString(d, "comprehension",
+ (PyObject*)comprehension_type) < 0) return;
+ if (PyDict_SetItemString(d, "excepthandler",
+ (PyObject*)excepthandler_type) < 0) return;
+ if (PyDict_SetItemString(d, "arguments", (PyObject*)arguments_type) <
+ 0) return;
+ if (PyDict_SetItemString(d, "keyword", (PyObject*)keyword_type) < 0)
+ return;
+ if (PyDict_SetItemString(d, "alias", (PyObject*)alias_type) < 0) return;
}