【发布时间】:2010-12-01 13:51:10
【问题描述】:
在与 Bart Kiers on parsing a noisy datastream with ANTLR 进行了非常有趣的讨论后,我遇到了另一个问题......
目的还是一样的:只提取有用的信息,语法如下,
VERB : 'SLEEPING' | 'WALKING';
SUBJECT : 'CAT'|'DOG'|'BIRD';
INDIRECT_OBJECT : 'CAR'| 'SOFA';
ANY : . {skip();};
parse
: sentenceParts+ EOF
;
sentenceParts
: SUBJECT VERB INDIRECT_OBJECT
;
像it's 10PM and the Lazy CAT is currently SLEEPING heavily on the SOFA in front of the TV. 这样的句子将产生以下内容
这是完美的,它正在做我想要的。从一个大句子中,我只提取对我有意义的词。但是,我发现了以下错误。如果我在文中某处引入了一个与标记完全一样的词,我会以 MismathedTokenException 或 noViableException 结尾
产生错误:
DOGGY 被解释为 DOG 的开头,它也是 TOKEN SUBJECT 的一部分,词法分析器丢失了......如果不将 DOGGY 定义为特殊令牌,我怎么能避免这种情况.. . 我希望解析器将DOGGY 本身理解为一个词。
【问题讨论】:
标签: antlr grammar noise-words