Итак, я пытаюсь заставить эту грамматику работать, но она выдает ошибку. Это происходит от @ context = "num" внутри лексического числа. Это говорит мне, что это неоднозначно, кто-нибудь может сказать мне, почему?
start syntax Statement = Type Id "=" Number ";" ;
lexical Id = @context="id" [a-z] !<< [a-z]+ !>> [a-z] \ Type;
lexical Number = @context="num" [0-9]+;
keyword Type = @context="type" ("int"|"str"|"float");
Это действительно странно, потому что работает без тега @context, но когда я добавляю его, я вдруг не могу импортировать / найти символ Statement в другом модуле. Или это дает мне грамматику неоднозначную ошибку.
пожалуйста, помогите
** редактировать: **
Если я изменю ключевое слово Type на нормальный лексический тип, тогда, с круглыми скобками или без них, проблема останется.