繁体   English   中英

ANTLR4在分析结束时打印

[英]ANTLR4 Print at the end of parsing

解析结束时是否可以在ANTLR4中打印@members?

grammar test;
@members{
int count = 0;
} 

sentence :  (a..z|A..Z)* r;
r        :  [\r\n]+ {count++;}; 

我不确定是否能正确回答您的问题,但是正如StephanA所说,您的语法不符合ANTLR4。 我对此稍作修改:

grammar Test;

@members{
int count = 0;
} 

sentence :  WORD (r WORD)* {System.out.println(count);};
r        :  WS {count++;};

WORD : ('a'..'z'|'A'..'Z')+;
WS :  [ \r\n]+;

该语法将接受“ This is a test (末尾的count = 3),但会拒绝“ This is a test或“ This is a test (末尾为WS )。 我添加了一个代表解析树根的root规则,并在此规则的末尾显示了count

这是你想要的吗?

编辑

我只是重构了语法,实际上root没有用到root规则(我不好)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM