Torque2D Reference
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Typedefs | Enumerations | Functions | Variables
Compiler Namespace Reference

Classes

struct  CompilerIdentTable
 
struct  CompilerStringTable
 
struct  CompilerFloatTable
 
struct  ConsoleParser
 List of parsers for the compiler. More...
 

Typedefs

typedef const char *(* fnGetCurrentFile )()
 Function for GetCurrentFile from the lexer. More...
 
typedef S32(* fnGetCurrentLine )()
 Function for GetCurrentLine from the lexer. More...
 
typedef S32(* fnParse )()
 Function for Parse from the lexer. More...
 
typedef void(* fnRestart )(FILE *input_file)
 Function for Restart from the lexer. More...
 
typedef void(* fnSetScanBuffer )(const char *sb, const char *fn)
 Function for SetScanBuffer from the lexer. More...
 

Enumerations

enum  CompiledInstructions {
  OP_FUNC_DECL, OP_CREATE_OBJECT, OP_ADD_OBJECT, OP_END_OBJECT,
  OP_JMPIFFNOT, OP_JMPIFNOT, OP_JMPIFF, OP_JMPIF,
  OP_JMPIFNOT_NP, OP_JMPIF_NP, OP_JMP, OP_RETURN,
  OP_CMPEQ, OP_CMPGR, OP_CMPGE, OP_CMPLT,
  OP_CMPLE, OP_CMPNE, OP_XOR, OP_MOD,
  OP_BITAND, OP_BITOR, OP_NOT, OP_NOTF,
  OP_ONESCOMPLEMENT, OP_SHR, OP_SHL, OP_AND,
  OP_OR, OP_ADD, OP_SUB, OP_MUL,
  OP_DIV, OP_NEG, OP_SETCURVAR, OP_SETCURVAR_CREATE,
  OP_SETCURVAR_ARRAY, OP_SETCURVAR_ARRAY_CREATE, OP_LOADVAR_UINT, OP_LOADVAR_FLT,
  OP_LOADVAR_STR, OP_SAVEVAR_UINT, OP_SAVEVAR_FLT, OP_SAVEVAR_STR,
  OP_SETCUROBJECT, OP_SETCUROBJECT_NEW, OP_SETCUROBJECT_INTERNAL, OP_SETCURFIELD,
  OP_SETCURFIELD_ARRAY, OP_LOADFIELD_UINT, OP_LOADFIELD_FLT, OP_LOADFIELD_STR,
  OP_SAVEFIELD_UINT, OP_SAVEFIELD_FLT, OP_SAVEFIELD_STR, OP_STR_TO_UINT,
  OP_STR_TO_FLT, OP_STR_TO_NONE, OP_FLT_TO_UINT, OP_FLT_TO_STR,
  OP_FLT_TO_NONE, OP_UINT_TO_FLT, OP_UINT_TO_STR, OP_UINT_TO_NONE,
  OP_LOADIMMED_UINT, OP_LOADIMMED_FLT, OP_TAG_TO_STR, OP_LOADIMMED_STR,
  OP_DOCBLOCK_STR, OP_LOADIMMED_IDENT, OP_CALLFUNC_RESOLVE, OP_CALLFUNC,
  OP_ADVANCE_STR, OP_ADVANCE_STR_APPENDCHAR, OP_ADVANCE_STR_COMMA, OP_ADVANCE_STR_NUL,
  OP_REWIND_STR, OP_TERMINATE_REWIND_STR, OP_COMPARE_STR, OP_PUSH,
  OP_PUSH_FRAME, OP_BREAK, OP_INVALID
}
 The opcodes for the TorqueScript VM. More...
 

Functions

U32 precompileBlock (StmtNode *block, U32 loopCount)
 
U32 compileBlock (StmtNode *block, U32 *codeStream, U32 ip, U32 continuePoint, U32 breakPoint)
 
F64 consoleStringToNumber (const char *str, StringTableEntry file, U32 line)
 
CodeBlockgetBreakCodeBlock ()
 
void setBreakCodeBlock (CodeBlock *cb)
 
