是否可以在MGrammar中解析多行c样式注释?

我一直在讨论May09的奥斯陆比特,尝试使用一些源代码进行标记。我似乎无法弄清楚如何正确处理多行C风格的评论。 例如:
/*comment*/
有些案例让我望而却步:
/***/
要么
/**//**/
我可以做一个或另一个工作,但不是两个。 语法是:
    module Test {
    language Comments {

        token Comment =
            MultiLineComment;

        token MultiLineComment =
            "/*" MultiLineCommentChar* "*/";

        token MultiLineCommentChar =
            ^ "*" |
            "*" PostAsteriskChar;

        token PostAsteriskChar =
            ^ "*" |
            "*" ^("*" | "/"); 

        /*    
        token PostAsteriskChar =
            ^ "*" |
            "*" PostAsteriskChar; 
        */

        syntax Main = Comment*;
    }
}
注释掉的令牌是我认为我想要做的,但是不允许使用递归令牌。 事实上,MGrammar本身“打破”了多行评论(它无法处理
/***/
),这让我相信这是不可能的。 有没有人知道呢?     
已邀请:
我这样做的方式如下(不是我自己的所有代码,但我找不到原作者的参考)。
interleave Skippable = Whitespace | Comment;
interleave Comment = CommentToken;
@{Classification["Comment"]}
token CommentToken = CommentDelimited
| CommentLine;
token CommentDelimited = "/*" CommentDelimitedContent* "*/";
token CommentDelimitedContent
= ^('*')
| '*'  ^('/');
token CommentLine = "//" CommentLineContent*;
token CommentLineContent
= ^(
'u000A' // New Line
|  'u000D' // Carriage Return
|  'u0085' // Next Line
|  'u2028' // Line Separator
|  'u2029' // Paragraph Separator
);
这允许单行(
//
)注释以及多行(
/* */
)注释。     

要回复问题请先登录注册