Public Methods |
| | Parser (Scanner &rScanner,OutputStream &error_stream) |
| | Create a new instance of the parser. More...
|
|
| ~Parser () |
| | Destructor.
|
| bool | parse () |
| | Parses the Scene Program. More...
|
| ObjectFile* | getProgram () |
| | Get the resulting compiled scene program, needed as input for the virtual machine. More...
|
Protected Methods |
|
Token* | getToken () |
|
void | backToken (SPToken &token) |
|
unsigned long | findProperty (Class *pSearchClass,Class *pClass) |
|
void | outputWarning (int level,SPToken &token,int errid,const char *message=NULL) |
|
bool | parseDescriptionFile () |
|
bool | parseSceneFile () |
|
bool | parseScene () |
|
bool | parseLibraryFile () |
|
bool | parseLibrary () |
|
bool | parseMetaSection () |
|
bool | parseMetaTag () |
|
bool | parseAuthorTag () |
|
bool | parseDateTag () |
|
bool | parseVersionTag () |
|
bool | parseLanguageTag () |
|
void | parseLibraryImportSection () |
|
void | parseLibraryImportSectionItemList () |
|
bool | parseLibraryImportSectionItem () |
|
bool | parseUsesDeclaration () |
|
bool | parseImportDeclaration () |
|
bool | parseSceneInstanciation () |
|
bool | parseInterfaceSection () |
|
bool | parseImplementationSection () |
|
void | parseDefinitionSection (DeclarationAction &action) |
|
bool | parseDefinition (DeclarationAction &action) |
| bool | parseInstanciation (Class *&rpClass,SPToken &rErrorToken) |
| | Parses the Instanciation of Objects in the Scene Description Language. More...
|
|
bool | parseStatement () |
| bool | parseCompoundStatement (BlockAction &action) |
| | Parses a Compound Statement (blocks of curly brackets). More...
|
|
bool | parseAssignmentStatement (Expression *&rpExpression) |
|
bool | parseIterationStatement () |
|
bool | parseSelectionStatement () |
|
bool | parseForStatement () |
|
bool | parseStep (Expression *&rpExpression) |
|
bool | parseWhileStatement () |
|
bool | parseRepeatStatement () |
|
bool | parseIfStatement () |
|
bool | parseElseOpt () |
|
bool | parseFunctionDeclaration (DeclarationAction &rAction) |
|
bool | parseVariableDeclaration (DeclarationAction &rAction) |
|
bool | parseIdentifierSeq (vector< string > &idents) |
|
bool | parseFormalParameterSeq (SymbolFunction *pFunction,int &pcount) |
|
bool | parseFormalParameter (SymbolFunction *pFunction,int &pcount) |
|
bool | parseFunctionBody (SymbolFunction *pFunction) |
|
bool | parseExpression (Expression *&rpExpression) |
|
bool | parseConditionalExpression (Expression *&rpExpression) |
|
bool | parseLogicalOrExpression (Expression *&rpExpression) |
|
bool | parseLogicalOrExpressionR (Expression *&rpExpression,Expression *pLeft) |
|
bool | parseLogicalAndExpression (Expression *&rpExpression) |
|
bool | parseLogicalAndExpressionR (Expression *&rpExpression,Expression *pLeft) |
|
bool | parseRelationalExpression (Expression *&rpExpression) |
|
bool | parseRelationalExpressionR (Expression *&rpExpression,Expression *pLeft) |
|
bool | parseAdditiveExpression (Expression *&rpExpression) |
|
bool | parseAdditiveExpressionR (Expression *&rpExpression,Expression *pLeft) |
|
bool | parseMultiplicativeExpression (Expression *&rpExpression) |
|
bool | parseMultiplicativeExpressionR (Expression *&rpExpression,Expression *pLeft) |
|
bool | parsePotExpression (Expression *&rpExpression) |
|
bool | parsePotExpressionR (Expression *&rpExpression,Expression *pLeft) |
|
bool | parseUnaryExpression (Expression *&rpExpression) |
|
bool | parsePostfixExpression (Expression *&rpExpression) |
|
void | parsePostfixExpressionR (Expression *&rpExpression,Expression *pLeft) |
|
bool | parsePrimaryExpression (Expression *&rpExpression) |
|
bool | parseFunctionCall (Expression *&rpExpression) |
|
void | parseParameterList (vector< Expression *> ¶meter) |
|
bool | parseConstant (Expression *&rpExpression) |
|
bool | parseBoolean (Expression *&rpExpression) |
|
bool | parseInteger (Expression *&rpExpression) |
|
bool | parseDouble (Expression *&rpExpression) |
|
bool | parseVectorN (vector< Expression *> &components,SPToken &rErrorToken) |
|
void | parseVectorComponentList (vector< Expression *> &components) |
|
bool | parseVector (Expression *&rpExpression) |
|
bool | parseColor (Expression *&rpExpression) |
|
bool | parseString (Expression *&rpExpression) |
|
bool | parseTypename (Type &rtype) |
|
void | checkExpression_DoubleOrIntegerExpected_DoubleNeeded (Expression *&rpExpression) |
|
Type | checkAddOperands (SPToken &token,Expression *&rpLeft,Expression *&rpRight) |
|
Type | checkRelationalOperands (SPToken &token,Expression *&rpLeft,Expression *&rpRight) |
|
void | checkAssignment (Expression *&pLeft,Expression *&pRight,SPToken &token) |
|
void | checkFunctionParameter (SymbolFunctionBase *pSymbolFunc,vector< Expression *> ¶meter,SPToken &token) |
|
Expression* | checkAndConvertIntegerOrDouble (Expression *pInput,const Type &destType,SPToken &token) |
|
void | optimizeExpression (Expression *&rpExpression,Assembler *pAssembler) |
Protected Attributes |
|
Scanner& | scanner |
|
OutputStream& | serr |
|
SymbolTable<SymbolBase> | symbols |
|
Assembler* | pAssembler |
|
Class* | pSceneClass |
|
Errors* | pErrors |
|
ObjectFile* | m_pObjectFile |
| | the object file generated by the parser.
|
Friends |
| class | ParserException |
The Parser class encapsulates the syntactial and semantical analysis of a scene description language (SDL) program, also known as Scene. It parses the Scene and generates code for a virtual machine which than produces the scene graph needed for the raytracing algorithm.