私は ANTLR4 を学習していますが、パーサー ジェネレーターの使用経験はありません。
独自のビジター実装を定義するときは、BaseVisitor のメソッドをオーバーライドする必要があります (本の 40 ページにある EvalVisitor クラスのインスタンスを探しています)。メソッドの実装で例外がスローされる可能性がある場合、どうすればよいですか? 元のメソッドには空の throws 句があるため、チェック済み例外を使用できません。非チェック例外を使用する必要がありますか? (これは悪い Java 設計のようです)。たとえば、EvalVisitor クラスで、visitId メソッド (41 ページ) が 0 を返すのではなく、UndefinedId などのユーザー定義の例外をスローするとします。コードをどのように記述すればよいでしょうか?