Merge from ast-arena. This reduces the code in Python/ast.c by ~300 … · python/cpython@adb69fc

GitHub

@@ -328,81 +328,79 @@ struct _alias {

328328};

329329330330331-mod_tyModule(asdl_seq*body);

332-mod_tyInteractive(asdl_seq*body);

333-mod_tyExpression(expr_tybody);

334-mod_tySuite(asdl_seq*body);

331+mod_tyModule(asdl_seq*body, PyArena*arena);

332+mod_tyInteractive(asdl_seq*body, PyArena*arena);

333+mod_tyExpression(expr_tybody, PyArena*arena);

334+mod_tySuite(asdl_seq*body, PyArena*arena);

335335stmt_tyFunctionDef(identifiername, arguments_tyargs, asdl_seq*body,

336-asdl_seq*decorators, intlineno);

336+asdl_seq*decorators, intlineno, PyArena*arena);

337337stmt_tyClassDef(identifiername, asdl_seq*bases, asdl_seq*body, int

338-lineno);

339-stmt_tyReturn(expr_tyvalue, intlineno);

340-stmt_tyDelete(asdl_seq*targets, intlineno);

341-stmt_tyAssign(asdl_seq*targets, expr_tyvalue, intlineno);

342-stmt_tyAugAssign(expr_tytarget, operator_tyop, expr_tyvalue, intlineno);

343-stmt_tyPrint(expr_tydest, asdl_seq*values, boolnl, intlineno);

338+lineno, PyArena*arena);

339+stmt_tyReturn(expr_tyvalue, intlineno, PyArena*arena);

340+stmt_tyDelete(asdl_seq*targets, intlineno, PyArena*arena);

341+stmt_tyAssign(asdl_seq*targets, expr_tyvalue, intlineno, PyArena*arena);

342+stmt_tyAugAssign(expr_tytarget, operator_tyop, expr_tyvalue, intlineno,

343+PyArena*arena);

344+stmt_tyPrint(expr_tydest, asdl_seq*values, boolnl, intlineno, PyArena

345+*arena);

344346stmt_tyFor(expr_tytarget, expr_tyiter, asdl_seq*body, asdl_seq*orelse,

345-intlineno);

346-stmt_tyWhile(expr_tytest, asdl_seq*body, asdl_seq*orelse, intlineno);

347-stmt_tyIf(expr_tytest, asdl_seq*body, asdl_seq*orelse, intlineno);

348-stmt_tyRaise(expr_tytype, expr_tyinst, expr_tytback, intlineno);

347+intlineno, PyArena*arena);

348+stmt_tyWhile(expr_tytest, asdl_seq*body, asdl_seq*orelse, intlineno,

349+PyArena*arena);

350+stmt_tyIf(expr_tytest, asdl_seq*body, asdl_seq*orelse, intlineno,

351+PyArena*arena);

352+stmt_tyRaise(expr_tytype, expr_tyinst, expr_tytback, intlineno, PyArena

353+*arena);

349354stmt_tyTryExcept(asdl_seq*body, asdl_seq*handlers, asdl_seq*orelse, int

350-lineno);

351-stmt_tyTryFinally(asdl_seq*body, asdl_seq*finalbody, intlineno);

352-stmt_tyAssert(expr_tytest, expr_tymsg, intlineno);

353-stmt_tyImport(asdl_seq*names, intlineno);

354-stmt_tyImportFrom(identifiermodule, asdl_seq*names, intlineno);

355-stmt_tyExec(expr_tybody, expr_tyglobals, expr_tylocals, intlineno);

356-stmt_tyGlobal(asdl_seq*names, intlineno);

357-stmt_tyExpr(expr_tyvalue, intlineno);

358-stmt_tyPass(intlineno);

359-stmt_tyBreak(intlineno);

360-stmt_tyContinue(intlineno);

361-expr_tyBoolOp(boolop_tyop, asdl_seq*values, intlineno);

362-expr_tyBinOp(expr_tyleft, operator_tyop, expr_tyright, intlineno);

363-expr_tyUnaryOp(unaryop_tyop, expr_tyoperand, intlineno);

364-expr_tyLambda(arguments_tyargs, expr_tybody, intlineno);

365-expr_tyDict(asdl_seq*keys, asdl_seq*values, intlineno);

366-expr_tyListComp(expr_tyelt, asdl_seq*generators, intlineno);

367-expr_tyGeneratorExp(expr_tyelt, asdl_seq*generators, intlineno);

368-expr_tyYield(expr_tyvalue, intlineno);

355+lineno, PyArena*arena);

356+stmt_tyTryFinally(asdl_seq*body, asdl_seq*finalbody, intlineno, PyArena

357+*arena);

358+stmt_tyAssert(expr_tytest, expr_tymsg, intlineno, PyArena*arena);

359+stmt_tyImport(asdl_seq*names, intlineno, PyArena*arena);

360+stmt_tyImportFrom(identifiermodule, asdl_seq*names, intlineno, PyArena

361+*arena);

362+stmt_tyExec(expr_tybody, expr_tyglobals, expr_tylocals, intlineno, PyArena

363+*arena);

