Compiler Struct Reference

Subcompiler state. More...

Data Fields

struct Compiler * enclosing
 Enclosing function compiler, or NULL for a module.
 
KrkCodeObject * codeobject
 Bytecode emitter.
 
FunctionType type
 Type of function being compiled.
 
size_t scopeDepth
 Depth of nested scope blocks.
 
size_t localCount
 Total number of local variables.
 
size_t localsSpace
 Space in the locals array.
 
Local * locals
 Array of local variable references.
 
size_t upvaluesSpace
 Space in the upvalues array.
 
Upvalue * upvalues
 Array of upvalue references. Count is stored in the codeobject.
 
size_t loopLocalCount
 Tracks how many locals to pop off the stack when exiting a loop.
 
size_t breakCount
 Number of break statements.
 
size_t breakSpace
 Space in breaks array.
 
struct LoopExit * breaks
 Array of loop exit instruction indices for break statements.
 
size_t continueCount
 Number of continue statements.
 
size_t continueSpace
 Space in continues array.
 
struct LoopExit * continues
 Array of loop exit instruction indices for continue statements.
 
size_t localNameCapacity
 How much space is available in the codeobject's local names table.
 
struct IndexWithNext * properties
 Linked list of class property constant indices.
 
struct Compiler * enclosed
 Subcompiler we are enclosing, need for type annotation compilation.
 
size_t annotationCount
 Number of type annotations found while compiling function signature.
 
int delSatisfied
 Flag indicating if a 'del' target has been completed.
 
size_t optionsFlags
 Special options imports; similar to future in Python.
 
int unnamedArgs
 Number of positional arguments that will not be assignable through keywords.
 

Detailed Description

Subcompiler state.

Each function is compiled in its own context, with its own codeobject, locals, type, scopes, etc.

Definition at line 199 of file compiler.c.


The documentation for this struct was generated from the following file: