summaryrefslogtreecommitdiff
path: root/src/parser/antlr_input.cpp
diff options
context:
space:
mode:
authorChristopher L. Conway <christopherleeconway@gmail.com>2010-04-27 20:44:47 +0000
committerChristopher L. Conway <christopherleeconway@gmail.com>2010-04-27 20:44:47 +0000
commit0c4a6edae95b3ffc76cb82604a3d1694d42625bb (patch)
tree38cf873c7fac5e1e25529425f4835aac3d79adbb /src/parser/antlr_input.cpp
parent130b814916c096f4b898a26c9df5056270af78d0 (diff)
Adding Integer and Rational constants to SMT
Diffstat (limited to 'src/parser/antlr_input.cpp')
-rw-r--r--src/parser/antlr_input.cpp15
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) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback