C# 中的分隔注释

问题描述 投票:0回答:1

参考以下C#语言标准规范的制作片段,

fragment Delimited_Comment
    : '/*' Delimited_Comment_Section* ASTERISK+ '/'
    ;
    
fragment Delimited_Comment_Section
    : SLASH
    | ASTERISK* Not_Slash_Or_Asterisk
    ;

fragment Not_Slash_Or_Asterisk
    : ~('/' | '*')    // Any except SLASH or ASTERISK
    ;

我不明白

ASTERISK* Not_Slash_Or_Asterisk
部分。如果
ASTERISK*
表示零个或多个星号,为什么额外的星号受到
Not_Slash_Or_Asterisk
的限制。

请帮我理解C#语言标准规范中的上述产生式。

c# .net comments
1个回答
0
投票
fragment Delimited_Comment
    : '/*' Delimited_Comment_Section* ASTERISK+ '/'
    ;
    
fragment Delimited_Comment_Section
    : SLASH
    | ASTERISK* Not_Slash_Or_Asterisk
    ;

fragment Not_Slash_Or_Asterisk
    : ~('/' | '*')    // Any except SLASH or ASTERISK
    ;

因此,分隔注释是

/*
,后跟不是
*/
的内容,后跟 1 个或多个
*
,最后是
/

Delimited_Comment_Section
表示如果您有一个或多个
*
,它们后面不能跟
/
(
ASTERISK* Not_Slash_Or_Asterisk
)。拥有
/
的唯一方法是前面没有
*

© www.soinside.com 2019 - 2024. All rights reserved.