Parsing Xtext:输入错误的规则或';在'处缺少规则*;

Parsing Xtext:输入错误的规则或';在'处缺少规则*;,parsing,grammar,xtext,backtracking,Parsing,Grammar,Xtext,Backtracking,我想解析随机文本中的所有名称。名称的格式如下: 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 +=

我想解析随机文本中的所有名称。名称的格式如下:

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.'

如何在生成“Person”对象之前或在输入“Person”规则之前检查所有令牌?

词法分析是无文本的。因此,一个名字的词法,总是一个名字的词法

Model : {Model}((per += Person)|(words += (NON_WS|NAME)))*;