如何解决ANTLR:处理嵌套行注释
通常,(用于语法着色)我使用以下ANTLR行(例如,对于Java或C ++源代码)来检测块注释(/* this is a comment */
):
BlockComment
:
'/*' BlockCommentChar* '*/'
-> skip
;
fragment BlockCommentChar
: '*' ~'/'
| ~'*'
;
但是在V语言块中,允许嵌套注释。我可以想象以某种方式在检测到的/*
处增加一个计数器,并在*/
处减少它,但是如何做到这一点以及如何将/* fdksjfldjlf /* fjdsjfkds f */ jfdjf jd */
之间的所有内容作为一个词法器令牌报告? >
解决方法
类似的事情应该起作用:
BlockComment
: '/*' ( BlockComment | '/' ~'*' | ~'/' )*? '*/'
;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。