騒々しいデータストリームパート2のANTLR
-
29-09-2019 - |
質問
Bart Kiersとの非常に組み込みの議論に続いて 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
またはa 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
トークンの一部でもあります SUBJECT
そしてレクサーは失われます...どうすれば定義せずにこれを避けることができますか DOGGY
特別なトークンとして...私はパーサーに理解したいと思います DOGGY
単語自体として。
解決
まあ、これを追加しているようです ANY2 :'A'..'Z'+ {skip();};
私の問題を解決します!
所属していません StackOverflow