Я попытался сократить свою проблему до самой простой проблемы, которую я могу решить в xtext - я хотел бы использовать следующую грамматику:
M: lines += T*;
T:
DT
| BDT
| N
;
BDT:
name = ('a' | 'b' | 'c')
;
DT:
'd' name=ID
('(' (ts += BDT (','ts += BDT)*) ')')?
;
N:
'n' name=ID ':' type=[T]
;
Я намерен анализировать выражения формы d f(a,b,b)
, например, которые отлично работают. Я также хотел бы иметь возможность анализировать n g:f
, который также работает, но не n g:a
, где здесь часть правила BDT. Выдается ошибка "Отсутствует RULE_ID в 'a'".
Я хотел бы, например, разрешить грамматике анализировать n g:a
, и я был бы очень признателен, если бы кто-нибудь мог указать, где я ошибаюсь в этой очень простой грамматике.