5.1.2 The Lexical and RegExp Grammars

ECMAScript的词法文法(lexical)在规范条款11中给出。该文法使用遵守条款10.1定义的SourceCharacter的Unicode编码点(code point)作为终结符号。该文法定义了一组产生式,起始于目标符号(goal symbol)InputElementDivInputElementTemplateTail,或InputElementRegExp,或InputElementRegExpOrTemplateTail,它们描述了代码点序列如何被转换成输入元素序列。 and

除空白符和注释外的输入元素,组成ECMAScript的句法(syntactic grammar)的终结符,被称为ECMAScrpit的记号(tokens)。这些记号是ECMAScript语言的保留字,标示符,字面量和标点符号。此外,断行符(line terminator)虽然不被认为是记号,但也是输入元素流(stream)的一部分,会引导自动分号插入(automatic semicolon insertion11.9))的过程。简单的空白和单行注释会被删除,不会显示在句法的输入元素流中。一个MultiLineComment(即/*...*/形式的注释,无论它是否跨越了多行),如果没有包含断行符,同样会被删除,但如果包含了一个或多个断行符,则会被一个单独的断行符替换,成为句法的输入元素流的一部分。

ECMAScript的RegExp文法21.2.1中定义。该文法有SourceCharacter定义的代码点作为自己的终结符号。它定义了一组产生式,起始于目标符号Pattern,它描述了代码点序列如何被转换成正则表达式模式。

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

Last updated