torque Torque Game Engine Documentation
TGE Version 1.5.2

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 CodeBlockgetCurrentBlock ()
static CodeBlockgetCodeBlockList ()
static StringTableEntry getCurrentCodeBlockName ()
static CodeBlockfind (StringTableEntry)

Data Fields

StringTableEntry name
char * globalStrings
char * functionStrings
F64globalFloats
F64functionFloats
U32 codeSize
U32code
U32 refCount
U32 lineBreakPairCount
U32lineBreakPairs
U32 breakListSize
U32breakList
CodeBlocknextFile
StringTableEntry mRoot

Static Public Attributes

static U32 smBreakLineCount
static bool smInFunction
static Compiler::ConsoleParsersmCurrentParser

Static Private Attributes

static CodeBlocksmCodeBlockList
static CodeBlocksmCurrentCodeBlock


Constructor & Destructor Documentation

CodeBlock::CodeBlock (  ) 

CodeBlock::~CodeBlock (  ) 


Member Function Documentation

static CodeBlock* CodeBlock::getCurrentBlock (  )  [inline, static]

static CodeBlock* CodeBlock::getCodeBlockList (  )  [inline, static]

static StringTableEntry CodeBlock::getCurrentCodeBlockName (  )  [static]

static CodeBlock* CodeBlock::find ( StringTableEntry   )  [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::read ( StringTableEntry  fileName,
Stream st 
)

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

bool CodeBlock::smInFunction [static]




All Rights Reserved GarageGames.com, Inc. 1999-2005
Auto-magically Generated with Doxygen