0

私はantlr3.4でEclipseにantlrIDEを使用しており、命題論理で使用する次の組み合わせ文法を作成しました

grammar Propositional;

options {
  language = Java;
}

@header {
  package antlr;
}

@lexer::header {
  package antlr;
}

formula:expression;

term 
    : ATOM
    | '(' expression ')'
    ;

negation
    : ('~')* term
    ;

and
    : negation (('^') negation)*
    ;

or
    : and (('|') and)*
    ;

implies
    : or (('>') or)*
    ;

expression
    : implies (('#') implies)*
    ;    

ATOM : 'a'..'z'+;
WS : (' ' | '\t')+ {$channel = HIDDEN;};

保存すると、ビルドが成功し、インタープリターは希望どおりに機能しますが、生成されるレクサーとパーサーには、throwステートメントの欠落やコンストラクターの誤りなどの多くの問題があります。

どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

0

解決済み:少しばかげていますが、パッケージがantlrと呼ばれるのが気に入らなかった

于 2013-01-31T19:32:11.823 に答える