U32 evalSTEtoU32 (StringTableEntry ste, U32)
 
U32 compileSTEtoU32 (StringTableEntry ste, U32 ip)
 
CompilerStringTablegetCurrentStringTable ()
 
CompilerStringTablegetGlobalStringTable ()
 
CompilerStringTablegetFunctionStringTable ()
 
void setCurrentStringTable (CompilerStringTable *cst)
 
CompilerFloatTablegetCurrentFloatTable ()
 
CompilerFloatTablegetGlobalFloatTable ()
 
CompilerFloatTablegetFunctionFloatTable ()
 
void setCurrentFloatTable (CompilerFloatTable *cst)
 
CompilerIdentTablegetIdentTable ()
 
void precompileIdent (StringTableEntry ident)
 
void resetTables ()
 
void * consoleAlloc (U32 size)
 
void consoleAllocReset ()
 
StringTableEntry U32toSTE (U32 u)
 
void freeConsoleParserList (void)
 Free the console parser list. More...
 
bool addConsoleParser (const char *ext, fnGetCurrentFile gcf, fnGetCurrentLine gcl, fnParse p, fnRestart r, fnSetScanBuffer ssb, bool def=false)
 Add a console parser to the list. More...
 
ConsoleParsergetParserForFile (const char *filename)
 Get the parser for a particular file based on its extension. More...
 

Variables

CompilerStringTablegCurrentStringTable
 
CompilerStringTable gGlobalStringTable
 
CompilerStringTable gFunctionStringTable
 
CompilerFloatTablegCurrentFloatTable
 
CompilerFloatTable gGlobalFloatTable
 
CompilerFloatTable gFunctionFloatTable
 
DataChunker gConsoleAllocator
 
CompilerIdentTable gIdentTable
 
CodeBlockgCurBreakBlock
 
U32(* STEtoU32 )(StringTableEntry ste, U32 ip) = evalSTEtoU32
 
bool gSyntaxError = false
 

Typedef Documentation

typedef const char*(* fnGetCurrentFile)()

Function for GetCurrentFile from the lexer.

typedef S32(* fnGetCurrentLine)()

Function for GetCurrentLine from the lexer.

typedef S32(* fnParse)()

Function for Parse from the lexer.

typedef void(* fnRestart)(FILE *input_file)

Function for Restart from the lexer.

typedef void(* fnSetScanBuffer)(const char *sb, const char *fn)

Function for SetScanBuffer from the lexer.

Enumeration Type Documentation

The opcodes for the TorqueScript VM.

Enumerator
OP_FUNC_DECL 
OP_CREATE_OBJECT 
OP_ADD_OBJECT 
OP_END_OBJECT 
OP_JMPIFFNOT 
OP_JMPIFNOT 
OP_JMPIFF 
OP_JMPIF 
OP_JMPIFNOT_NP 
OP_JMPIF_NP 
OP_JMP 
OP_RETURN 
OP_CMPEQ 
OP_CMPGR 
OP_CMPGE 
OP_CMPLT 
OP_CMPLE 
OP_CMPNE 
OP_XOR 
OP_MOD 
OP_BITAND 
OP_BITOR 
OP_NOT 
OP_NOTF 
OP_ONESCOMPLEMENT 
OP_SHR 
OP_SHL 
OP_AND 
OP_OR 
OP_ADD 
OP_SUB 
OP_MUL 
OP_DIV 
OP_NEG 
OP_SETCURVAR 
OP_SETCURVAR_CREATE 
OP_SETCURVAR_ARRAY 
OP_SETCURVAR_ARRAY_CREATE 
OP_LOADVAR_UINT 
OP_LOADVAR_FLT 
OP_LOADVAR_STR 
OP_SAVEVAR_UINT 
OP_SAVEVAR_FLT 
OP_SAVEVAR_STR 
OP_SETCUROBJECT 
OP_SETCUROBJECT_NEW 
OP_SETCUROBJECT_INTERNAL 
OP_SETCURFIELD 
OP_SETCURFIELD_ARRAY 
OP_LOADFIELD_UINT 
OP_LOADFIELD_FLT 
OP_LOADFIELD_STR 
OP_SAVEFIELD_UINT 
OP_SAVEFIELD_FLT 
OP_SAVEFIELD_STR 
OP_STR_TO_UINT 
OP_STR_TO_FLT 
OP_STR_TO_NONE 
OP_FLT_TO_UINT 
OP_FLT_TO_STR 
OP_FLT_TO_NONE 
OP_UINT_TO_FLT 
OP_UINT_TO_STR 
OP_UINT_TO_NONE 
OP_LOADIMMED_UINT 
OP_LOADIMMED_FLT 
OP_TAG_TO_STR 
OP_LOADIMMED_STR 
OP_DOCBLOCK_STR 
OP_LOADIMMED_IDENT 
OP_CALLFUNC_RESOLVE 
OP_CALLFUNC 
OP_ADVANCE_STR 
OP_ADVANCE_STR_APPENDCHAR 
OP_ADVANCE_STR_COMMA 
OP_ADVANCE_STR_NUL 
OP_REWIND_STR 
OP_TERMINATE_REWIND_STR 
OP_COMPARE_STR 
OP_PUSH 
OP_PUSH_FRAME 
OP_BREAK 
OP_INVALID 

