2

私の仕事は、Calc ソース ファイルを TAM アセンブリに変換するTriangle Abstract Machine用の 'Calc'-Compiler を作成することです。

Calc 言語は、変数宣言 (サポートされる整数のみ)、

var someID : integer;

課題

someID = 1+5-8+someID;

そして印刷機能。

print(someID-10)

現在、リスナーを使用して Calc を TAM アセンブリ (およびその動作) に変換することで、ANTLR4 のツリー ウォーキング機能を使用しています。ここで、コンテキスト エラーが発生した場合 (未定義の変数の使用など)、ツリー トラバーサルを中止したいと考えています。

どうやってやるの?

4

1 に答える 1

2

を投げることができますCancellationException。ANTLR 4のは、 から派生した をBailErrorStrategyスローして構文エラーが発生すると、解析を中止します。ParseCancellationExceptionCancellationException

于 2013-02-27T20:11:36.007 に答える