繁体   English   中英

ANTLR不匹配空注释

[英]ANTLR not matching empty comments

我正在使用ANTLR解析一种语言,该语言使用冒号作为注释指示符,并作为“等于”分配的一部分。 因此,例如

Index := 2    :Set Index

我需要将第一部分识别为赋值语句,将第二个冒号之后的文本识别为注释。 目前,我使用以下规则执行此操作:

COMMENT                 : ':'+ ~[:='\r\n']*;

这似乎确定除了当冒号后面紧跟着一个新的生产线工作。 例如在线

Index := 2    :

换行符紧接在第二个冒号之后。 在这种情况下,注释无法识别,并且其余代码未在正确的上下文中进行解析。 如果第二个冒号后面有一个空格,则该行将被正确解析。

我希望'\\ r'\\ n'可以解决这个问题,但是它似乎仅在注释符号后至少有一个字符时才起作用-我是否从命令中遗漏了某些内容?

大括号表示不带引号的字符集合。 因此,您的'\\ r \\ n'文字在那里不起作用(您应该得到一个警告,即在char范围中多次包含撇号。

像这样定义注释:

COMMENT: ':'+ ~[:=\n\r]*;

暂无
暂无

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

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