2

Java、ANTLR、Netbeansの初心者はこちら。

jdkとnetbeansをインストールしました。私はnetbeans6.8で新しいプロジェクトを開始し、ライブラリとしてantlr-3.2.jarを追加しました。また、AntlrWorksを使用してレクサーとパーサーのクラスを作成しました。これらのクラスの名前は、ExprParser.javaおよびExprLexer.javaです。それらをpath-to-netbeans-project/src/parsersという名前のディレクトリにコピーしました。

私はメインファイルを持っています:

パッケージjavaapplication2;

importorg.antlr.runtime。*;
パーサーをインポートします。*;

パブリッククラスメイン{

    public static void main(String [] args)は例外をスローします{

        ANTLRInputStream input = new ANTLRInputStream(System.in);
        ExprLexer lexer = new ExprLexer(input);
        CommonTokenStreamトークン=newCommonTokenStream(lexer);
        ExprParserパーサー=newExprParser(tokens);
        parser.prog();

    }

}

アプリケーションは正常にビルドされます。私が読んでいる本には、プログラムを実行して何かを入力し、Ctrl + Z(私はWindowsを使用しています)を押してEOFをコンソールに送信する必要があると書かれています。問題は、NetBeansコンソールでCtrl+zを押しても何も起こらないことです。コマンドラインから実行すると、ctrl+zは正常に機能します。

これはおそらくあまりにも多くの情報ですが、私はそれを理解することはできません。ごめん。おそらく、3つの新しいテクノロジーを一度に学ぶのは良い考えではありません。

4

1 に答える 1

2

それ以外の:

ANTLRInputStream input = new ANTLRInputStream(System.in);

あなたはただすることができます:

ANTLRStringStream input = new ANTLRStringStream(args[0]);

ここargs[0]で、最初のコマンド ライン パラメータです。

あるいは単に:

ANTLRStringStream input = new ANTLRStringStream("your source here");
于 2010-06-13T05:47:33.653 に答える