ANTLR:处理嵌套的行注释



通常,(为了语法着色(我使用以下ANTLR行(例如,对于Java或C++源代码(来检测块注释(/* this is a comment */(:

BlockComment
:
'/*' BlockCommentChar* '*/'
-> skip
;
fragment BlockCommentChar
: '*'  ~'/'
| ~'*'
;

但是在V语言块中允许嵌套注释。我可以想象在检测到的/*上以某种方式增加计数器,在*/上减少计数器,但如何做到这一点,以及如何将/* fdksjfldjlf /* fjdsjfkds f */ jfdjf jd */之间的所有内容报告为一个lexer令牌?

这样的东西应该可以工作:

BlockComment
: '/*' ( BlockComment | '/' ~'*' | ~'/' )*? '*/'
;

相关内容

  • 没有找到相关文章

最新更新