[英]check if there is any errors in lexer and parser java antlr4
这是一个 class 你可以用它来检查
import org.antlr.v4.runtime.Parser;
import org.antlr.v4.runtime.*;
import java.util.*;
public class SyntaxError extends BaseErrorListener {
private boolean error;
public SyntaxError(){
super();
error = false;
}
@Override
public void syntaxError(Recognizer<?, ?> recognizer,
Object offendingSymbol,
int line, int charPositionInLine,
String msg,
RecognitionException e)
{
this.error = true;
}
public boolean isError() {
return this.error;
}
}
你这样称呼它
parser.removeErrorListeners(); // remove ConsoleErrorListener
SyntaxError syntaxError = new SyntaxError();
parser.addErrorListener(syntaxError); // add ours
final ParseTree tree = parser.start();
if(syntaxError.isError){
// do what you want here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.