|
Packit |
1c1d7e |
/* Generated By:JavaCC: Do not edit this line. ErrorHandler.h Version 6.0 */
|
|
Packit |
1c1d7e |
/* JavaCCOptions:STATIC=false,SUPPORT_CLASS_VISIBILITY_PUBLIC=true,BUILD_PARSER=true,BUILD_TOKEN_MANAGER=true */
|
|
Packit |
1c1d7e |
#ifndef ERRORHANDLER_H
|
|
Packit |
1c1d7e |
#define ERRORHANDLER_H
|
|
Packit |
1c1d7e |
#include <string>
|
|
Packit |
1c1d7e |
#include "JavaCC.h"
|
|
Packit |
1c1d7e |
#include "Token.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
namespace vhdl {
|
|
Packit |
1c1d7e |
namespace parser {
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
JAVACC_SIMPLE_STRING addUnicodeEscapes(JAVACC_STRING_TYPE str);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class VhdlParser;
|
|
Packit |
1c1d7e |
class ErrorHandler {
|
|
Packit |
1c1d7e |
friend class VhdlParserTokenManager;
|
|
Packit |
1c1d7e |
friend class VhdlParser;
|
|
Packit |
1c1d7e |
protected:
|
|
Packit |
1c1d7e |
int error_count;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
// Called when the parser encounters a different token when expecting to
|
|
Packit |
1c1d7e |
// consume a specific kind of token.
|
|
Packit |
1c1d7e |
// expectedKind - token kind that the parser was trying to consume.
|
|
Packit |
1c1d7e |
// expectedToken - the image of the token - tokenImages[expectedKind].
|
|
Packit |
1c1d7e |
// actual - the actual token that the parser got instead.
|
|
Packit |
1c1d7e |
virtual void handleUnexpectedToken(int expectedKind, JAVACC_STRING_TYPE expectedToken, Token *actual, VhdlParser *parser) {
|
|
Packit |
1c1d7e |
error_count++;
|
|
Packit |
1c1d7e |
fprintf(stderr, "Expecting %s at: %d:%d but got %s\n", addUnicodeEscapes(expectedToken).c_str(), actual->beginLine, actual->beginColumn, addUnicodeEscapes(actual->image).c_str());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
// Called when the parser cannot continue parsing.
|
|
Packit |
1c1d7e |
// last - the last token successfully parsed.
|
|
Packit |
1c1d7e |
// unexpected - the token at which the error occurs.
|
|
Packit |
1c1d7e |
// production - the production in which this error occurrs.
|
|
Packit |
1c1d7e |
virtual void handleParseError(Token *last, Token *unexpected, JAVACC_SIMPLE_STRING production, VhdlParser *parser) {
|
|
Packit |
1c1d7e |
error_count++;
|
|
Packit |
1c1d7e |
fprintf(stderr, "Encountered: %s at: %d:%d while parsing: %s\n", addUnicodeEscapes(unexpected->image).c_str(), unexpected->beginLine, unexpected->beginColumn, production.c_str());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
virtual int getErrorCount() {
|
|
Packit |
1c1d7e |
return error_count;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
virtual void handleOtherError(JAVACC_STRING_TYPE message, VhdlParser *parser) {
|
|
Packit |
1c1d7e |
fprintf(stderr, "Error: %s\n", (char*)message.c_str());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
virtual ~ErrorHandler() {}
|
|
Packit |
1c1d7e |
ErrorHandler() { error_count = 0; }
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class VhdlParserTokenManager;
|
|
Packit |
1c1d7e |
class TokenManagerErrorHandler {
|
|
Packit |
1c1d7e |
friend class VhdlParserTokenManager;
|
|
Packit |
1c1d7e |
protected:
|
|
Packit |
1c1d7e |
int error_count;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
// Returns a detailed message for the Error when it is thrown by the
|
|
Packit |
1c1d7e |
// token manager to indicate a lexical error.
|
|
Packit |
1c1d7e |
// Parameters :
|
|
Packit |
1c1d7e |
// EOFSeen : indicates if EOF caused the lexical error
|
|
Packit |
1c1d7e |
// curLexState : lexical state in which this error occurred
|
|
Packit |
1c1d7e |
// errorLine : line number when the error occurred
|
|
Packit |
1c1d7e |
// errorColumn : column number when the error occurred
|
|
Packit |
1c1d7e |
// errorAfter : prefix that was seen before this error occurred
|
|
Packit |
1c1d7e |
// curchar : the offending character
|
|
Packit |
1c1d7e |
//
|
|
Packit |
1c1d7e |
virtual void lexicalError(bool EOFSeen, int lexState, int errorLine, int errorColumn, JAVACC_STRING_TYPE errorAfter, JAVACC_CHAR_TYPE curChar, VhdlParserTokenManager* token_manager) {
|
|
Packit |
1c1d7e |
// by default, we just print an error message and return.
|
|
Packit |
1c1d7e |
fprintf(stderr, "Lexical error at: %d:%d. Encountered: %c after: %s.\n", errorLine, errorColumn, curChar, (EOFSeen? "EOF" : (const char*)errorAfter.c_str()));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
virtual void lexicalError(JAVACC_STRING_TYPE errorMessage, VhdlParserTokenManager* token_manager) {
|
|
Packit |
1c1d7e |
fprintf(stderr, "%s\n", (char*)errorMessage.c_str());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
virtual ~TokenManagerErrorHandler() {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#endif
|
|
Packit |
1c1d7e |
/* JavaCC - OriginalChecksum=685d19cb4cd943b60089f599e45f23ad (do not edit this line) */
|