1

特定のキーワードを認識するという (不適切に指定された) 要件がありますが、「任意の文字列」に対する規定もあります ...

たとえば、入力 "let's have a " では、== "beer"、== "curry"、および == を処理する必要があります (理論的には、キーワード ビール & カレーは他のすべての文字列よりも優先されます)。

もちろん、これを定義しようとすると、

Decision can match input such as "'curry" using multiple alternatives: 2, 3
As a result, alternative(s) 3 were disabled for that input

これは st00pid n00b の FAQ だと思いますが、明確な答えが見つかりません。感謝して受け取った助け...

4

1 に答える 1

1

学んでいる文法の曖昧さを解消するテクニックのいくつかを適用する必要があります (これが宿題の場合)。一般的に言えば、文法を明確にするルールを追加します。

できるもう 1 つの antlr 固有のことは、違いを処理するアクションをルールに追加することです。

問題の antlr コードを投稿していただければ、さらにお役に立てるかもしれません。

于 2009-12-03T04:08:06.580 に答える