eTokenTypes DLParser::getCoreFormId(void)
{
- return core_forms[ lookaheadToken(1).text() ];
+ eTokenTypes type = UNKNOWN;
+ if ( isCoreFormName() )
+ {
+ type = core_forms[ lookaheadToken(1).text() ];
+ }
+ return type;
}
void DLParser::parse(void)
return ret;
}
-AST* DLParser::FuncApp(void)
-{
- return NULL;
-}
-
AST* DLParser::BasicExp(void)
{
AST* ret = NULL;
}
// Infix Function Application
- else*/ if( lookaheadType(1) == LPAR )
+ else*/
+ if( lookaheadType(1) == LPAR )
{
AST* operation = NULL;
AST* operand1 = NULL;
class DLParser : public BTParser
{
- private:
+ protected:
std::map<std::string,eTokenTypes> core_forms;
std::map<std::string,Syntax*> syntaxes;
public:
eTokenTypes getCoreFormId(void);
void parse(void);
- private:
// Entry Rules
AST* Program(void);
AST* Expression(void);