public |
Inheritance Graph
graph BT
FnCompileContext
click FnCompileContext "classEScript_1_1FnCompileContext"
Description
Collection of “things” used during the compilation process of one user function function (or block of code without surrounding function).
Classes
struct | EScript::FnCompileContext::SettingsStackEntry |
Public Types
enum | setting_t {VISIBLE_LOCAL_AND_STATIC_VARIABLES, BREAK_MARKER, CONTINUE_MARKER, EXCEPTION_MARKER} |
Public Functions
FnCompileContext( Compiler & _compiler, StaticData & sData, InstructionBlock & _instructions, const CodeFragment & _code) | |
FnCompileContext( FnCompileContext & parentCtxt, InstructionBlock & _instructions, const CodeFragment & _code) | |
void | addInstruction(const Instruction & newInstruction) |
std::vector< size_t > | collectLocalVariables( setting_t entryType) Collect all variable indices on the settings stack until an entry with the given type is found. |
void | addExpression( EPtr < AST::ASTNode > expression) |
void | addStatement( EPtr < AST::ASTNode > stmt) |
uint32_t | createMarker() |
StringId | createOnceStatementMarker() |
uint32_t | declareString(const std::string & str) |
const CodeFragment & | getCode() const |
Compiler & | getCompiler() const |
StaticData & | getStaticData() const |
int | getCurrentLine() const |
uint32_t | getCurrentMarker( setting_t markerType) const if the setting is not defined, Instruction::INVALID_JUMP_ADDRESS is returned. |
varLocation_t | getCurrentVarLocation(const StringId & name) const |
std::string | getInstructionsAsString() const |
StringId | getLocalVarName(const size_t index) const |
size_t | getNumLocalVars() const |
std::string | getStringConstant(const uint32_t index) const |
bool | getUsesStaticVars() const |
void | markAsUsingStaticVars() |
void | pushSetting_basicLocalVars() Add the local variables which are already defined in the instructionBlock (e.g. ‘this’ or the parameters), to the set of visible variables. |
void | pushSetting_marker( setting_t type, const uint32_t marker) |
void | pushSetting_declaredVars(const declaredVariableMap_t & variables) |
void | popSetting() |
uint32_t | registerInternalFunction(const ObjPtr & userFunction) |
void | setLine(int l) |
void | pushLocalVarsCollector(std::vector< size_t > * collection) All newly defined variables are also added to the topmost collection. |
void | popLocalVarsCollector() |
Documentation
enum
EScript::FnCompileContext::setting_t
public |
enum setting_t |
Enumerator | Description | |
---|---|---|
Enumerator | Description | |
VISIBLE_LOCAL_AND_STATIC_VARIABLES | the local variables declared in a Block | |
BREAK_MARKER | ||
CONTINUE_MARKER | ||
EXCEPTION_MARKER | the marker of the next variables declared in a Block |
Defined in EScript/EScript/Compiler/FnCompileContext.h:38
function
EScript::FnCompileContext::FnCompileContext
public | inline |
FnCompileContext( | Compiler & | _compiler, |
StaticData & | sData, | |
InstructionBlock & | _instructions, | |
const CodeFragment & | _code | |
) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:69
function
EScript::FnCompileContext::FnCompileContext
public | inline |
FnCompileContext( | FnCompileContext & | parentCtxt, |
InstructionBlock & | _instructions, | |
const CodeFragment & | _code | |
) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:74
function
EScript::FnCompileContext::addInstruction
public | inline |
void addInstruction( | const Instruction & | newInstruction ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:79
function
EScript::FnCompileContext::collectLocalVariables
public |
std::vector< size_t > collectLocalVariables( | setting_t | entryType ) |
Collect all variable indices on the settings stack until an entry with the given type is found.
Defined in EScript/EScript/Compiler/FnCompileContext.h:83
function
EScript::FnCompileContext::addExpression
public |
void addExpression( | EPtr < AST::ASTNode > | expression ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:85
function
EScript::FnCompileContext::addStatement
public |
void addStatement( | EPtr < AST::ASTNode > | stmt ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:86
function
EScript::FnCompileContext::createMarker
public | inline |
uint32_t createMarker( | ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:88
function
EScript::FnCompileContext::createOnceStatementMarker
public |
StringId createOnceStatementMarker( | ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:89
function
EScript::FnCompileContext::declareString
public | inline |
uint32_t declareString( | const std::string & | str ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:90
function
EScript::FnCompileContext::getCode
public | const | inline |
const CodeFragment & getCode( | ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:92
function
EScript::FnCompileContext::getCompiler
public | const | inline |
Compiler & getCompiler( | ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:93
function
EScript::FnCompileContext::getStaticData
public | const | inline |
StaticData & getStaticData( | ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:94
function
EScript::FnCompileContext::getCurrentLine
public | const | inline |
int getCurrentLine( | ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:95
function
EScript::FnCompileContext::getCurrentMarker
public | const |
uint32_t getCurrentMarker( | setting_t | markerType ) const |
if the setting is not defined, Instruction::INVALID_JUMP_ADDRESS is returned.
Defined in EScript/EScript/Compiler/FnCompileContext.h:97
function
EScript::FnCompileContext::getCurrentVarLocation
public | const |
varLocation_t getCurrentVarLocation( | const StringId & | name ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:99
function
EScript::FnCompileContext::getInstructionsAsString
public | const | inline |
std::string getInstructionsAsString( | ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:101
function
EScript::FnCompileContext::getLocalVarName
public | const | inline |
StringId getLocalVarName( | const size_t | index ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:102
function
EScript::FnCompileContext::getNumLocalVars
public | const | inline |
size_t getNumLocalVars( | ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:104
function
EScript::FnCompileContext::getStringConstant
public | const | inline |
std::string getStringConstant( | const uint32_t | index ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:105
function
EScript::FnCompileContext::getUsesStaticVars
public | const | inline |
bool getUsesStaticVars( | ) const |
Defined in EScript/EScript/Compiler/FnCompileContext.h:106
function
EScript::FnCompileContext::markAsUsingStaticVars
public | inline |
void markAsUsingStaticVars( | ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:108
function
EScript::FnCompileContext::pushSetting_basicLocalVars
public |
void pushSetting_basicLocalVars( | ) |
Add the local variables which are already defined in the instructionBlock (e.g. ‘this’ or the parameters), to the set of visible variables.
Defined in EScript/EScript/Compiler/FnCompileContext.h:111
function
EScript::FnCompileContext::pushSetting_marker
public | inline |
void pushSetting_marker( | setting_t | type, |
const uint32_t | marker | |
) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:113
function
EScript::FnCompileContext::pushSetting_declaredVars
public |
void pushSetting_declaredVars( | const declaredVariableMap_t & | variables ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:115
function
EScript::FnCompileContext::popSetting
public | inline |
void popSetting( | ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:116
function
EScript::FnCompileContext::registerInternalFunction
public | inline |
uint32_t registerInternalFunction( | const ObjPtr & | userFunction ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:118
function
EScript::FnCompileContext::setLine
public | inline |
void setLine( | int | l ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:119
function
EScript::FnCompileContext::pushLocalVarsCollector
public | inline |
void pushLocalVarsCollector( | std::vector< size_t > * | collection ) |
All newly defined variables are also added to the topmost collection.
Defined in EScript/EScript/Compiler/FnCompileContext.h:122
function
EScript::FnCompileContext::popLocalVarsCollector
public | inline |
void popLocalVarsCollector( | ) |
Defined in EScript/EScript/Compiler/FnCompileContext.h:123