我在写一个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
运营商。
我说得对吗,还是我感到困惑?