From 5f2df88b63e50d23914e97ec778861a52abdeaad Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 12 Nov 2018 00:56:19 +0100 Subject: bpo-35177: Add dependencies between header files (GH-10361) * ast.h now includes Python-ast.h and node.h * parsetok.h now includes node.h and grammar.h * symtable.h now includes Python-ast.h * Modify asdl_c.py to enhance Python-ast.h: * Add #ifndef/#define Py_PYTHON_AST_H to be able to include the header twice * Add "extern { ... }" for C++ * Undefine "Yield" macro conflicting with winbase.h * Remove "#undef Yield" from C files, it's now done in Python-ast.h * Remove now useless includes in C files --- Include/Python-ast.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'Include/Python-ast.h') diff --git a/Include/Python-ast.h b/Include/Python-ast.h index 2913d1d2d0a..1b7d9b10b1a 100644 --- a/Include/Python-ast.h +++ b/Include/Python-ast.h @@ -1,7 +1,15 @@ /* File automatically generated by Parser/asdl_c.py. */ +#ifndef Py_PYTHON_AST_H +#define Py_PYTHON_AST_H +#ifdef __cplusplus +extern "C" { +#endif + #include "asdl.h" +#undef Yield /* undefine macro conflicting with winbase.h */ + typedef struct _mod *mod_ty; typedef struct _stmt *stmt_ty; @@ -607,3 +615,8 @@ withitem_ty _Py_withitem(expr_ty context_expr, expr_ty optional_vars, PyArena PyObject* PyAST_mod2obj(mod_ty t); mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode); int PyAST_Check(PyObject* obj); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYTHON_AST_H */ -- cgit v1.2.3