1

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は現在ぐっすり眠っています。
    テレビの前のソファにドギーバッグを持って。

エラーを生成します:

代替テキスト

DOGGYDOGはTOKENの一部でもSUBJECTあり、レクサーが失われる始まりとして解釈されます...特別なトークンとして定義せずにこれを回避するにはどうすればよいですか...パーサー自体を単語としてDOGGY理解してもらいたいです。DOGGY

4

1 に答える 1

1

さて、これを追加するとANY2 :'A'..'Z'+ {skip();};私の問題は解決するようです!

于 2010-12-01T16:35:40.320 に答える