Pergunta

Eu tenho um requisito (mal especificado) que reconhecem determinadas palavras-chave, mas também há provisão para 'qualquer string' ...

Por exemplo, na entrada "vamos ter um" Eu tenho que pega == "cerveja", == "curry" e == mais nada em tudo (em teoria, a cerveja palavras-chave & Curry têm prioridade sobre todos os outros cordas).

Quando tento definir isso, é claro, eu recebo

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

Eu imagino que este é um FAQ n00b st00pid, mas não vê uma resposta óbvia. Qualquer ajuda recebidas com gratidão ...

Foi útil?

Solução

Você precisa aplicar algumas das técnicas gramática desambiguação que você está quer aprender (se esta é a lição de casa). De um modo geral você adicionar uma regra adicional que disambiguates a gramática.
Outra coisa antlr específico que você pode fazer é adicionar uma ação para a regra de que vai lidar com as diferenças.
eu poderia ser capaz de ajudar mais se você postar o código antlr em questão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top