在與巴特煮布鍋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
本身就是一個詞。