2011-07-09 115 views
1

我下載了最新版本的ANTLR(ANTLR 3.3爲AntlrWorks 1.4.2)。ANTLR測試程序掛起

我啓動了AntlrWorks UI,並輸入了示例expression evaluator grammar。接下來,我從AntlrWorks UI生成代碼。接下來,我選擇了調試菜單選項來生成輸入文件和__Test___.java

但是,直到現在,一切都很好,當我從命令行運行__Test___時,ANTLR只是掛起。我把一些System.out中的Java代碼中,似乎該程序在下面的行從__Test___.java

ExprParser g = new ExprParser(tokens, 49100, null); 

我也嘗試打印標記流掛,但它不顯示任何信息。

有沒有人有線索可能會出錯?我嘗試了多種語法,但得到了相同的結果。

我使用OpenJDK運行64位Ubuntu。

回答

4

調試器創建一個套接字並等待ANTLRWorks中的連接。所以你只能在ANTLRWorks中運行這個自動生成的__Test__.java類。如果你想通過命令行創建一個測試類,使用下面的類:

import org.antlr.runtime.*; 

public class Main { 
    public static void main(String[] args) throws Exception { 
    ExprLexer lexer = new ExprLexer(new ANTLRStringStream("4 + 5 * 6\n")); 
    ExprParser parser = new ExprParser(new CommonTokenStream(lexer)); 
    parser.prog(); 
    } 
} 
[email protected]:~/Programming/ANTLR/Demos/Expr$ java -cp antlr-3.3.jar org.antlr.Tool Expr.g 
[email protected]:~/Programming/ANTLR/Demos/Expr$ javac -cp antlr-3.3.jar *.java 
[email protected]:~/Programming/ANTLR/Demos/Expr$ java -cp .:antlr-3.3.jar Main 
34 
+0

謝謝巴特那的工作。 – Parag