我正在尝试使用 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 仅解析具有文本元素的值。无法识别字段。我在这里想念什么?