use of org.antlr.runtime.MismatchedTokenException in project phoenix by apache.
the class PhoenixParserException method getErrorMessage.
public static String getErrorMessage(Throwable e, String[] tokenNames) {
String msg;
if (e instanceof MissingTokenException) {
MissingTokenException mte = (MissingTokenException) e;
String tokenName;
if (mte.expecting == Token.EOF) {
tokenName = "EOF";
} else {
tokenName = tokenNames[mte.expecting];
}
msg = "Missing \"" + tokenName + "\" at " + getTokenLocation(mte);
} else if (e instanceof UnwantedTokenException) {
UnwantedTokenException ute = (UnwantedTokenException) e;
String tokenName;
if (ute.expecting == Token.EOF) {
tokenName = "EOF";
} else {
tokenName = tokenNames[ute.expecting];
}
msg = "Unexpected input. Expecting \"" + tokenName + "\", got \"" + ute.getUnexpectedToken().getText() + "\" at " + getTokenLocation(ute);
} else if (e instanceof MismatchedTokenException) {
MismatchedTokenException mte = (MismatchedTokenException) e;
String tokenName;
if (mte.expecting == Token.EOF) {
tokenName = "EOF";
} else {
tokenName = tokenNames[mte.expecting];
}
msg = "Mismatched input. Expecting \"" + tokenName + "\", got \"" + mte.token.getText() + "\" at " + getTokenLocation(mte);
} else if (e instanceof RecognitionException) {
RecognitionException re = (RecognitionException) e;
msg = "Encountered \"" + re.token.getText() + "\" at " + getTokenLocation(re);
} else if (e instanceof UnknownFunctionException) {
UnknownFunctionException ufe = (UnknownFunctionException) e;
msg = "Unknown function: \"" + ufe.getFuncName() + "\".";
} else {
msg = e.getMessage();
}
return msg;
}
use of org.antlr.runtime.MismatchedTokenException in project binnavi by google.
the class DebuggerMemoryExpressionParser method parse.
/**
* Parses a single memory expression string.
*
* @param memoryExpression The memory expression string to parse.
*
* @return The parsed memory expression tree.
*
* @throws RecognitionException Thrown if parsing failed.
*/
public static MemoryExpressionElement parse(final String memoryExpression) throws RecognitionException {
final CharStream charStream = new ANTLRStringStream(memoryExpression);
final MemoryExpressionLexer lexer = new MemoryExpressionLexer(charStream);
final CommonTokenStream tokens = new CommonTokenStream();
tokens.setTokenSource(lexer);
final MemoryExpressionParser parser = new MemoryExpressionParser(tokens) {
@Override
public void recover(final IntStream input, final RecognitionException exception) {
// Nothing to do
}
@Override
public Object recoverFromMismatchedToken(final IntStream input, final int ttype, final org.antlr.runtime.BitSet follow) throws RecognitionException {
throw new MismatchedTokenException(ttype, input);
}
@Override
public void reportError(final RecognitionException exception) {
// Nothing to do
}
};
parser.setTreeAdaptor(adaptor);
final MemoryExpressionParser.prog_return parserResult = parser.prog();
final CommonTree ast = (CommonTree) parserResult.getTree();
return convert(ast);
}
Aggregations