Function Documentation

bool addConsoleParser ( const char *  ext,
fnGetCurrentFile  gcf,
fnGetCurrentLine  gcl,
fnParse  p,
fnRestart  r,
fnSetScanBuffer  ssb,
bool  def = false 
)

Add a console parser to the list.

Parameters
extFilename extension
gcfGetCurrentFile function
gclGetCurrentLine function
pParse function
rRestart function
ssbSetScanBuffer function
deftrue if this is the default parser (Note: set this only on the .cs parser!)
Returns
true for success, false for failure (out of memory)
See Also
FreeConsoleParserList(), ConsoleParser
U32 compileBlock ( StmtNode block,
U32 *  codeStream,
U32  ip,
U32  continuePoint,
U32  breakPoint 
)
U32 compileSTEtoU32 ( StringTableEntry  ste,
U32  ip 
)
void * consoleAlloc ( U32  size)
void consoleAllocReset ( )
F64 consoleStringToNumber ( const char *  str,
StringTableEntry  file,
U32  line 
)
U32 evalSTEtoU32 ( StringTableEntry  ste,
U32   
)
void freeConsoleParserList ( void  )

Free the console parser list.

See Also
AddConsoleParser()
CodeBlock * getBreakCodeBlock ( )
CompilerFloatTable * getCurrentFloatTable ( )
CompilerStringTable * getCurrentStringTable ( )
CompilerFloatTable & getFunctionFloatTable ( )
CompilerStringTable & getFunctionStringTable ( )
CompilerFloatTable & getGlobalFloatTable ( )
CompilerStringTable & getGlobalStringTable ( )
CompilerIdentTable & getIdentTable ( )
ConsoleParser * getParserForFile ( const char *  filename)

Get the parser for a particular file based on its extension.

Parameters
filenameFilename of file to obtain parser for
See Also
ConsoleParser
U32 precompileBlock ( StmtNode block,
U32  loopCount 
)
void precompileIdent ( StringTableEntry  ident)
void resetTables ( )

Helper function to reset the float, string, and ident tables to a base starting state.

void setBreakCodeBlock ( CodeBlock cb)
void setCurrentFloatTable ( CompilerFloatTable cst)
void setCurrentStringTable ( CompilerStringTable cst)
StringTableEntry Compiler::U32toSTE ( U32  u)
inline

Variable Documentation

DataChunker gConsoleAllocator
CodeBlock* gCurBreakBlock
CompilerFloatTable* gCurrentFloatTable
CompilerStringTable* gCurrentStringTable
CompilerFloatTable gFunctionFloatTable
CompilerStringTable gFunctionStringTable
CompilerFloatTable gGlobalFloatTable
CompilerStringTable gGlobalStringTable
CompilerIdentTable gIdentTable
bool gSyntaxError = false
U32(* STEtoU32)(StringTableEntry ste, U32 ip) = evalSTEtoU32