我正在编写一个简单的antlr3语法来解析hello world number
格式。
在hello或world或number之间不能忽略空格。
fragment H_ : 'h' | 'H';
..
fragment W_ : 'w' | 'W';
HELLO : H_ E_ L_ L_ O_ ;
WORLD : W_ O_ R_ L_ D_ ;
SEMI : ';';
INTEGER_NUM : ('0'..'9')+;
WS : (' '|'\r'|'\t'|'\n') {$channel = HIDDEN;};
number : INTEGER_NUM;
hello : HELLO;
world : WORLD;
start[std::string& text] returns [int count] :
hello world number EOF
{$text = $hello.text;$text += $world.text;$count=std::stoi($number.text);};
像“ helloworld5”,“ helloworld5”这样的I / p都可以解析。 但是,“ hello world5”,“ hello world 4”等不是。
谁能帮忙,我在这里想念什么。为什么空白不打招呼世界不被忽略?