Javascript EcmaScript语法中的[Yield、wait、In、Return]是什么
EcmaScript中的许多产品都带有以下“修饰符”: 以下是几个例子:Javascript EcmaScript语法中的[Yield、wait、In、Return]是什么,javascript,ecmascript-6,compiler-construction,context-free-grammar,Javascript,Ecmascript 6,Compiler Construction,Context Free Grammar,EcmaScript中的许多产品都带有以下“修饰符”: 以下是几个例子: ArrayLiteral[Yield, Await]: ... ElementList[Yield, Await]: ... AssignmentExpression[+In, ?Yield, ?Await] 我已经在规范中搜索了解释,特别是语法符号部分,但没有找到它。它应该在那里。有人能给我指一下相关的段落,也许能给我一个简短的解释吗?- 一个产品可以通过“[parameters]”形式的下标注释进行参数化,该
ArrayLiteral[Yield, Await]:
...
ElementList[Yield, Await]:
... AssignmentExpression[+In, ?Yield, ?Await]
我已经在规范中搜索了解释,特别是语法符号
部分,但没有找到它。它应该在那里。有人能给我指一下相关的段落,也许能给我一个简短的解释吗?-
一个产品可以通过“[parameters]”形式的下标注释进行参数化,该注释可以作为产品定义的非终端符号的后缀出现。“参数”可以是单个名称,也可以是逗号分隔的名称列表。参数化产品是一组产品的简写,这些产品定义了参数名称的所有组合,前面加下划线,并附加到参数化非终端符号。这意味着:
StatementList[Return]:
ReturnStatement
ExpressionStatement
语句列表[返回]:
返回声明
表达陈述
是一个方便的缩写,用于:
StatementList:
ReturnStatement
ExpressionStatement
StatementList_Return:
ReturnStatement
ExpressionStatement
StatementList:
ReturnStatement
ExpressionStatement
StatementList_Return:
ReturnStatement
ExpressionStatement
StatementList_In:
ReturnStatement
ExpressionStatement
StatementList_Return_In:
ReturnStatement
ExpressionStatement
声明列表:
返回声明
表达陈述
语句列表返回:
返回声明
表达陈述
而且:
StatementList[Return, In]:
ReturnStatement
ExpressionStatement
语句列表[返回,输入]:
返回声明
表达陈述
是以下内容的缩写:
StatementList:
ReturnStatement
ExpressionStatement
StatementList_Return:
ReturnStatement
ExpressionStatement
StatementList:
ReturnStatement
ExpressionStatement
StatementList_Return:
ReturnStatement
ExpressionStatement
StatementList_In:
ReturnStatement
ExpressionStatement
StatementList_Return_In:
ReturnStatement
ExpressionStatement
声明列表:
返回声明
表达陈述
语句列表返回:
返回声明
表达陈述
语句列表\u位于:
返回声明
表达陈述
语句列表\返回\输入:
返回声明
表达陈述
多个参数产生组合数量的产品,而不是所有产品都必须在完整的语法中引用
它继续讨论参数化右侧,添加“opt”等等
(在搜索时,不要只查找[Return]
,因为它们可以而且通常会出现在[Yield,wait,Return]
和[Yield,?wait,?Return]
等组中,就像的语法一样。)
-
如果此产品具有[Yield]参数且标识符的StringValue为“Yield”,则这是一个语法错误
如果此产品具有[Await]参数且标识符的StringValue为“Await”,则这是一个语法错误
-
需要[In]语法参数,以避免将关系表达式中的In
运算符与for
语句中的In
运算符混淆
第5.1.5节,“语法符号”。请参阅@rici,非常感谢您的链接!谢谢,你能解释一下这是什么意思吗
AssignmentExpression[+In,?Yield,?wait]
?为什么在引用非终端赋值表达式?@AngularInDepth.com时会出现+
和?
:这些都在第5.1.5节中进行了解释。好的,谢谢,如果我不是英语母语人士,我会仔细阅读并回答一个澄清问题。要理解上面的5.1介绍,对我来说太难了……@太妃糖-甚至对以英语为母语的人来说也很难!:-)我建议发布一个问题,提及上面引用的部分(甚至可能引用它),也可能提及这个答案,并具体说出你不理解的内容。希望有人能以一种有助于你——以及你之后的其他人——的方式解释这一部分。:-)