Проблема с сопоставлением строк (могу ли я расставить приоритеты?)

StackOverflow https://stackoverflow.com/questions/1837480

  •  11-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top