IF/THENステートメントのセットを解析する簡単な文法を作成しました。さまざまな認識例外(MissingTokenException、NoViableAltExceptionなど)を取得できます。
今、私は一歩先に進んで、処理をもう少しきめ細かくする必要があります。
たとえば、次のルールにはTHENがありません。
IF CODE="1"
DATE < TODAY
ELSE
DATE >= TODAY
ENDIF
これがもう1つあります(左のパレンがありません):
IF CODE="1" OR CODE="2") THEN
DATE < TODAY
ENDIF
別の(文字列の周りの引用符がありません):
IF CODE=1" THEN
DATE < TODAY
ENDIF
誰か提案できますか?私が持っている唯一のアイデアは、正規表現ベースのポストプロセッサです。ステートメントが適切に解析されていない場合は、一連の正規表現と比較して、何が悪かったのかを判断します。
ジェイソン