package ppg.parse; import java.io.*; import ppg.lex.*; /** * This error is thrown when the parser has an internal error -- the user should not see these * in the ideal case -- ex: we have a null somewhere. * If there is a problem with the source, either a syntaxError or SemanticError will be thrown, * depending on nature of the error */ public class ParserError extends Exception { /** * This contains the errorMessage for that caused the exception */ protected String errorMessage; /** * @param message The massage that contains a description of the error */ public ParserError(String message){ errorMessage = message; } /** * @param file The file where the error came from. * @param msg The message that contains a description of the error. * @param tok Token from which to get the line number and the text * of the error token. */ public ParserError(String file, String msg, Token tok) { //errorMessage = file+ ":" +tok.lineNumber() + ": at " +tok.tokenText+ " :" +msg; } /** * In rare cases when no error message is know return a generic message */ public ParserError() { this("There is a parse error in your code..."); } /** * @return String that is the message of the error */ public String getErrorMessage(){ return errorMessage; } }