ScummVM API documentation
Director::LingoCompiler Class Reference
Inheritance diagram for Director::LingoCompiler:
Director::NodeVisitor

Public Member Functions

ScriptContext * compileAnonymous (const Common::U32String &code, uint32 preprocFlags=0)
 
ScriptContext * compileLingo (const Common::U32String &code, LingoArchive *archive, ScriptType type, CastMemberID id, const Common::String &scriptName, bool anonyomous=false, uint32 preprocFlags=kLPPNone)
 
ScriptContext * compileLingoV4 (Common::SeekableReadStreamEndian &stream, uint16 lctxIndex, LingoArchive *archive, const Common::String &archName, uint16 version)
 
int code1 (inst code)
 
int code2 (inst code_1, inst code_2)
 
int code3 (inst code_1, inst code_2, inst code_3)
 
int code4 (inst code_1, inst code_2, inst code_3, inst code_4)
 
int codeCmd (const Common::String &s, int numpar)
 
int codeFloat (double f)
 
int codeFunc (const Common::String &s, int numpar)
 
int codeInt (int val)
 
int codeString (const char *s)
 
void codeVarSet (const Common::String &name)
 
void codeVarRef (const Common::String &name)
 
void codeVarGet (const Common::String &name)
 
int getTheFieldID (int entity, const Common::String &field, bool silent=false)
 
void registerFactory (Common::String &s)
 
void registerMethodVar (const Common::String &name, VarType type=kVarGeneric)
 
void updateLoopJumps (uint nextTargetPos, uint exitTargetPos)
 
virtual bool visitScriptNode (ScriptNode *node)
 
virtual bool visitFactoryNode (FactoryNode *node)
 
virtual bool visitHandlerNode (HandlerNode *node)
 
virtual bool visitCmdNode (CmdNode *node)
 
virtual bool visitPutIntoNode (PutIntoNode *node)
 
virtual bool visitPutAfterNode (PutAfterNode *node)
 
virtual bool visitPutBeforeNode (PutBeforeNode *node)
 
virtual bool visitSetNode (SetNode *node)
 
virtual bool visitGlobalNode (GlobalNode *node)
 
virtual bool visitPropertyNode (PropertyNode *node)
 
virtual bool visitInstanceNode (InstanceNode *node)
 
virtual bool visitIfStmtNode (IfStmtNode *node)
 
virtual bool visitIfElseStmtNode (IfElseStmtNode *node)
 
virtual bool visitRepeatWhileNode (RepeatWhileNode *node)
 
virtual bool visitRepeatWithToNode (RepeatWithToNode *node)
 
virtual bool visitRepeatWithInNode (RepeatWithInNode *node)
 
virtual bool visitNextRepeatNode (NextRepeatNode *node)
 
virtual bool visitExitRepeatNode (ExitRepeatNode *node)
 
virtual bool visitExitNode (ExitNode *node)
 
virtual bool visitReturnNode (ReturnNode *node)
 
virtual bool visitTellNode (TellNode *node)
 
virtual bool visitWhenNode (WhenNode *node)
 
virtual bool visitDeleteNode (DeleteNode *node)
 
virtual bool visitHiliteNode (HiliteNode *node)
 
virtual bool visitAssertErrorNode (AssertErrorNode *node)
 
virtual bool visitIntNode (IntNode *node)
 
virtual bool visitFloatNode (FloatNode *node)
 
virtual bool visitSymbolNode (SymbolNode *node)
 
virtual bool visitStringNode (StringNode *node)
 
virtual bool visitListNode (ListNode *node)
 
virtual bool visitPropListNode (PropListNode *node)
 
virtual bool visitPropPairNode (PropPairNode *node)
 
virtual bool visitFuncNode (FuncNode *node)
 
virtual bool visitVarNode (VarNode *node)
 
virtual bool visitParensNode (ParensNode *node)
 
virtual bool visitUnaryOpNode (UnaryOpNode *node)
 
virtual bool visitBinaryOpNode (BinaryOpNode *node)
 
virtual bool visitFrameNode (FrameNode *node)
 
virtual bool visitMovieNode (MovieNode *node)
 
virtual bool visitIntersectsNode (IntersectsNode *node)
 
virtual bool visitWithinNode (WithinNode *node)
 
virtual bool visitTheNode (TheNode *node)
 
virtual bool visitTheOfNode (TheOfNode *node)
 
virtual bool visitTheNumberOfNode (TheNumberOfNode *node)
 
virtual bool visitTheLastNode (TheLastNode *node)
 
virtual bool visitTheDateTimeNode (TheDateTimeNode *node)
 
virtual bool visitMenuNode (MenuNode *node)
 
virtual bool visitMenuItemNode (MenuItemNode *node)
 
virtual bool visitSoundNode (SoundNode *node)
 
virtual bool visitSpriteNode (SpriteNode *node)
 
virtual bool visitChunkExprNode (ChunkExprNode *node)
 
Common::U32String codePreprocessor (const Common::U32String &code, LingoArchive *archive, ScriptType type, CastMemberID id, uint32 flags)
 
MethodHash prescanMethods (const Common::U32String &code)
 
Common::U32String patchLingoCode (const Common::U32String &line, LingoArchive *archive, ScriptType type, CastMemberID id, int linenumber)
 

Public Attributes

LingoArchive * _assemblyArchive
 
ScriptContext * _assemblyContext
 
Common::SharedPtr< Node > _assemblyAST
 
int32 _assemblyId
 
ScriptData * _currentAssembly
 
bool _trimGarbage
 
bool _indef
 
uint _linenumber
 
uint _colnumber
 
uint _bytenumber
 
const char * _lines [3]
 
