codecamp

词法和正则的文法

第 7 章给出了 ECMAScript 的 词法文法 (lexical grammar)。作为此文法的终结符字符(Unicode 代码单元)符合第 6 章定义的 SourceCharacter 的规则。它定义了一套产生式,从目标符 InputElementDiv 或 InputElementRegExp 起始,描述了如何将这样的字符序列翻译成一个输入元素序列。


空白和注释之外的输入元素构成 ECMAScript 语法文法的终结符,它们被称为 ECMAScript 的 tokens。这些 tokens 是,ECMAScript 语言的保留字,标识符,字面量,标点符号。此外,行结束符虽然不被视为 tokens,但会成为输入元素流的一部分,用于引导处理自动插入分号( 7.9 )。空白和单行注释会被简单的丢弃,不会出现在语法文法的输入元素的流中。如果一个 多行注释 (MultiLineComment)(即形式为“/ ... /”的注释,不管是否跨越多行)不包含行结束符也会简单地丢弃,但如果一个 多行注释 包含一个或多个结束符,那么,注释会被替换为一个行结束符,成为语法文法输入元素流的一部分。


15.10 给出了 ECMAScript 的 正则文法 (RegExp grammar)。此文法的终结符字符也由 SourceCharacter 定义。它定义了一套产生式,从目标符 Pattern 起始,描述了如何将这样的字符序列翻译成一个正则表达式模式。


两个冒号“::”作为分隔符分割词法和正则的文法产生式。词法和正则的文法共享某些产生式。


上下文无关文法
语法文法
温馨提示
下载编程狮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; }