1

私の他の質問を見れば、私の目標をより良くすることができます。https://stackoverflow.com/questions/19510039/from-regex-to-parser-generatorsをご覧ください。

私はいい子になろうとしているので、README を読んでいます ( https://java.net/projects/javacc/sources/svn/show/tags/release_60/examples/SimpleExamples?rev=555を参照)。

  1. 文法入力ファイルで javacc を実行して、パーサーと語彙アナライザー (またはトークン
    マネージャー)を実装する一連の Java ファイルを生成します。

    javacc Simple1.jj

  2. 生成された Java プログラムをコンパイルします。

    javac *.java

  3. パーサーを使用する準備が整いました。パーサーを実行するには、次のように入力します。

    Java Simple1

私の試み:

D:\tests\javacc\simple1>javacc ..\Simple1.jj
Java Compiler Compiler Version 6.0_beta (Parser Generator)
(type "javacc" with no arguments for help)
Reading from file ..\Simple1.jj . . .
File "TokenMgrError.java" does not exist.  Will create one.
File "ParseException.java" does not exist.  Will create one.
File "Token.java" does not exist.  Will create one.
File "SimpleCharStream.java" does not exist.  Will create one.
Parser generated successfully.

D:\tests\javacc\simple1>javac *.java
SimpleCharStream.java:474: error: non-static variable this cannot be referenced from a static context
  static void setTrackLineColumn(boolean trackLineColumn) { this.trackLineColumn = trackLineColumn; }
                                                            ^
1 error

私のJavaバージョン:

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing)

「こいつら」が何をしているか知っているのは確かだ。私が何か間違ったことをしたのは確かだ。javacc を使用した最初のテストで、そのような単純なエラーが発生しましたか?

どうすればそれを修正して講義を続けることができますか?

4

2 に答える 2

1

今のところ、バージョン 5.0 を使用することをお勧めします。バージョン 6 には多くの変更があり、これらにはいくつかのバグが伴いました。まもなくバージョン 6 への更新が行われるはずです。https://java.net/projects/javacc/downloads

于 2013-10-24T11:37:37.383 に答える