我正在使用antlr4编写语法,我需要检查词法分析器和解析器中是否有任何错误,但我找不到执行此操作的java代码示例。这是我的语法和java代码。


发布于 2020-06-23 06:57:49
这是一个你可以用它来检查的类
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
}https://stackoverflow.com/questions/62523783
复制相似问题