0

javacこんにちは、コマンドでコンパイルすると非常にうまく機能するJavaクラスのセットがあります。

javac -g -nowarn -classpath /usr/class/cs143/cool/lib:.:/usr/java/lib/rt.jar ASTConstants.java ASTParser.java cool-tree.java 

同じマシンに groovy をインストールし、以下を実行しようとしました。

groovyc  -classpath /usr/class/cs143/cool/lib:.:/usr/java/lib/rt.jar ASTConstants.java ASTParser.java cool-tree.java 

groovy は Java ファイルを理解できず、次のようなスロー エラーが発生するようです。

ASTParser.java: 21: unexpected token: protected @ line 21, column 3.
     protected static final short _production_table[][] = 
 ^

少し混乱しています。すべての Java プログラムは有効な Groovy コードですか? その逆だけが真実ではありませんよね?

どこで間違いを犯していますか?

前もって感謝します。

4

1 に答える 1

4

いくつかの癖があります。以前は、内部クラスに関する問題がいくつかありました (現在は 2.x で解決される可能性があります)。また、文字列リテラルの内容を監視する必要がある場合があります (たとえば、ドル記号が紛らわしい)。配列定義にリテラルを使用すると、問題が発生する可能性があります (たとえば、int [] ary = {};groovy では動作しません)。また、頻繁には出てきませんが、それ自体で使用されるスコープブレースは groovy を混乱させます。

特定のケースでは、 を に変更するだけshort _production_table [][]ですshort [][] _production_table。これで問題は解決すると思います。

ところで、ここにいくつかの他の「落とし穴」があります

于 2012-11-10T04:10:19.017 に答える