JAVACC を使用して、bnf 文法で定義された文字列を初期非終端 G で解析します。TokenMgrError によってスローされたエラーをキャッチしたいと考えています。特に、次の 2 つのケースを処理したいと考えています。
- 入力の一部のプレフィックスが G を満たすが、すべてのシンボルが入力から読み取られるわけではない場合、このケースを正常と見なし、G() の呼び出しによって見つかったプレフィックスの AST を返します。
- 入力に G を満たすプレフィックスがない場合は、G() から null を返します。
現在、代わりにこのケースのそれぞれで TokenMgrError を取得しています。生成されたファイルの変更 (つまり、Error を Exception に変更し、適切な try/catch/throws ステートメントを追加する) を開始しましたが、面倒であることがわかりました。さらに、JAACC によって生成された変更済みファイルの自動生成は機能しません。これを達成するためのよりスマートな方法はありますか?