タグ

rubyとparserに関するsecondlifeのブックマーク (5)

  • NameBright - Coming Soon

    NameBright.com - Next Generation Domain Registration complang.org is coming soon

  • Ruby で packrat parser - まめめも

    packrat parsing というパーサの実装方法があります。特徴は、再帰下降パーサ + 無限先読み可能 + memoize*1 という感じです。僕が下手な説明をするより、英語わからなくても Haskell わかればわかる素晴らしいスライドやPappy (reference implementation) を参照してもらったほうがいいです。 で、練習として Ruby で packrat parser を使って足し算と掛け算だけの電卓を作ってみました。 $ ruby arith.rb 1 + 2 + 3 => 6 1 + 2 * 3 => 7 1 + 2 * (3 + 4) => 15文法はこんな感じ。 式      = 空白 加算式 文字列終端 加算式    = 乗算式 ("+" 乗算式)* 乗算式    = プリミティブ ("*" プリミティブ)* プリミティブ = 数値 / "("

    Ruby で packrat parser - まめめも
  • HaskellのParsecを,Rubyで - もち

    こんなのがあったんだなぁ.名前は,『rparsec』. rparsec is the Haskell Parsec implemented in Ruby. (中略) Feature hightlight: Operator precedence grammar Dynamic grammar, context-sensitive grammar. A calculator parser takes 10 lines of code; A sophisticated sql language parser takes only about 250 lines of code. ということで,ふつけるを読んだ人なら皆知っているであろう,HaskellのParsecライブラリをRubyで実装しましたよ,という代物.電卓なら10行で,洗練されたSQLパーサですらたったの250行で書けるという凄ま

    HaskellのParsecを,Rubyで - もち
  • 2004年12月1日の日記 - 氾濫原

    スキャナ&パーサーだけで力尽きた…… racc css.y ホントはアクション部分も少し書いたんだけど、どうも上手くいかないので削除って、とりあえず分離させておくことにしてみた。パーサーから構文木作るところって普通はどういう風に実装するだろう。再帰定義の部分で汚くなっちゃうんだよなぁ。スーパー簡単なサンプルが欲しい…… あーあと、Invalid なものが突っ込まれたとき、その部分を無視してパースを続ける、っていうのはどうやって書くんだろう。謎ががががが。 パースエラーは error に還元される。だから、右辺の正しい場所に error を置いとけば無視できると。CSS の ruleset を処理中にパースエラーが起きたら ruleset : error とか書いておけばそこを飛ばして次のやつを探す?みたいな? 適当にやってみよう。 error トークン書くと on_error 呼ばれないの

    secondlife
    secondlife 2007/01/19
    racc で css パーサ
  • Ruby で JSON パーサーを書いてみました - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

  • 1