aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Include/Python-ast.h
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-11-12 00:56:19 +0100
committerGitHub <noreply@github.com>2018-11-12 00:56:19 +0100
commit5f2df88b63e50d23914e97ec778861a52abdeaad (patch)
tree23a720832fb9de901538ca03819946df679ff2cd /Include/Python-ast.h
parentfd3a91cbf93dd7bd97f01add9c90075d63cd7316 (diff)
downloadcpython-5f2df88b63e50d23914e97ec778861a52abdeaad.tar.gz
cpython-5f2df88b63e50d23914e97ec778861a52abdeaad.zip
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
Diffstat (limited to 'Include/Python-ast.h')
-rw-r--r--Include/Python-ast.h13
1 files changed, 13 insertions, 0 deletions
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 */