我试图用antlr4写一些错误检查我的语法简单。
语法本身是由功能构造的。
即
FUNCTION hello (n){
......
}
FUNCTION main (n) {
......
}
我不知道它是如何想捕获特定的错误,如缺少函数名 ,或丢失的主要功能
这里是我的ErrorListener样子
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
public class SimpleErrorListener extends BaseErrorListener {
@Override
public void syntaxError(Recognizer<?, ?> recognizer,
Object offendingSymbol,
int line,
int charPositionInLine,
String msg,
RecognitionException e) {
List<String> stack = ((Parser) recognizer.getRuleInvocationStack();
Collections.reverse(stack);
System.err.println("rule stack: " + stack);
System.err.println("line" + line + ":" +
charPositionInLine + "at" + offendingSymbol + ": " + msg);
}
}
我也删除了控制台错误监听,并添加这一个,但我不知道该如何处理这些特定错误。 任何建议表示赞赏。 非常感谢。