CodeBlock Class Reference#include <codeBlock.h>
Detailed Description
Core TorqueScript code management class.
This class represents a block of code, usually mapped directly to a file.
|
Public Member Functions |
| CodeBlock () |
| ~CodeBlock () |
void | addToCodeList () |
void | removeFromCodeList () |
void | calcBreakList () |
void | clearAllBreaks () |
void | setAllBreaks () |
U32 | findFirstBreakLine (U32 lineNumber) |
| Returns the first breakable line or 0 if none was found.
|
void | clearBreakpoint (U32 lineNumber) |
bool | setBreakpoint (U32 lineNumber) |
| Set a OP_BREAK instruction on a line.
|
void | findBreakLine (U32 ip, U32 &line, U32 &instruction) |
void | getFunctionArgs (char buffer[1024], U32 offset) |
const char * | getFileLine (U32 ip) |
bool | read (StringTableEntry fileName, Stream &st) |
bool | compile (const char *dsoName, StringTableEntry fileName, const char *script) |
void | incRefCount () |
void | decRefCount () |
const char * | compileExec (StringTableEntry fileName, const char *script, bool noCalls, int setFrame=-1) |
| Compiles and executes a block of script storing the compiled code in this CodeBlock.
|
const char * | exec (U32 offset, const char *fnName, Namespace *ns, U32 argc, const char **argv, bool noCalls, StringTableEntry packageName, S32 setFrame=-1) |
| Executes the existing code in the CodeBlock.
|
Static Public Member Functions |
static CodeBlock * | getCurrentBlock () |
static CodeBlock * | getCodeBlockList () |
static StringTableEntry | getCurrentCodeBlockName () |
static CodeBlock * | find (StringTableEntry) |
Data Fields |
StringTableEntry | name |
char * | globalStrings |
char * | functionStrings |
F64 * | globalFloats |
F64 * | functionFloats |
U32 | codeSize |
U32 * | code |
U32 | refCount |
U32 | lineBreakPairCount |
U32 * | lineBreakPairs |
U32 | breakListSize |
U32 * | breakList |
CodeBlock * | nextFile |
StringTableEntry | mRoot |
Static Public Attributes |
static U32 | smBreakLineCount |
static bool | smInFunction |
static Compiler::ConsoleParser * | smCurrentParser |
Static Private Attributes |
static CodeBlock * | smCodeBlockList |
static CodeBlock * | smCurrentCodeBlock |
Constructor & Destructor Documentation
CodeBlock::~CodeBlock |
( |
|
) |
|
Member Function Documentation
static CodeBlock* CodeBlock::getCurrentBlock |
( |
|
) |
[inline, static] |
static CodeBlock* CodeBlock::getCodeBlockList |
( |
|
) |
[inline, static] |
void CodeBlock::addToCodeList |
( |
|
) |
|
void CodeBlock::removeFromCodeList |
( |
|
) |
|
void CodeBlock::calcBreakList |
( |
|
) |
|
void CodeBlock::clearAllBreaks |
( |
|
) |
|
void CodeBlock::setAllBreaks |
( |
|
) |
|
U32 CodeBlock::findFirstBreakLine |
( |
U32 |
lineNumber |
) |
|
Returns the first breakable line or 0 if none was found.
- Parameters:
-
| lineNumber | The one based line number. |
void CodeBlock::clearBreakpoint |
( |
U32 |
lineNumber |
) |
|
bool CodeBlock::setBreakpoint |
( |
U32 |
lineNumber |
) |
|
Set a OP_BREAK instruction on a line.
If a break is not possible on that line it returns false. - Parameters:
-
| lineNumber | The one based line number. |
void CodeBlock::findBreakLine |
( |
U32 |
ip, |
|
|
U32 & |
line, |
|
|
U32 & |
instruction | |
|
) |
| | |
void CodeBlock::getFunctionArgs |
( |
char |
buffer[1024], |
|
|
U32 |
offset | |
|
) |
| | |
const char* CodeBlock::getFileLine |
( |
U32 |
ip |
) |
|
bool CodeBlock::compile |
( |
const char * |
dsoName, |
|
|
StringTableEntry |
fileName, |
|
|
const char * |
script | |
|
) |
| | |
void CodeBlock::incRefCount |
( |
|
) |
|
void CodeBlock::decRefCount |
( |
|
) |
|
const char* CodeBlock::compileExec |
( |
StringTableEntry |
fileName, |
|
|
const char * |
script, |
|
|
bool |
noCalls, |
|
|
int |
setFrame = -1 | |
|
) |
| | |
Compiles and executes a block of script storing the compiled code in this CodeBlock.
If there is no filename breakpoints will not be generated and the CodeBlock will not be added to the linked list of loaded CodeBlocks. Note that if the script contains no executable statements the CodeBlock will delete itself on return an empty string. The return string is any result of the code executed, if any, or an empty string.
- Parameters:
-
| fileName | The file name, including path and extension, for the block of code or an empty string. |
| script | The script code to compile and execute. |
| noCalls | Skips calling functions from the script. |
| setFrame | A zero based index of the stack frame to execute the code with, zero being the top of the stack. If the the index is -1 a new frame is created. If the index is out of range the top stack frame is used. |
const char* CodeBlock::exec |
( |
U32 |
offset, |
|
|
const char * |
fnName, |
|
|
Namespace * |
ns, |
|
|
U32 |
argc, |
|
|
const char ** |
argv, |
|
|
bool |
noCalls, |
|
|
StringTableEntry |
packageName, |
|
|
S32 |
setFrame = -1 | |
|
) |
| | |
Executes the existing code in the CodeBlock.
The return string is any result of the code executed, if any, or an empty string.
- Parameters:
-
| offset | The instruction offset to start executing from. |
| fnName | The name of the function to execute or null. |
| ns | The namespace of the function to execute or null. |
| argc | The number of parameters passed to the function or zero to execute code outside of a function. |
| argv | The function parameter list. |
| noCalls | Skips calling functions from the script. |
| setFrame | A zero based index of the stack frame to execute the code with, zero being the top of the stack. If the the index is -1 a new frame is created. If the index is out of range the top stack frame is used. |
| packageName | The code package name or null. |
Field Documentation
|