codecamp

注释

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


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


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


语法:


Comment :: 
MultiLineComment 
SingleLineComment


MultiLineComment ::
 /* MultiLineCommentCharsopt*/


MultiLineCommentChars :: 
MultiLineNotAsteriskChar MultiLineCommentCharsopt 
* PostAsteriskCommentCharsopt


PostAsteriskCommentChars :: 
MultiLineNotForwardSlashOrAsteriskChar MultiLineCommentCharsopt 
* PostAsteriskCommentCharsopt


MultiLineNotAsteriskChar :: 
SourceCharacter but not asterisk *


MultiLineNotForwardSlashOrAsteriskChar :: 
SourceCharacter but not forward-slash / or asterisk *


SingleLineComment :: 
// SingleLineCommentCharsopt


SingleLineCommentChars :: 
SingleLineCommentChar SingleLineCommentCharsopt


SingleLineCommentChar :: 
SourceCharacter but not LineTerminator


行终结符
Tokens
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }