This is the main class for the compiler. More...
#include <OgreScriptCompiler.h>
Classes | |
class | AbstractTreeBuilder |
struct | Error |
Public Types | |
enum | { CE_STRINGEXPECTED, CE_NUMBEREXPECTED, CE_FEWERPARAMETERSEXPECTED, CE_VARIABLEEXPECTED, CE_UNDEFINEDVARIABLE, CE_OBJECTNAMEEXPECTED, CE_OBJECTALLOCATIONERROR, CE_INVALIDPARAMETERS, CE_DUPLICATEOVERRIDE, CE_UNEXPECTEDTOKEN, CE_OBJECTBASENOTFOUND, CE_UNSUPPORTEDBYRENDERSYSTEM, CE_REFERENCETOANONEXISTINGOBJECT } |
enum | { ID_ON = 1, ID_OFF = 2, ID_TRUE = 1, ID_FALSE = 2, ID_YES = 1, ID_NO = 2 } |
typedef list< ErrorPtr >::type | ErrorList |
typedef SharedPtr< Error > | ErrorPtr |
typedef HashMap< String, uint32 > | IdMap |
Public Member Functions | |
ScriptCompiler () | |
virtual | ~ScriptCompiler () |
bool | _compile (AbstractNodeListPtr nodes, const String &group, bool doImports=true, bool doObjects=true, bool doVariables=true) |
Compiles the given abstract syntax tree. More... | |
bool | _fireEvent (ScriptCompilerEvent *evt, void *retval) |
Internal method for firing the handleEvent method. More... | |
AbstractNodeListPtr | _generateAST (const String &str, const String &source, bool doImports=false, bool doObjects=false, bool doVariables=false) |
Generates the AST from the given string script. More... | |
void | addError (uint32 code, const String &file, int line, const String &msg="") |
Adds the given error to the compiler's list of errors. More... | |
void | addNameExclusion (const String &type) |
Adds a name exclusion to the map. More... | |
bool | compile (const String &str, const String &source, const String &group) |
Takes in a string of script code and compiles it into resources. More... | |
bool | compile (const ConcreteNodeListPtr &nodes, const String &group) |
Compiles resources from the given concrete node list. More... | |
ScriptCompilerListener * | getListener () |
Returns the currently set listener. More... | |
const String & | getResourceGroup () const |
Returns the resource group currently set for this compiler. More... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void * | operator new[] (size_t sz) |
uint32 | registerCustomWordId (const String &word) |
Adds a custom word id which can be used for custom script translators. More... | |
void | removeNameExclusion (const String &type) |
Removes a name exclusion. More... | |
void | setListener (ScriptCompilerListener *listener) |
Sets the listener used by the compiler. More... | |
Static Public Member Functions | |
static String | formatErrorCode (uint32 code) |
Private Types | |
typedef map< String, String >::type | Environment |
typedef map< String, AbstractNodeListPtr >::type | ImportCacheMap |
typedef multimap< String, String >::type | ImportRequestMap |
Private Member Functions | |
AbstractNodeListPtr | convertToAST (const ConcreteNodeListPtr &nodes) |
void | initWordMap () |
This function sets up the initial values in word id map. More... | |
bool | isNameExcluded (const String &cls, AbstractNode *parent) |
Returns true if the given class is name excluded. More... | |
AbstractNodeListPtr | loadImportPath (const String &name) |
Loads the requested script and converts it to an AST. More... | |
AbstractNodeListPtr | locateTarget (AbstractNodeList *nodes, const String &target) |
Returns the abstract nodes from the given tree which represent the target. More... | |
void | overlayObject (const AbstractNodePtr &source, ObjectAbstractNode *dest) |
This function overlays the given object on the destination object following inheritance rules. More... | |
void | processImports (AbstractNodeListPtr &nodes) |
This built-in function processes import nodes. More... | |
void | processObjects (AbstractNodeList *nodes, const AbstractNodeListPtr &top) |
Handles object inheritance and variable expansion. More... | |
void | processVariables (AbstractNodeList *nodes) |
Handles processing the variables. More... | |
Friends | |
class | AbstractTreeBuilder |
This is the main class for the compiler.
It calls the parser and processes the CST into an AST and then uses translators to translate the AST into the final resources.
Definition at line 188 of file OgreScriptCompiler.h.
|
private |
Definition at line 299 of file OgreScriptCompiler.h.
typedef list<ErrorPtr>::type Ogre::ScriptCompiler::ErrorList |
Definition at line 202 of file OgreScriptCompiler.h.
typedef SharedPtr<Error> Ogre::ScriptCompiler::ErrorPtr |
Definition at line 201 of file OgreScriptCompiler.h.
typedef HashMap<String,uint32> Ogre::ScriptCompiler::IdMap |
Definition at line 192 of file OgreScriptCompiler.h.
|
private |
Definition at line 302 of file OgreScriptCompiler.h.
|
private |
Definition at line 304 of file OgreScriptCompiler.h.
anonymous enum |
Definition at line 205 of file OgreScriptCompiler.h.
anonymous enum |
Enumerator | |
---|---|
ID_ON | |
ID_OFF | |
ID_TRUE | |
ID_FALSE | |
ID_YES | |
ID_NO |
Definition at line 331 of file OgreScriptCompiler.h.
Ogre::ScriptCompiler::ScriptCompiler | ( | ) |
|
inlinevirtual |
Definition at line 223 of file OgreScriptCompiler.h.
bool Ogre::ScriptCompiler::_compile | ( | AbstractNodeListPtr | nodes, |
const String & | group, | ||
bool | doImports = true , |
||
bool | doObjects = true , |
||
bool | doVariables = true |
||
) |
Compiles the given abstract syntax tree.
bool Ogre::ScriptCompiler::_fireEvent | ( | ScriptCompilerEvent * | evt, |
void * | retval | ||
) |
Internal method for firing the handleEvent method.
AbstractNodeListPtr Ogre::ScriptCompiler::_generateAST | ( | const String & | str, |
const String & | source, | ||
bool | doImports = false , |
||
bool | doObjects = false , |
||
bool | doVariables = false |
||
) |
Generates the AST from the given string script.
void Ogre::ScriptCompiler::addError | ( | uint32 | code, |
const String & | file, | ||
int | line, | ||
const String & | msg = "" |
||
) |
Adds the given error to the compiler's list of errors.
void Ogre::ScriptCompiler::addNameExclusion | ( | const String & | type | ) |
Adds a name exclusion to the map.
Name exclusions identify object types which cannot accept names. This means that excluded types will always have empty names. All values in the object header are stored as object values.
bool Ogre::ScriptCompiler::compile | ( | const String & | str, |
const String & | source, | ||
const String & | group | ||
) |
Takes in a string of script code and compiles it into resources.
str | The script code |
source | The source of the script code (e.g. a script file) |
group | The resource group to place the compiled resources into |
bool Ogre::ScriptCompiler::compile | ( | const ConcreteNodeListPtr & | nodes, |
const String & | group | ||
) |
Compiles resources from the given concrete node list.
|
private |
ScriptCompilerListener* Ogre::ScriptCompiler::getListener | ( | ) |
Returns the currently set listener.
const String& Ogre::ScriptCompiler::getResourceGroup | ( | ) | const |
Returns the resource group currently set for this compiler.
|
private |
This function sets up the initial values in word id map.
|
private |
Returns true if the given class is name excluded.
|
private |
Loads the requested script and converts it to an AST.
|
private |
Returns the abstract nodes from the given tree which represent the target.
|
inlineinherited |
Definition at line 96 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 102 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 108 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 113 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 119 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
operator new, with debug line info
Definition at line 68 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 73 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
placement operator new
Definition at line 79 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
array operator new, with debug line info
Definition at line 86 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 91 of file OgreMemoryAllocatedObject.h.
|
private |
This function overlays the given object on the destination object following inheritance rules.
|
private |
This built-in function processes import nodes.
|
private |
Handles object inheritance and variable expansion.
|
private |
Handles processing the variables.
Adds a custom word id which can be used for custom script translators.
word | The word to be registered. |
void Ogre::ScriptCompiler::removeNameExclusion | ( | const String & | type | ) |
Removes a name exclusion.
void Ogre::ScriptCompiler::setListener | ( | ScriptCompilerListener * | listener | ) |
Sets the listener used by the compiler.
|
friend |
Definition at line 328 of file OgreScriptCompiler.h.
|
private |
Definition at line 300 of file OgreScriptCompiler.h.
|
private |
Definition at line 311 of file OgreScriptCompiler.h.
|
private |
Definition at line 291 of file OgreScriptCompiler.h.
|
private |
Definition at line 293 of file OgreScriptCompiler.h.
|
private |
Definition at line 305 of file OgreScriptCompiler.h.
|
private |
Definition at line 303 of file OgreScriptCompiler.h.
|
private |
Definition at line 308 of file OgreScriptCompiler.h.
|
private |
Definition at line 296 of file OgreScriptCompiler.h.
|
private |
Definition at line 314 of file OgreScriptCompiler.h.