11.4 注释

注释可以是单行或多行。多行注释不能嵌套。

因为单行注释可以包含除了 LineTerminator 字符之外的任何字符,又因为有个一般规则:一个 token 总是尽可能匹配更长,所以一个单行注释总是包含从 // 到行终结符之间的所有字符。然而,在该行末尾的 LineTerminator 不被看成是单行注释的一部分,它被词法文法识别成语法文法输入元素流的一部分。这一点非常重要,因为这意味着是否存在单行注释都不影响自动分号插入进程(见 11.9)

像空白一样,注释会被语法文法简单丢弃,除了 MultiLineComment 包含行终结符字符的情况,这种情况下整个注释会当作一个 LineTerminator 提供给语法文法解析

语法
Comment::
    MultiLineComment
    SingleLineComment
MultiLineComment::
    /*MultiLineCommentCharsopt*/
MultiLineCommentChars::
    MultiLineNotAsteriskCharMultiLineCommentCharsopt
    *PostAsteriskCommentCharsopt
PostAsteriskCommentChars::
    MultiLineNotForwardSlashOrAsteriskCharMultiLineCommentCharsopt
    *PostAsteriskCommentCharsopt
MultiLineNotAsteriskChar::
    SourceCharacterbut not *
MultiLineNotForwardSlashOrAsteriskChar::
    SourceCharacterbut not one of / or *
SingleLineComment::
    //SingleLineCommentCharsopt
SingleLineCommentChars::
    SingleLineCommentCharSingleLineCommentCharsopt
SingleLineCommentChar::
    SourceCharacterbut not LineTerminator

results matching ""

    No results matching ""