mirror of
https://github.com/python/cpython.git
synced 2025-07-28 13:44:43 +00:00
account for PyObject_IsInstance's new ability to fail
This commit is contained in:
parent
c169c781a8
commit
5f429e0227
3 changed files with 464 additions and 90 deletions
|
@ -3175,13 +3175,18 @@ int
|
|||
obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
|
||||
if (obj == Py_None) {
|
||||
*out = NULL;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Module_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Module_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* body;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "body")) {
|
||||
|
@ -3213,7 +3218,11 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Interactive_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Interactive_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* body;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "body")) {
|
||||
|
@ -3245,7 +3254,11 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Expression_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Expression_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty body;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "body")) {
|
||||
|
@ -3264,7 +3277,11 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Suite_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Suite_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* body;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "body")) {
|
||||
|
@ -3309,6 +3326,7 @@ int
|
|||
obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
int lineno;
|
||||
int col_offset;
|
||||
|
@ -3341,7 +3359,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from stmt");
|
||||
return 1;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)FunctionDef_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)FunctionDef_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
identifier name;
|
||||
arguments_ty args;
|
||||
asdl_seq* body;
|
||||
|
@ -3426,7 +3448,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)ClassDef_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)ClassDef_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
identifier name;
|
||||
asdl_seq* bases;
|
||||
asdl_seq* body;
|
||||
|
@ -3524,7 +3550,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Return_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Return_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty value;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "value")) {
|
||||
|
@ -3542,7 +3572,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Delete_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Delete_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* targets;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "targets")) {
|
||||
|
@ -3574,7 +3608,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Assign_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Assign_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* targets;
|
||||
expr_ty value;
|
||||
|
||||
|
@ -3619,7 +3657,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)AugAssign_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)AugAssign_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty target;
|
||||
operator_ty op;
|
||||
expr_ty value;
|
||||
|
@ -3664,7 +3706,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Print_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Print_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty dest;
|
||||
asdl_seq* values;
|
||||
bool nl;
|
||||
|
@ -3721,7 +3767,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)For_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)For_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty target;
|
||||
expr_ty iter;
|
||||
asdl_seq* body;
|
||||
|
@ -3806,7 +3856,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)While_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)While_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty test;
|
||||
asdl_seq* body;
|
||||
asdl_seq* orelse;
|
||||
|
@ -3877,7 +3931,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)If_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)If_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty test;
|
||||
asdl_seq* body;
|
||||
asdl_seq* orelse;
|
||||
|
@ -3948,7 +4006,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)With_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)With_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty context_expr;
|
||||
expr_ty optional_vars;
|
||||
asdl_seq* body;
|
||||
|
@ -4006,7 +4068,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Raise_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Raise_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty type;
|
||||
expr_ty inst;
|
||||
expr_ty tback;
|
||||
|
@ -4048,7 +4114,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)TryExcept_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)TryExcept_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* body;
|
||||
asdl_seq* handlers;
|
||||
asdl_seq* orelse;
|
||||
|
@ -4133,7 +4203,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)TryFinally_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)TryFinally_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* body;
|
||||
asdl_seq* finalbody;
|
||||
|
||||
|
@ -4191,7 +4265,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Assert_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Assert_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty test;
|
||||
expr_ty msg;
|
||||
|
||||
|
@ -4222,7 +4300,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Import_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Import_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* names;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "names")) {
|
||||
|
@ -4254,7 +4336,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)ImportFrom_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)ImportFrom_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
identifier module;
|
||||
asdl_seq* names;
|
||||
int level;
|
||||
|
@ -4311,7 +4397,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Exec_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Exec_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty body;
|
||||
expr_ty globals;
|
||||
expr_ty locals;
|
||||
|
@ -4354,7 +4444,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Global_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Global_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* names;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "names")) {
|
||||
|
@ -4386,7 +4480,11 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Expr_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Expr_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty value;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "value")) {
|
||||
|
@ -4405,19 +4503,31 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Pass_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Pass_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
|
||||
*out = Pass(lineno, col_offset, arena);
|
||||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Break_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Break_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
|
||||
*out = Break(lineno, col_offset, arena);
|
||||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Continue_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Continue_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
|
||||
*out = Continue(lineno, col_offset, arena);
|
||||
if (*out == NULL) goto failed;
|
||||
|
@ -4436,6 +4546,7 @@ int
|
|||
obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
int lineno;
|
||||
int col_offset;
|
||||
|
@ -4468,7 +4579,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from expr");
|
||||
return 1;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)BoolOp_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)BoolOp_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
boolop_ty op;
|
||||
asdl_seq* values;
|
||||
|
||||
|
@ -4513,7 +4628,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)BinOp_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)BinOp_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty left;
|
||||
operator_ty op;
|
||||
expr_ty right;
|
||||
|
@ -4558,7 +4677,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)UnaryOp_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)UnaryOp_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
unaryop_ty op;
|
||||
expr_ty operand;
|
||||
|
||||
|
@ -4590,7 +4713,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Lambda_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Lambda_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
arguments_ty args;
|
||||
expr_ty body;
|
||||
|
||||
|
@ -4622,7 +4749,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)IfExp_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)IfExp_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty test;
|
||||
expr_ty body;
|
||||
expr_ty orelse;
|
||||
|
@ -4667,7 +4798,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Dict_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Dict_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* keys;
|
||||
asdl_seq* values;
|
||||
|
||||
|
@ -4725,7 +4860,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)ListComp_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)ListComp_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty elt;
|
||||
asdl_seq* generators;
|
||||
|
||||
|
@ -4770,7 +4909,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)GeneratorExp_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)GeneratorExp_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty elt;
|
||||
asdl_seq* generators;
|
||||
|
||||
|
@ -4815,7 +4958,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Yield_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Yield_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty value;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "value")) {
|
||||
|
@ -4833,7 +4980,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Compare_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Compare_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty left;
|
||||
asdl_int_seq* ops;
|
||||
asdl_seq* comparators;
|
||||
|
@ -4905,7 +5056,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Call_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Call_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty func;
|
||||
asdl_seq* args;
|
||||
asdl_seq* keywords;
|
||||
|
@ -5001,7 +5156,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Repr_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Repr_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty value;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "value")) {
|
||||
|
@ -5020,7 +5179,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Num_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Num_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
object n;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "n")) {
|
||||
|
@ -5039,7 +5202,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Str_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Str_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
string s;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "s")) {
|
||||
|
@ -5058,7 +5225,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Attribute_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Attribute_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty value;
|
||||
identifier attr;
|
||||
expr_context_ty ctx;
|
||||
|
@ -5103,7 +5274,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Subscript_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Subscript_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty value;
|
||||
slice_ty slice;
|
||||
expr_context_ty ctx;
|
||||
|
@ -5148,7 +5323,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Name_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Name_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
identifier id;
|
||||
expr_context_ty ctx;
|
||||
|
||||
|
@ -5180,7 +5359,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)List_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)List_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* elts;
|
||||
expr_context_ty ctx;
|
||||
|
||||
|
@ -5225,7 +5408,11 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Tuple_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Tuple_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* elts;
|
||||
expr_context_ty ctx;
|
||||
|
||||
|
@ -5283,28 +5470,53 @@ int
|
|||
obj2ast_expr_context(PyObject* obj, expr_context_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Load_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Load_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Load;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Store_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Store_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Store;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Del_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Del_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Del;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)AugLoad_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)AugLoad_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = AugLoad;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)AugStore_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)AugStore_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = AugStore;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Param_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Param_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Param;
|
||||
return 0;
|
||||
}
|
||||
|
@ -5321,19 +5533,28 @@ int
|
|||
obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
|
||||
if (obj == Py_None) {
|
||||
*out = NULL;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Ellipsis_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Ellipsis_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
|
||||
*out = Ellipsis(arena);
|
||||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Slice_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Slice_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty lower;
|
||||
expr_ty upper;
|
||||
expr_ty step;
|
||||
|
@ -5375,7 +5596,11 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)ExtSlice_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)ExtSlice_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
asdl_seq* dims;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "dims")) {
|
||||
|
@ -5407,7 +5632,11 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
|
|||
if (*out == NULL) goto failed;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Index_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)Index_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty value;
|
||||
|
||||
if (PyObject_HasAttrString(obj, "value")) {
|
||||
|
@ -5439,12 +5668,21 @@ int
|
|||
obj2ast_boolop(PyObject* obj, boolop_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
if (PyObject_IsInstance(obj, (PyObject*)And_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)And_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = And;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Or_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Or_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Or;
|
||||
return 0;
|
||||
}
|
||||
|
@ -5461,52 +5699,101 @@ int
|
|||
obj2ast_operator(PyObject* obj, operator_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Add_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Add_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Add;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Sub_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Sub_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Sub;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Mult_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Mult_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Mult;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Div_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Div_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Div;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Mod_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Mod_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Mod;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Pow_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Pow_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Pow;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)LShift_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)LShift_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = LShift;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)RShift_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)RShift_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = RShift;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)BitOr_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)BitOr_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = BitOr;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)BitXor_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)BitXor_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = BitXor;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)BitAnd_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)BitAnd_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = BitAnd;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)FloorDiv_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)FloorDiv_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = FloorDiv;
|
||||
return 0;
|
||||
}
|
||||
|
@ -5523,20 +5810,37 @@ int
|
|||
obj2ast_unaryop(PyObject* obj, unaryop_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Invert_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Invert_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Invert;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Not_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Not_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Not;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)UAdd_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)UAdd_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = UAdd;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)USub_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)USub_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = USub;
|
||||
return 0;
|
||||
}
|
||||
|
@ -5553,44 +5857,85 @@ int
|
|||
obj2ast_cmpop(PyObject* obj, cmpop_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Eq_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Eq_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Eq;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)NotEq_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)NotEq_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = NotEq;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Lt_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Lt_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Lt;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)LtE_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)LtE_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = LtE;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Gt_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Gt_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Gt;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)GtE_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)GtE_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = GtE;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)Is_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)Is_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = Is;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)IsNot_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)IsNot_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = IsNot;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)In_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)In_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = In;
|
||||
return 0;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)NotIn_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject *)NotIn_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
*out = NotIn;
|
||||
return 0;
|
||||
}
|
||||
|
@ -5671,6 +6016,7 @@ int
|
|||
obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
|
||||
{
|
||||
PyObject* tmp = NULL;
|
||||
int isinstance;
|
||||
|
||||
int lineno;
|
||||
int col_offset;
|
||||
|
@ -5703,7 +6049,11 @@ obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
|
|||
PyErr_SetString(PyExc_TypeError, "required field \"col_offset\" missing from excepthandler");
|
||||
return 1;
|
||||
}
|
||||
if (PyObject_IsInstance(obj, (PyObject*)ExceptHandler_type)) {
|
||||
isinstance = PyObject_IsInstance(obj, (PyObject*)ExceptHandler_type);
|
||||
if (isinstance == -1) {
|
||||
return 1;
|
||||
}
|
||||
if (isinstance) {
|
||||
expr_ty type;
|
||||
expr_ty name;
|
||||
asdl_seq* body;
|
||||
|
@ -6104,11 +6454,15 @@ mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
|
|||
PyObject *req_type[] = {(PyObject*)Module_type, (PyObject*)Expression_type,
|
||||
(PyObject*)Interactive_type};
|
||||
char *req_name[] = {"Module", "Expression", "Interactive"};
|
||||
int isinstance;
|
||||
assert(0 <= mode && mode <= 2);
|
||||
|
||||
init_types();
|
||||
|
||||
if (!PyObject_IsInstance(ast, req_type[mode])) {
|
||||
isinstance = PyObject_IsInstance(ast, req_type[mode]);
|
||||
if (isinstance == -1)
|
||||
return NULL;
|
||||
if (!isinstance) {
|
||||
PyErr_Format(PyExc_TypeError, "expected %s node, got %.400s",
|
||||
req_name[mode], Py_TYPE(ast)->tp_name);
|
||||
return NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue