タグ

parserに関するsecondlifeのブックマーク (9)

  • NekoHTML

    About NekoHTML is a simple HTML scanner and tag balancer that enables application programmers to parse HTML documents and access the information using standard XML interfaces. The parser can scan HTML files and "fix up" many common mistakes that human (and computer) authors make in writing HTML documents. NekoHTML adds missing parent elements; automatically closes elements with optional end tags;

  • NameBright - Coming Soon

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

  • JavaScript で構文解析: Days on the Moon

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

  • 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 は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

  • DOM Elementオブジェクトをテキストダンプしてデバッグ - hogehoge @teramako

    DOM APIを使用して作ったDOMツリー、うまく生成されているか見てみたい事は多々ある。少なくともオイラはある。簡単にテキスト表示してくれると嬉しいなぁと常々思っていたのだが発見した。 Firefox(というかMozilla系かな)限定だろうけどXMLSerializerがあるのだ。 使い方は簡単。 var serializer = new XMLSerializer(); //略 var root = document.createElement('div'); var anchor = document.createElement('a'); var aText = document.createTextNode('はてな'); anchor.setAttribute('href','http://www.hatena.ne.jp/'); anchor.appendChild( aT

    DOM Elementオブジェクトをテキストダンプしてデバッグ - hogehoge @teramako
  • 1