(root)/
Python-3.11.7/
Include/
cpython/
compile.h
       1  #ifndef Py_CPYTHON_COMPILE_H
       2  #  error "this header file must not be included directly"
       3  #endif
       4  
       5  /* Public interface */
       6  #define PyCF_MASK (CO_FUTURE_DIVISION | CO_FUTURE_ABSOLUTE_IMPORT | \
       7                     CO_FUTURE_WITH_STATEMENT | CO_FUTURE_PRINT_FUNCTION | \
       8                     CO_FUTURE_UNICODE_LITERALS | CO_FUTURE_BARRY_AS_BDFL | \
       9                     CO_FUTURE_GENERATOR_STOP | CO_FUTURE_ANNOTATIONS)
      10  #define PyCF_MASK_OBSOLETE (CO_NESTED)
      11  
      12  /* bpo-39562: CO_FUTURE_ and PyCF_ constants must be kept unique.
      13     PyCF_ constants can use bits from 0x0100 to 0x10000.
      14     CO_FUTURE_ constants use bits starting at 0x20000. */
      15  #define PyCF_SOURCE_IS_UTF8  0x0100
      16  #define PyCF_DONT_IMPLY_DEDENT 0x0200
      17  #define PyCF_ONLY_AST 0x0400
      18  #define PyCF_IGNORE_COOKIE 0x0800
      19  #define PyCF_TYPE_COMMENTS 0x1000
      20  #define PyCF_ALLOW_TOP_LEVEL_AWAIT 0x2000
      21  #define PyCF_ALLOW_INCOMPLETE_INPUT 0x4000
      22  #define PyCF_COMPILE_MASK (PyCF_ONLY_AST | PyCF_ALLOW_TOP_LEVEL_AWAIT | \
      23                             PyCF_TYPE_COMMENTS | PyCF_DONT_IMPLY_DEDENT | \
      24                             PyCF_ALLOW_INCOMPLETE_INPUT)
      25  
      26  typedef struct {
      27      int cf_flags;  /* bitmask of CO_xxx flags relevant to future */
      28      int cf_feature_version;  /* minor Python version (PyCF_ONLY_AST) */
      29  } PyCompilerFlags;
      30  
      31  #define _PyCompilerFlags_INIT \
      32      (PyCompilerFlags){.cf_flags = 0, .cf_feature_version = PY_MINOR_VERSION}
      33  
      34  /* Future feature support */
      35  
      36  typedef struct {
      37      int ff_features;      /* flags set by future statements */
      38      int ff_lineno;        /* line number of last future statement */
      39  } PyFutureFeatures;
      40  
      41  #define FUTURE_NESTED_SCOPES "nested_scopes"
      42  #define FUTURE_GENERATORS "generators"
      43  #define FUTURE_DIVISION "division"
      44  #define FUTURE_ABSOLUTE_IMPORT "absolute_import"
      45  #define FUTURE_WITH_STATEMENT "with_statement"
      46  #define FUTURE_PRINT_FUNCTION "print_function"
      47  #define FUTURE_UNICODE_LITERALS "unicode_literals"
      48  #define FUTURE_BARRY_AS_BDFL "barry_as_FLUFL"
      49  #define FUTURE_GENERATOR_STOP "generator_stop"
      50  #define FUTURE_ANNOTATIONS "annotations"
      51  
      52  #define PY_INVALID_STACK_EFFECT INT_MAX
      53  PyAPI_FUNC(int) PyCompile_OpcodeStackEffect(int opcode, int oparg);
      54  PyAPI_FUNC(int) PyCompile_OpcodeStackEffectWithJump(int opcode, int oparg, int jump);