Comments Antlr4语法中注释的奇怪行为

Comments Antlr4语法中注释的奇怪行为,comments,antlr4,Comments,Antlr4,在ID下添加注释行是可以的,但是在WS下添加注释行会导致出现错误。下面列出了整个文件Hello.g4 /** * Define a grammar called Hello */ grammar Hello; r : 'hello' ID ; // match keyword hello followed by an identifier ID : [a-z]+ ; // match lower-case identifiers /********

ID
下添加注释行是可以的,但是在
WS
下添加注释行会导致出现错误。下面列出了整个文件
Hello.g4

/**
 * Define a grammar called Hello
 */
grammar Hello;
r  : 'hello' ID ;         // match keyword hello followed by an identifier

ID : [a-z]+ ;             // match lower-case identifiers
/**********************************************************************************************/

WS : [ \t\r\n]+ -> skip ; // skip spaces, tabs, newlines

/**********************************************************************************************/
我在控制台中得到的输出如下:

ANTLR Tool v4.4 (/tmp/antlr-4.4-complete.jar)
Hello.g4 -o /home/me/workspace/TestComment/target/generated-sources/antlr4 -listener -no-visitor -encoding UTF-8
error(50): Hello.g4:13:0: syntax error: '<EOF>' came as a complete surprise to me
1 error(s)

BUILD FAIL
Total time: 168 millisecond(s)
ANTLR工具v4.4(/tmp/ANTLR-4.4-complete.jar) Hello.g4-o/home/me/workspace/TestComment/target/generated sources/antlr4-listener-no visitor-encoding UTF-8 错误(50):Hello.g4:13:0:语法错误:“”对我来说完全是个惊喜 1个错误 构建失败 总时间:168毫秒 运行Eclipse版本:Neon.3发行版(4.6.3),默认的ANTLR4项目


为什么ANTLR4应该关心后面的注释行

ANTLR 4语法将JavaDoc注释定义为可选的允许作为标题和每个规则。最后一个“注释行”后面没有规则,因此它被解释为规则的无效开头

将注释行更改为
/*-*/
,以避免出现错误