Проблема соответствия строк (могу ли я расставить приоритеты?) - PullRequest
1 голос
/ 03 декабря 2009

У меня есть (плохо указано) требование, чтобы я распознавал определенные ключевые слова, но есть также условие для "любой строки" ...

Например, во входных данных "давайте иметь" я должен обработать == "beer", == "curry" и == что-нибудь еще вообще (теоретически, ключевые слова 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, но не вижу очевидного ответа. Любая помощь с благодарностью получена ...

1 Ответ

1 голос
/ 03 декабря 2009

Вам необходимо применить некоторые из техник устранения неоднозначности грамматики, которые вы изучаете (если это домашнее задание). Вообще говоря, вы добавляете дополнительное правило, которое устраняет неоднозначность грамматики.

Еще одна особенность, которую вы можете сделать для antlr, - добавить в правило действие, которое будет обрабатывать различия.

Возможно, я смогу помочь вам больше, если вы отправите соответствующий код antlr. *

...