;
ArrayBindingPattern
- : "let [" { CYNOT(@$); }
+ : "let [" BindingElementListOpt "]"
;
BindingPropertyList_
| LexOf
;
+BindingElementList
+ : BindingElementOpt[element] "," BindingElementListOpt[next]
+ | BindingRestElement[element]
+ | BindingElement[element]
+ ;
+
+BindingElementListOpt
+ : BindingElementList[pass]
+ | LexBind LexOf
+ ;
+
BindingProperty
: SingleNameBinding
| LexOf PropertyName ":" BindingElement
| LexBind LexOf BindingPattern InitializerOpt[initializer] { CYNOT(@$); }
;
+BindingElementOpt
+ : BindingElement[pass]
+ | LexBind LexOf
+ ;
+
SingleNameBinding
: BindingIdentifier[identifier] InitializerOpt[initializer] { $$ = CYNew CYBinding($identifier, $initializer); }
;
BindingRestElement
- : "..." BindingIdentifier
+ : LexBind LexOf "..." BindingIdentifier
;
/* }}} */
/* 13.4 Empty Statement {{{ */
;
FormalParameterList
- : LexBind LexOf FunctionRestParameter { CYNOT(@$); }
+ : FunctionRestParameter { CYNOT(@$); }
| FormalParameter[binding] FormalParameterList_[next] { $$ = CYNew CYFunctionParameter($binding, $next); }
;