2021-03-24 00:51:50 +01:00
|
|
|
#ifndef Py_INTERNAL_COMPILE_H
|
|
|
|
#define Py_INTERNAL_COMPILE_H
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef Py_BUILD_CORE
|
|
|
|
# error "this header requires Py_BUILD_CORE define"
|
|
|
|
#endif
|
|
|
|
|
2021-03-24 02:23:01 +01:00
|
|
|
struct _arena; // Type defined in pycore_pyarena.h
|
|
|
|
struct _mod; // Type defined in pycore_ast.h
|
2021-03-24 00:51:50 +01:00
|
|
|
|
|
|
|
// Export the symbol for test_peg_generator (built as a library)
|
|
|
|
PyAPI_FUNC(PyCodeObject*) _PyAST_Compile(
|
|
|
|
struct _mod *mod,
|
|
|
|
PyObject *filename,
|
|
|
|
PyCompilerFlags *flags,
|
|
|
|
int optimize,
|
2021-03-24 02:23:01 +01:00
|
|
|
struct _arena *arena);
|
2022-11-02 15:13:07 +00:00
|
|
|
|
2021-03-24 00:51:50 +01:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int optimize;
|
|
|
|
int ff_features;
|
2021-04-25 13:38:00 +03:00
|
|
|
|
|
|
|
int recursion_depth; /* current recursion depth */
|
|
|
|
int recursion_limit; /* recursion limit */
|
2021-03-24 00:51:50 +01:00
|
|
|
} _PyASTOptimizeState;
|
|
|
|
|
|
|
|
extern int _PyAST_Optimize(
|
|
|
|
struct _mod *,
|
2021-03-24 02:23:01 +01:00
|
|
|
struct _arena *arena,
|
2021-03-24 00:51:50 +01:00
|
|
|
_PyASTOptimizeState *state);
|
|
|
|
|
2022-08-24 11:02:53 +01:00
|
|
|
/* Access compiler internals for unit testing */
|
2022-11-14 13:56:40 +00:00
|
|
|
|
|
|
|
PyAPI_FUNC(PyObject*) _PyCompile_CodeGen(
|
|
|
|
PyObject *ast,
|
|
|
|
PyObject *filename,
|
|
|
|
PyCompilerFlags *flags,
|
|
|
|
int optimize);
|
|
|
|
|
2022-08-24 11:02:53 +01:00
|
|
|
PyAPI_FUNC(PyObject*) _PyCompile_OptimizeCfg(
|
|
|
|
PyObject *instructions,
|
|
|
|
PyObject *consts);
|
|
|
|
|
2021-03-24 00:51:50 +01:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif /* !Py_INTERNAL_COMPILE_H */
|