364+stmt_tyGlobal(asdl_seq*names, intlineno, PyArena*arena);

365+stmt_tyExpr(expr_tyvalue, intlineno, PyArena*arena);

366+stmt_tyPass(intlineno, PyArena*arena);

367+stmt_tyBreak(intlineno, PyArena*arena);

368+stmt_tyContinue(intlineno, PyArena*arena);

369+expr_tyBoolOp(boolop_tyop, asdl_seq*values, intlineno, PyArena*arena);

370+expr_tyBinOp(expr_tyleft, operator_tyop, expr_tyright, intlineno, PyArena

371+*arena);

372+expr_tyUnaryOp(unaryop_tyop, expr_tyoperand, intlineno, PyArena*arena);

373+expr_tyLambda(arguments_tyargs, expr_tybody, intlineno, PyArena*arena);

374+expr_tyDict(asdl_seq*keys, asdl_seq*values, intlineno, PyArena*arena);

375+expr_tyListComp(expr_tyelt, asdl_seq*generators, intlineno, PyArena

376+*arena);

377+expr_tyGeneratorExp(expr_tyelt, asdl_seq*generators, intlineno, PyArena

378+*arena);

379+expr_tyYield(expr_tyvalue, intlineno, PyArena*arena);

369380expr_tyCompare(expr_tyleft, asdl_seq*ops, asdl_seq*comparators, int

370-lineno);

381+lineno, PyArena*arena);

371382expr_tyCall(expr_tyfunc, asdl_seq*args, asdl_seq*keywords, expr_ty

372-starargs, expr_tykwargs, intlineno);

373-expr_tyRepr(expr_tyvalue, intlineno);

374-expr_tyNum(objectn, intlineno);

375-expr_tyStr(strings, intlineno);

383+starargs, expr_tykwargs, intlineno, PyArena*arena);

384+expr_tyRepr(expr_tyvalue, intlineno, PyArena*arena);

385+expr_tyNum(objectn, intlineno, PyArena*arena);

386+expr_tyStr(strings, intlineno, PyArena*arena);

376387expr_tyAttribute(expr_tyvalue, identifierattr, expr_context_tyctx, int

377-lineno);

388+lineno, PyArena*arena);

378389expr_tySubscript(expr_tyvalue, slice_tyslice, expr_context_tyctx, int

379-lineno);

380-expr_tyName(identifierid, expr_context_tyctx, intlineno);

381-expr_tyList(asdl_seq*elts, expr_context_tyctx, intlineno);

382-expr_tyTuple(asdl_seq*elts, expr_context_tyctx, intlineno);

383-slice_tyEllipsis(void);

384-slice_tySlice(expr_tylower, expr_tyupper, expr_tystep);

385-slice_tyExtSlice(asdl_seq*dims);

386-slice_tyIndex(expr_tyvalue);

387-comprehension_tycomprehension(expr_tytarget, expr_tyiter, asdl_seq*ifs);

388-excepthandler_tyexcepthandler(expr_tytype, expr_tyname, asdl_seq*body);

390+lineno, PyArena*arena);

391+expr_tyName(identifierid, expr_context_tyctx, intlineno, PyArena*arena);

392+expr_tyList(asdl_seq*elts, expr_context_tyctx, intlineno, PyArena*arena);

393+expr_tyTuple(asdl_seq*elts, expr_context_tyctx, intlineno, PyArena*arena);

394+slice_tyEllipsis(PyArena*arena);

395+slice_tySlice(expr_tylower, expr_tyupper, expr_tystep, PyArena*arena);

396+slice_tyExtSlice(asdl_seq*dims, PyArena*arena);

397+slice_tyIndex(expr_tyvalue, PyArena*arena);

398+comprehension_tycomprehension(expr_tytarget, expr_tyiter, asdl_seq*ifs,

399+PyArena*arena);

400+excepthandler_tyexcepthandler(expr_tytype, expr_tyname, asdl_seq*body,

401+PyArena*arena);

389402arguments_tyarguments(asdl_seq*args, identifiervararg, identifierkwarg,

390-asdl_seq*defaults);

391-keyword_tykeyword(identifierarg, expr_tyvalue);

392-alias_tyalias(identifiername, identifierasname);

393-394-voidfree_mod(mod_ty);

395-voidfree_stmt(stmt_ty);

396-voidfree_expr(expr_ty);

397-voidfree_expr_context(expr_context_ty);

398-voidfree_slice(slice_ty);

399-voidfree_boolop(boolop_ty);

400-voidfree_operator(operator_ty);

401-voidfree_unaryop(unaryop_ty);

402-voidfree_cmpop(cmpop_ty);

403-voidfree_comprehension(comprehension_ty);

404-voidfree_excepthandler(excepthandler_ty);

405-voidfree_arguments(arguments_ty);

406-voidfree_keyword(keyword_ty);

407-voidfree_alias(alias_ty);

403+asdl_seq*defaults, PyArena*arena);

404+keyword_tykeyword(identifierarg, expr_tyvalue, PyArena*arena);

405+alias_tyalias(identifiername, identifierasname, PyArena*arena);

408406