我想从随机文本中解析所有名称。名称格式如下:
Lastname F.
其中F - 名字的第一个字母。所以,我创建了这个语法:
grammar org.xtext.example.mydsl.Article with org.eclipse.xtext.common.Terminals
generate article "http://www.xtext.org/example/mydsl/Article"
Model : {Model}((per += Person)|(words += NON_WS))*;
Person : lastName = NAME firstName = IN;
terminal NAME : ('A'..'Z')('a'..'z')+;
terminal IN : ('A'..'Z')'.';
terminal NON_WS : !(' '|'\t'|'\r'|'\n')+;
它适用于这个例子:
Lastname F. some text. Lastname F.
但它在这一次崩溃了:
Lastname F. some text. New sentence. Lastname F.
^^^^^^^^^ missing RULE_IN at 'sentence.'
如何在生成“人物”对象之前或输入“人物”规则之前包括所有令牌的检查?
答案 0 :(得分:0)
Model : {Model}((per += Person)|(words += (NON_WS|NAME)))*;