2

を調べ始めたところ、Javaパーサーファイルが生成されているANTLRことに気付きましANTLRWorks 1.5たが、throws宣言が不完全です。

文法ファイル:

grammar ASTDemo;

options { 
  output=AST; 
}

parse
    :   orexpr+
    |   andexpr+
    |   TAG ' ' parens
    |   TAG (parens andexpr)+
    |   together+
    ;

parens
    :   '(' TAG ')';

andexpr
    :   TAG (AND^ TAG)+;    

orexpr
    :   '[' TAG (OR^ TAG)+ ']';

together
    :   TAG (' '^ TAG)*
    ;

TAG     : ('FOO' | 'BAR');
OR  :   '|';
AND :   ': ';
WS  :   (' ')+;

これが不完全なthrowsステートメントを含むサンプル行です

public final ASTDemoParser.parse_return parse() throws  {

起動に使用されているJDKの現在のバージョンANTLRWorksは1.6xです。これを見たことがある人はいますか?

残念なことに、このコンパイルエラーにより、そのANTLRWorks中で文法をデバッグすることができません。テストするたびに、ファイルを手動で修正する必要があります。

4

1 に答える 1

0

ANTLRWorks 1.5 rc1とを使用して文法をコンパイルしJDK 1.7.0.11ました。

すべてうまくコンパイルされ、言及されたコード行は次のようになります。

public final ASTDemoParser.parse_return parse() throws RecognitionException {

それは恣意的なバグの兆候である可能性があります。もう一度再コンパイルしてみてください。使用してみた可能性がありますJDK 1.7

于 2013-01-17T14:34:00.640 に答える