1
我需要解析字符串是這樣的:強制性和選擇性的空間
"qqq www eee" -> "qqq", "www", "eee" (case A)
"qqq www eee" -> "qqq", "www", "eee" (case B)
這裏是語法我目前有:
grammar Query;
SHORT_NAME : ('a'..'z')+ ;
name returns [String s]: SHORT_NAME { $s = $SHORT_NAME.text; };
names
returns [List<String> v]
@init { $v = new ArrayList<String>(); }
: name1 = name { $v.add($name1.s); }
(' ' name2 = name { $v.add($name2.s); })*;
它工作正常的caseA
,但失敗了caseB
:
line 1:4 missing SHORT_NAME at ' '
line 1:5 extraneous input ' ' expecting SHORT_NAME
line 1:10 extraneous input ' ' expecting SHORT_NAME
任何想法如何使其工作?
這是java語法嗎? – kosa 2012-01-16 05:08:58
這是Antlr3語法的語法 – agibalov 2012-01-16 05:10:06