【发布时间】:2012-01-19 01:20:13
【问题描述】:
我正在编写一个 JavaScript 解析器,但 for 循环的语法规则有点混乱。 From the specs:
'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 运算符。
我说对了吗,还是我只是糊涂了?
【问题讨论】:
标签: javascript grammar