Мне нужно правило грамматики XText (или несколько) работает аналогично следующему:XText множественным перекрестные ссылки
1: CollectionGetElement:
2: val=[VariableReference] '='
3: (ref=[List] | ref=[Bytefield] | ref=[Map])
4: '[' keys+=GetElementKeyType ']' ('[' keys+=GetElementKeyType ']')* ';';
5: GetElementKeyType:
6: key=[VariableReference] | INT | STRING;
Как это Unfortuantely он не работает из-за 3 линии!
Я также пробовал 3 отдельных правила (для: map, list и bytefield), но тогда для парсера трудно (невозможно) распознать правильное правило. затем
ListGetElement:
val=[VariableReference] '='
ref=[List]
'[' key+=GetElementKeyType ']' ('[' key+=GetElementKeyType ']')* ';';
... same for the others
Ошибка:
Decision can match input such as "RULE_ID '=' RULE_ID '[' RULE_ID ']' '[' RULE_ID ']' ';'" using multiple alternatives: 5, 6
The following alternatives can never be matched: 6
Какой самый лучший способ для того чтобы достигнуть этого?
спасибо, не знаю, почему я этого не видел – user972851
Я тоже, спасибо. –