ANTLRでノイズの多いデータストリームを解析することについてBartKiersと非常に興味深い議論をした後、私は別の問題に直面しています...
目的は同じです。次の文法で有用な情報を抽出するだけです。
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.
は次のようになります
これは完璧で、私が望むことを正確に実行しています..大きな文から、私にとって意味のある単語だけを抽出しています....しかし、私は次のエラーを見つけました。テキストのどこかで、トークンとまったく同じように始まる単語を紹介している場合、最後にaMismathedTokenException
またはnoViableException
午後10時で、レイジーCATは現在ぐっすり眠っています。 テレビの前のソファにドギーバッグを持って。
エラーを生成します:
DOGGY
DOG
はTOKENの一部でもSUBJECT
あり、レクサーが失われる始まりとして解釈されます...特別なトークンとして定義せずにこれを回避するにはどうすればよいですか...パーサー自体を単語としてDOGGY
理解してもらいたいです。DOGGY