diff options
author | Christopher L. Conway <christopherleeconway@gmail.com> | 2010-04-27 20:44:47 +0000 |
---|---|---|
committer | Christopher L. Conway <christopherleeconway@gmail.com> | 2010-04-27 20:44:47 +0000 |
commit | 0c4a6edae95b3ffc76cb82604a3d1694d42625bb (patch) | |
tree | 38cf873c7fac5e1e25529425f4835aac3d79adbb /src/parser/antlr_input.cpp | |
parent | 130b814916c096f4b898a26c9df5056270af78d0 (diff) |
Adding Integer and Rational constants to SMT
Diffstat (limited to 'src/parser/antlr_input.cpp')
-rw-r--r-- | src/parser/antlr_input.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/parser/antlr_input.cpp b/src/parser/antlr_input.cpp index b8caf5ded..47420a015 100644 --- a/src/parser/antlr_input.cpp +++ b/src/parser/antlr_input.cpp @@ -91,6 +91,16 @@ pANTLR3_COMMON_TOKEN_STREAM AntlrInput::getTokenStream() { return d_tokenStream; } +void AntlrInput::lexerError(pANTLR3_BASE_RECOGNIZER recognizer) { + pANTLR3_LEXER lexer = (pANTLR3_LEXER)(recognizer->super); + AlwaysAssert(lexer!=NULL); + ParserState *parserState = (ParserState*)(lexer->super); + AlwaysAssert(parserState!=NULL); + + // Call the error display routine + parserState->parseError("Error finding next token."); +} + void AntlrInput::parseError(const std::string& message) throw (ParserException) { Debug("parser") << "Throwing exception: " @@ -125,6 +135,11 @@ void AntlrInput::setLexer(pANTLR3_LEXER pLexer) { } d_tokenStream = buffer->commonTstream; + + // ANTLR isn't using super, AFAICT. + d_lexer->super = getParserState(); + // Override default lexer error reporting + d_lexer->rec->reportError = &lexerError; } void AntlrInput::setParser(pANTLR3_PARSER pParser) { |