1
我是Antlr的新手。我寫練習了一點語法,但得到由API CommonTokenStream從CommonTokenStream沒有令牌使用Antlr
lexer grammar Expr;
options {
language = Java;
}
EXPRS:EXPRT {System.out.println($EXPRT.text);};
fragment
EXPRT : 'xxx' ID {System.out.println($ID.text);} ' zzz';
fragment
ID : ('a'..'z' |'A'..'Z' |'_')('a'..'z' |'A'..'Z'|'_')*;
測試代碼是這樣的困惑:
ANTLRStringStream input = new ANTLRStringStream(msg);
Expr expr = new Expr(input);
CommonTokenStream cs = new CommonTokenStream(expr);
System.out.println(cs.size());
無論輸入的是,沒有從CommonTokenStream令牌。 但是,直接使用expr時會輸出。 任何人都知道爲什麼? antlr的版本是3.5
非常感謝你。有用。這個問題花了我兩天時間。我在互聯網上找到的所有樣本都沒有提到它。我訪問官方網站,只找到了一個java文檔。你知道antlr的API介紹的任何材料嗎? – user2202494 2013-03-24 12:31:25