ANTLR:处理嵌套行注释

ANTLR: handle nested line comments

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

BlockComment
    :
      '/*' BlockCommentChar* '*/'
      -> skip
    ;

fragment BlockCommentChar
    : '*'  ~'/'
    | ~'*'
    ;

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

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

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