bool _inFactory
 
LoopNode * _currentLoop
 
bool _refMode
 
Common::HashMap< Common::String, VarType, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo > * _methodVars
 
bool _hadError
 

Member Function Documentation

◆ visitScriptNode()

virtual bool Director::LingoCompiler::visitScriptNode ( ScriptNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitFactoryNode()

virtual bool Director::LingoCompiler::visitFactoryNode ( FactoryNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitHandlerNode()

virtual bool Director::LingoCompiler::visitHandlerNode ( HandlerNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitCmdNode()

virtual bool Director::LingoCompiler::visitCmdNode ( CmdNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitPutIntoNode()

virtual bool Director::LingoCompiler::visitPutIntoNode ( PutIntoNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitPutAfterNode()

virtual bool Director::LingoCompiler::visitPutAfterNode ( PutAfterNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitPutBeforeNode()

virtual bool Director::LingoCompiler::visitPutBeforeNode ( PutBeforeNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitSetNode()

virtual bool Director::LingoCompiler::visitSetNode ( SetNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitGlobalNode()

virtual bool Director::LingoCompiler::visitGlobalNode ( GlobalNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitPropertyNode()

virtual bool Director::LingoCompiler::visitPropertyNode ( PropertyNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitInstanceNode()

virtual bool Director::LingoCompiler::visitInstanceNode ( InstanceNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitIfStmtNode()

virtual bool Director::LingoCompiler::visitIfStmtNode ( IfStmtNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitIfElseStmtNode()

virtual bool Director::LingoCompiler::visitIfElseStmtNode ( IfElseStmtNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitRepeatWhileNode()

virtual bool Director::LingoCompiler::visitRepeatWhileNode ( RepeatWhileNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitRepeatWithToNode()

virtual bool Director::LingoCompiler::visitRepeatWithToNode ( RepeatWithToNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitRepeatWithInNode()

virtual bool Director::LingoCompiler::visitRepeatWithInNode ( RepeatWithInNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitNextRepeatNode()

virtual bool Director::LingoCompiler::visitNextRepeatNode ( NextRepeatNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitExitRepeatNode()

virtual bool Director::LingoCompiler::visitExitRepeatNode ( ExitRepeatNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitExitNode()

virtual bool Director::LingoCompiler::visitExitNode ( ExitNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitReturnNode()

virtual bool Director::LingoCompiler::visitReturnNode ( ReturnNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitTellNode()

virtual bool Director::LingoCompiler::visitTellNode ( TellNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitWhenNode()

virtual bool Director::LingoCompiler::visitWhenNode ( WhenNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitDeleteNode()

virtual bool Director::LingoCompiler::visitDeleteNode ( DeleteNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitHiliteNode()

virtual bool Director::LingoCompiler::visitHiliteNode ( HiliteNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitAssertErrorNode()

virtual bool Director::LingoCompiler::visitAssertErrorNode ( AssertErrorNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitIntNode()

virtual bool Director::LingoCompiler::visitIntNode ( IntNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitFloatNode()

virtual bool Director::LingoCompiler::visitFloatNode ( FloatNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitSymbolNode()

virtual bool Director::LingoCompiler::visitSymbolNode ( SymbolNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitStringNode()

virtual bool Director::LingoCompiler::visitStringNode ( StringNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitListNode()

virtual bool Director::LingoCompiler::visitListNode ( ListNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitPropListNode()

virtual bool Director::LingoCompiler::visitPropListNode ( PropListNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitPropPairNode()

virtual bool Director::LingoCompiler::visitPropPairNode ( PropPairNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitFuncNode()

virtual bool Director::LingoCompiler::visitFuncNode ( FuncNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitVarNode()

virtual bool Director::LingoCompiler::visitVarNode ( VarNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitParensNode()

virtual bool Director::LingoCompiler::visitParensNode ( ParensNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitUnaryOpNode()

virtual bool Director::LingoCompiler::visitUnaryOpNode ( UnaryOpNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitBinaryOpNode()

virtual bool Director::LingoCompiler::visitBinaryOpNode ( BinaryOpNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitFrameNode()

virtual bool Director::LingoCompiler::visitFrameNode ( FrameNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitMovieNode()

virtual bool Director::LingoCompiler::visitMovieNode ( MovieNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitIntersectsNode()

virtual bool Director::LingoCompiler::visitIntersectsNode ( IntersectsNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitWithinNode()

virtual bool Director::LingoCompiler::visitWithinNode ( WithinNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitTheNode()

virtual bool Director::LingoCompiler::visitTheNode ( TheNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitTheOfNode()

virtual bool Director::LingoCompiler::visitTheOfNode ( TheOfNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitTheNumberOfNode()

virtual bool Director::LingoCompiler::visitTheNumberOfNode ( TheNumberOfNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitTheLastNode()

virtual bool Director::LingoCompiler::visitTheLastNode ( TheLastNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitTheDateTimeNode()

virtual bool Director::LingoCompiler::visitTheDateTimeNode ( TheDateTimeNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitMenuNode()

virtual bool Director::LingoCompiler::visitMenuNode ( MenuNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitMenuItemNode()

virtual bool Director::LingoCompiler::visitMenuItemNode ( MenuItemNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitSoundNode()

virtual bool Director::LingoCompiler::visitSoundNode ( SoundNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitSpriteNode()

virtual bool Director::LingoCompiler::visitSpriteNode ( SpriteNode *  node)
virtual

Implements Director::NodeVisitor.

◆ visitChunkExprNode()

virtual bool Director::LingoCompiler::visitChunkExprNode ( ChunkExprNode *  node)
virtual

Implements Director::NodeVisitor.


The documentation for this class was generated from the following file: