在与巴特煮布锅on parsing a noisy datastream with ANTLR,我结束了另外一个问题非常interesing讨论...ANTLR在嘈杂的数据流,第2部分
的目标仍然是相同的:只与以下提取有用信息语法,
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
it's 10PM and the Lazy CAT is currently SLEEPING heavily, with a DOGGY bag, on the SOFA in front of the TV.
产生一个错误:
DOGGY
被解释为DOG
的开始,这也是TOKEN SUBJECT
的一部分,并且词法分析器丢失了......如果没有将DOGGY
定义为特殊标记,我该如何避免这种情况...我希望解析器能够在下面tand DOGGY
本身就是一个词。