JavaScript の構文(BNF)とか
@Constellation 見当たらないので、自作しようと奮闘してますw yield はまぁReturnStatementを同じ形でいいのかなと思いますが、分割代入は難しい...
2010-08-03 00:18:50@teramako 恐ろしいことにw あっyield, sendできるので式だったかと. val = yield null;とか.
2010-08-03 00:23:58@Constellation 手元のGecko 1.9.2.8だと SyntaxError: yield expression must be parenthesized ソース:function a(){ return yield, "a"; } になります。。。
2010-08-03 00:28:32yieldの構文ってこの辺りが関連するのかな。 https://bugzilla.mozilla.org/show_bug.cgi?id=351514
2010-08-03 00:34:02yieldとかMozilla専用の記法がある時に復帰可能SyntaxErrorの判別が期待通りに行われなさそうだなと思ったので、UxUではとりあえず1回try-catchで実行してからエラったらijsに渡すようにしてみてたり。
2010-08-03 00:34:42http://nanto.asablo.jp/blog/2006/08/12/481381#js17-generator 「yield 式がほかの演算子のオペランドとして使われるときは yield 式全体を括弧で囲う必要がある」ってどこから得られた情報なんだろう?
2010-08-03 00:35:14ES4(最終版)のBNFには yield あるけど… http://hg.ecmascript.org/es4/file/917f35e97deb/spec/grammar.pdf
2010-08-03 00:43:56@piro_or ijsはv8 level解釈 + ECMA-262のgetter/setterにString他取れる修正 + IdentifierNameにkeyword取れる修正 の解釈ですー. JS1.8のparseもすごい気になります...
2010-08-03 00:44:53ここらへんっぽい. http://wiki.ecmascript.org/doku.php?id=discussion:iterators_and_generators
2010-08-03 01:05:17@teramako 難しいですね... ConditionalExpのphaseにはさんだらだめなのかなーとか思ったのでちょっと書いてみます...
2010-08-03 01:14:40ivjs.js(ijsじゃないほう)にこんな感じでpatchあてたらyield解釈できるかな? http://gist.github.com/504910 ES4のBNF参考にConditionalに追加した.
2010-08-03 01:38:05眠い... 非常にあいまいなのか, RhinoとSpiderMonkeyで解釈違う... 10, yield 20; とかRhinoだと通らない.
2010-08-03 03:14:08SMの解釈方式に従えばこんな感じかな? http://gist.github.com/504910 SMと違ってyield文でなくEXPに畳み込んで, そのためreturnと同一のmethodでいじる必要をなくしてる. これでそこそこ解釈できると思うけど...
2010-08-03 03:47:32