I\'m using ANTLR to parse logical expressions in a Java tool I\'m writing, and I\'m having issues because passing invalid input strings to the generated ANTLR lexer and pars
You should use an error listener as suggested in this answer
However, for a quick migration from antlr3 to antlr4 / antlr v4, you could use this as your grammer:
@parser::members
{
private final Logger log = LogManager.getLogger(this.getClass().getName());
public java.util.HashMap memory = new java.util.HashMap();
@Override
public void notifyErrorListeners(Token offendingToken, String msg, RecognitionException ex)
{
throw new RuntimeException(msg);
}
}
@lexer::members
{
@Override
public void recover(RecognitionException ex)
{
throw new RuntimeException(ex.getMessage());
}
}