Я пытаюсь определить упрощенный язык, используя Irony. Некоторые варианты использования языка
Dear {Name},
Это произвольный текст со ссылками на поля, заключенные в фигурные скобки. двойная фигурная скобка экранирует объявление поля. Я придумал следующую спецификацию:
var orText = new FreeTextLiteral("Text", FreeTextOptions.AllowEof | FreeTextOptions.AllowEmpty);
var orFieldName = new FreeTextLiteral("FieldName");
//Nonterminals
var orField = new NonTerminal("Field");
var orValue = new NonTerminal("Value");
//Rules
orField.Rule = "{" + orFieldName + "}";
orValue.Rule = orText | orField;
Root = orValue;
Однако Irony GrammarExplorer анализирует только значение, которое имеет элемент Text. Поле не распознано. Что мне здесь не хватает?