次の単純な pegjs 文法は正常に機能します。
start
= sentence
sentence
= word ws sentence
/ word
word
= [a-z]*
ws
= " "
http://jsfiddle.net/4V3Zt/で入手できます 。文法はhttp://pegjs.majda.cz/onlineに貼り付けることもできます。
空白に任意のスペースを許可するように ws ルールを変更すると、次のようになります。
ws
= " "* // add an asterisk to allow " ", " ", " ", ...
最大呼び出しスタック例外がスローされ、解析が失敗します。(jsfiddle を使用している場合、ブラウザー ツールで例外が表示されます。例外は node.js 環境でも発生するため、これは pegjs に関連していることは確かです)。
この ws ルールの * の何が問題になっていますか?