再帰下降パーザを書くだけなら誰でもできることなのだが、本当に一日中悩んでやっと低機能なものが動くようになった。最終的にはPEGをサポートしたいところである。たとえば ::= alpha alpha digit ::= digit なんて文法があったら #include #include "peg.hpp"... 続きを読む
んー、と思って、書いた。kazuho’s p5-http-parser-xs at master - GitHubBLURB は、PSGI のリクエストオブジェクトを返す 高速 同期 httpd, 非同期 httpd のどちらを実装する際にも使用可能 POST コンテンツのハンドリングはご自分で いったんファイルに入れ... 続きを読む
本文書は次に掲げる URL で示される文書の部分的な邦訳です。 http://www.cs.uu.nl/people/daan/download/parsec/parsec.html Parsec, 高速なコンビネータパーサ Daan Leijen University of Utrecht Dept. of Computer Science PO.Box 80.089, 3508 TB Utrecht ... 続きを読む
Recently I was having a little bit of fun and decided to go about writing a pure JavaScript HTML parser. Some might remember my one project, env.js, which ported the native browser JavaScript features to the server-side (powered by Rhino). On... 続きを読む
Prolog って何となく SWI-Prolog みたいなインタプリタや抽象マシンコードコンパイラしか無いような認識の人が多いみたいですが,一応フリーの実装でもスタンドアローン吐けるネイティブコンパイラがあるみたいです. 出るコードの質はよくわかりませんが,たぶ... 続きを読む
正規表現ベースの字句解析器を書くときは、narcissusというJSベースのJS処理系のコードを見るといいですhttp://mxr.mozilla.org/mozilla/source/js/narcissus/jsparse.js面倒な正規表現の模範解答が載ってます。下手に自分で考えて誤爆するより、一流の人が書い... 続きを読む
16:46 08/03/30 YZ1.DLL 0.30 リリース しました。 具体的には、ヘッダの格納ファイル数フィールドに実際より大きい値が入ってると変なとこ読もうとして落ちるバグ修正。 GreenPad の修正は来週くらいには…。 Booooooost Boost 1.35.0 来てました。 Asio と Fu... 続きを読む
LLとか言われても「再帰下降」、LALRとか言われても「表引くやつ」と言い直さないとぴんと来ないのでまとめる。あるごりずむ LL……トップダウン LL(1)……JavaCC他、手書きできる LL(k)……ANTLR他、手書きできる 再帰下降+バックトラック……Parsec*1他(たぶ... 続きを読む
ISO 646 の 多バイト拡張 これまでよく使われてきた、SJIS, ISO-2202-JP, EUC-JP について。 コード範囲 +------+------------------+------+------------------+ | 0 1 | 2 3 4 5 6 7 | 8 9 | A B C D E F | +------+------------------+------+--------------... 続きを読む
Beautiful Soup Documentation by Leonard Richardson (leonardr@segfault.org) Beautiful Soup is an HTML/XML parser for Python that can turn even invalid markup into a parse tree. It provides simple, idiomatic ways of navigating, searching, and m... 続きを読む
ParseTreeプロジェクトは12月22日、Rubyで書かれたRuby言語のパーサ「ruby_parser 1.0.0」をリリースした。 ruby_parserは、完全にRubyで書かれたRuby言語のパーサ。クラスやメソッドの定義などのRubyコードを文字列として渡すと、渡されたコードのパースを行っ... 続きを読む
■[Misc] PEG party 23:14 なんかよくわからんけどタイミングが良かったので PEG 意見交換会とかいうのに場違いながら混ぜていただきました。タイミングが良かったというのは ECMAScript => YARV とかでコンパイラ書いたらどんな感じかなぁとか思って PEG とか... 続きを読む
Onion開発日記は、はてなダイアリーに移行しました(URL:http://d.hatena.ne.jp/kmizushima/)。Onion開発日記のデータについては、随時移行していきたいと考えています。 よろしくお願いします(2008年5月4日)。 続きを読む
近頃、JavascriptでOreScriptなんてのがちょっとはやっていたりしまして。 OreScript書くのにある程度ちゃんと動くパーサコンビネータがあれば便利かも、とおもったので以前書いたパーサコンビネータをいじってみました。 変更点 メソッド名などをHaskellにあわ... 続きを読む
C++ の特徴のひとつである演算子オーバーロード、その粋を極めたのが Boost Lambda (無名関数) と Boost Spirit (構文解析) ではないかと思っています。JavaScript では無名関数が使えるので Lambda に関しては間に合っているとも言えますが、Spirit はそうも行... 続きを読む
CSS::Parse::Packed というモジュールを CPAN に up しましたので、使い方なんかを解説したいと思います。ちなみに CPAN 初登録です。むふ。 使いかた CSS モジュールの parser のひとつなので、CSS モジュールの使いかた準拠です。詳しくは CSS モジュールの P... 続きを読む