我正在学习ANTLR4,而且我以前没有解析器生成器的经验.
当我定义自己的访问者实现时,我必须覆盖BaseVisitor的方法(我正在寻找本书第40页的EvalVisitor类的实例).如果我的方法实现可能抛出异常,我该怎么办?我不能使用已检查的异常,因为原始方法有一个空的throws子句.我希望使用未经检查的例外吗?(这似乎是一个糟糕的Java设计).例如,假设在EvalVisitor类中我希望方法visitId(页面41)抛出用户定义的异常,比如UndefinedId,而不是返回0.我应该如何编写代码?
antlr4 ×1