我寫的BNF的JavaScript將被用來生成詞法分析器和語言分析器。不過,我想了解如何設計for循環的一些想法。這裏是我目前的BNF的簡化版本:JavaScript的for循環BNF
[...]
VarDecl. Statement ::= "var" Identifier "=" Expr ";"
ForLoop. Statement ::= "for" "(" Expr ";" Expr ";" Expr ")"
[...]
所以,您可以看到,示例中有兩個語句,變量聲明和for循環。有很多不同的表達,但表達的沒有也報表。現在
的問題是,這JavaScript代碼將不通過解析器:
for (var x = 3; [...]; [...])
這是因爲一個變量聲明不是表達式。
你對如何解決這個想法?我能想到的一些方法,但我不希望在你自己的思想的方式來獲得,所以我不會在這裏提到它們。