我在寫一個JavaScript解析器,但for
循環的語法規則有點混亂。 From the specs:JavaScript語法:for/for-in循環規則?
'for' LPAREN (
(expressionNoln)? SEMI (expression)? SEMI (expression)? RPAREN statement
| 'var' variableDeclarationListNoln SEMI (expression)? SEMI (expression)? RPAREN statement
| leftHandSideExpression 'in' expression RPAREN statement
| 'var' variableDeclarationNoln 'in' expression RPAREN statement
)
我試圖找出expressionNoln
,只是一個普通expression
之間的差異。並且,在此過程中,請找出variableDeclartionNoln
和variableDeclartionListNoln
發生了什麼。
我發現的唯一區別是在relationalExpression
和relationalExpressionNoln
之間進一步下降。後者的規則是缺少in
運營商。
我說得對嗎,還是我感到困惑?