如何使用 MGrammar 解析行注释块?
我想解析行注释块。每个旁边的行注释应该在 MGraph 输出中分组。
我无法将行注释块组合在一起。我当前的语法使用 "\r\n\r\n" 来终止一个块,但这在所有情况下都不起作用,例如在文件末尾或当我引入其他语法时。
示例输入可能如下所示:
/// This is block
/// number one
/// This is block
/// number two
我现在的语法是这样的:
module MyModule
{
language MyLanguage
{
syntax Main = CommentLineBlock*;
token CommentContent = !(
'\u000A' // New Line
|'\u000D' // Carriage Return
|'\u0085' // Next Line
|'\u2028' // Line Separator
|'\u2029' // Paragraph Separator
);
token CommentLine = "///" c:CommentContent* => c;
syntax CommentLineBlock = (CommentLine)+ "\r\n\r\n";
interleave Whitespace = " " | "\r" | "\n";
}
}