JavaScriptのparserに関する議論

1
小倉唯 @Constellation

module, contextual keywordで安心ですね. 文頭にもかかわらずkeywordじゃないから, no LineTerminator制限がかかる. parser作者泣かせではあるが, よいこと. これでmoduleの名前がbreak the webしない.

2012-07-03 03:21:22
小倉唯 @Constellation

BTWと略そうとして, By the wayと同じだった… break the web.

2012-07-03 03:22:38
Kazuho Oku @kazuho

ES.next は Perl みたく難解になって救命病棟が必要なイメージ

2012-07-03 03:23:29
小倉唯 @Constellation

ArrowFunctionExpressionをrestoreなしで実装するの思いついたのは, 評価されて良いはず! (自分)

2012-07-03 03:24:14
小倉唯 @Constellation

ArrowFunctionExpressionがなぜ困るのか, JS parser書いたことのある人が, ES.next draftをじっと見ると, ああああってなるはず.

2012-07-03 03:25:19
Kazuho Oku @kazuho

えっ普通に restore 使うんじゃダメなの…

2012-07-03 03:25:46
小倉唯 @Constellation

restore使っていいと思います. ただ, esprimaにrestoreの仕組みがまだないので, もうどうせなら使わないでいくかーというそれで...

2012-07-03 03:26:16
Kazuho Oku @kazuho

@Constellation (a, b, c) => a + b + c とかどうやったんですか?

2012-07-03 03:26:33
Kazuho Oku @kazuho

comma expression を変形するのかな…

2012-07-03 03:26:43
Kazuho Oku @kazuho

@Constellation あざす!あー comma expression をそもそも2項演算子としてもってないんですね

2012-07-03 03:29:14
小倉唯 @Constellation

@kazuho SequenceExpressionで持ってますー. Mozilla Parser API由来です. 100%上位互換を謳うparserなのでー. http://t.co/yhR4JW5m

2012-07-03 03:30:42
小倉唯 @Constellation

あとはAssignmentExpression以下precedence上SequenceExpressionが括弧無しでは来ないことを考慮して括弧の数を注意深く見れば...

2012-07-03 03:31:28
Kazuho Oku @kazuho

あれ JavaScript って = と ?: のあたりでワンパスにするには定義がややこしくて JSX では考えるのめんどくさいから reparse してるけどワンパスでできるのか

2012-07-03 03:33:31
Kazuho Oku @kazuho

? と AssignmentOperator のどっちが先に出現するかによって処理を変えればいいのかな

2012-07-03 03:37:26
Kazuho Oku @kazuho

ああそうか ConditionalExpression としてパースしたあと (Fused)AssignOp を探せばいいのか。なるほどー

2012-07-03 03:45:21
Kazuho Oku @kazuho

?: の返り値は右辺値だから、パーサレベルで許容してもコンパイルエラーになる、と。

2012-07-03 03:46:07
小倉唯 @Constellation

Esprima parserはcode(めちゃくちゃ綺麗), 完成度共に素晴らしいと思っているので, 皆さんcontributionとかどうでしょうか?

2012-07-03 03:49:00
Kazuho Oku @kazuho

@Constellation おー。これ結局1文字ずつ [] で取ってるのが効いてますかね。JSX だと String.prototype.substring() がボトルネックになってました (今は修正済)

2012-07-03 04:09:06
小倉唯 @Constellation

@kazuho かなり速くなります! V8, JSCなどの中身にそって注意深い高速化を @ariyahidayat さんが行なっています. http://t.co/w08SZjXi PICの具体的な仕組みを踏まえた上で読むと面白いですよー http://t.co/vTtUWWFq

2012-07-03 04:14:09
小倉唯 @Constellation

JSC, V8のJIT Compiler読む勢が書いているので…

2012-07-03 04:14:53