Я пытаюсь использовать семантические предикаты в ANTLR для следующего правила грамматики
test[n]
:({n==0}? => ~('a'))
|({n==1}? => ~('b'))
|({n==2}? => ~('c'))
;
Однако ANTLR не позволяет мне определять грамматику таким образом, требуя, чтобы по крайней мере одна из альтернатив была по умолчанию. Точная ошибка отображается является ссылкой ошибки, для параметра п.
Моя цель состоит в том, чтобы я хотел, чтобы одна и только одна альтернатива была видна в любой данный момент времени. Есть идеи, как это сделать?
Спасибо!