在antlr3语法中不忽略空格

时间:2019-08-20 10:27:20

标签: antlr antlr3

我正在编写一个简单的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”等不是。

谁能帮忙,我在这里想念什么。为什么空白不打招呼世界不被忽略?

0 个答案:

没有答案