2

次の方法で ANTLR 3.4 を実行しようとしました。

java -classpath "d:\extracted\antlrworks1.4.3" org.antlr.Tool %p%\parser.g -o %p%\output
or
java -classpath "%p%lib\antlrworks-1.4.3.jar" org.antlr.Tool %p%\parser.g -o %p%\output
or
java -classpath "%p%lib\antlr-3.4.jar;%p%lib\antlr-runtime-3.4.jar;%p%lib\ST4-4.0.4.jar" org.antlr.Tool %p%\parser.g -o %p%\output

Each of them resulted in the same error message;

Message ILLEGAL_OPTION_VALUE in locale en_US not found
Message ALL_OPS_NEED_SAME_ASSOC in locale en_US not found
ANTLR installation corrupted; English messages file en.stg incomplete
Exception in thread "main" java.lang.Error: ANTLR ErrorManager panic
    at org.antlr.tool.ErrorManager.panic(ErrorManager.java:918)
    at org.antlr.tool.ErrorManager.setLocale(ErrorManager.java:427)
    at org.antlr.tool.ErrorManager.<clinit>(ErrorManager.java:390)
    at org.antlr.tool.CompositeGrammar.createNFAs(CompositeGrammar.java:379)
    at org.antlr.Tool.process(Tool.java:466)
    at org.antlr.Tool.main(Tool.java:93)

これを修正する方法はありますか?

4

2 に答える 2

3

いくつかの質問に答える以外は、v3 を使用しなくなりました。私が使う

$ export CLASSPATH=.:/usr/local/lib/antlr-3.4-complete-no-antlrv2.jar

もう一度、文法を「コンパイル」します

$ java org.antlr.Tool Question.g

次にコンパイルします

$ javac Question*.java Test.java

次に実行

$ java Test

精度 : ファイル Test.java には以下が含まれます。

import org.antlr.runtime.*;

public class Test {
    public static void main(String[] args) throws Exception {
        ANTLRInputStream input = new ANTLRInputStream(System.in);
        QuestionLexer lexer = new QuestionLexer(input);
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        QuestionParser parser = new QuestionParser(tokens);
        parser.question();
    }
}
于 2012-11-27T16:29:23.993 に答える
0

わかった。現在のディレクトリは、jar の場所と同じである必要があります。

于 2012-11-27T18:23:24.903 に答える