タグ

2011年5月9日のブックマーク (2件)

  • Route 477(2009-06-23)

    ■ [javascript] JavaScript用のパーサジェネレータ一覧 汎用 ANTLR : LL(k) kmyacc : LALR(1) JS専用 JS/CC : LALR(1) Cruiser.Parse : LL(k)? 小さいもの Inforno.Parsec Gin 再帰下降方式で手書き 他にもあったら教えてください。 BiwaSchemeで使いたいので、「主要な各ブラウザで動く」「生成されるコードの実行速度が速い」が満たされてると良いです。 ■ [scheme] R6RSのライブラリが無駄に凝ってる件 例: 継承ができるレコード型 処理を続行できたりする例外 テーブルサイズを指定できるハッシュテーブル APIが多少不便になっても、プログラマの自由を制限することだけはしたくないぜ、という意志が見られる。 詳細はWikiの方に。 Greenbear Laboratory -

    Route 477(2009-06-23)
    mugaki
    mugaki 2011/05/09
  • JavaScript で構文解析: Days on the Moon

    C++ の特徴のひとつである演算子オーバーロード、その粋を極めたのが Boost Lambda (無名関数) と Boost Spirit (構文解析) ではないかと思っています。JavaScript では無名関数が使えるので Lambda に関しては間に合っているとも言えますが、Spirit はそうも行きません。JavaScript 2 で演算子オーバーロードがサポートされるのならチャレンジしてみようかななどと思ってそれきりになっていました。 しかし、一部でパーサブームが起こっているというのを受け、Perl 6 Rules をつらつらと眺めているうち、正規表現のメタ文字を使えば文法定義をきれいに書けるのではと思い至りました。そこで実際に JavaScript でパーサジェネレータを作り、Spirit にあやかって Gin (ジン) と名づけてみました。 文法定義 正規表現リテラルを使うこ

    mugaki
    mugaki 2011/05/09