Code Archive Skip to content Google About Google Privacy Terms
JSON::Hatchet の構文解析子 - Tociyuki::DiaryのJSONパーサがすっきりと書けていたのものだから,ちょっとうちもJSONパースしたくなってので書いてみました.といってもLL構文のパーサを1から書くのも芸がない感じだったので.Parse::RecDescentというCPANモジュールを使ってJSONのパーシングをしてみました. Parse::RecDescentはその名のとおり,汎用の再帰下降型パーサです.LL(1)文法にのっとっていれば,パースが可能です.*1 id:tociyukiさんがの記事にあるBNFを流用させてもらい,JSONのパーサを書くと以下のようになりました. このように,BNFっぽいものを記述するだけでパースを行うことができてお手軽です.パターンとして正規表現を書くこともできて,スキャナーに相当することもやってくれてます. 構文規則に合わせてパ
16:46 08/03/30 YZ1.DLL 0.30 リリース しました。 具体的には、ヘッダの格納ファイル数フィールドに実際より大きい値が入ってると変なとこ読もうとして落ちるバグ修正。 GreenPad の修正は来週くらいには…。 Booooooost Boost 1.35.0 来てました。 Asio と Fusion と GIL の三枚看板がでかいですが、Bimap が地味に便利だ。 あと、mbさんのEgg のレビューが明日からでしょうか。(また スケジュール から消えてますが…Protoが入る前までロールバックしてる?) 他人事ながらドキドキ。 17:36 08/03/28 ケース 十年来の疑問なんですが、"case" に単独で対応する日本語ってなんになるんですかね。 "case-insensitive" や "lowercase" の "case"。単に "case-insens
Parse::RecDescent [1] は yacc 風の文法定義を与えるとパーサを生成してくれる Perl モジュール。 ドキュメントが長文だけど、取りあえず - 字句解析に相当するものは文字列リテラルか正規表現をそのまま。 - ルールは 識別子: サブルール { アクション } の形で書く。 - アクションの中の Perl コードでは $item[1], $item[2] ... が yacc でいう $1, $2 ... に相当する。 - サブルールの後に (?), (s), (s?) をつけると正規表現で言う ?, +, * の意味になる。 - subrule(s? /,/) のようにして繰り返しの中のセパレータを指定できる。(この場合は subrule が0回以上繰り返され、間にカンマが入るという意味) - アクションの中で $return 変数に値を入れるとそれがそのプロダ
名前¶ Parse::RecDescent - 再帰下降パーサの生成 (Generate Recursive-Descent Parsers) バージョン¶ This document describes version 1.94 of Parse::RecDescent, released April 9, 2003. このドキュメントは、2003年4月9日にリリースされた Parse::RecDescentのバージョン1.94について述べたものである。 概要¶ use Parse::RecDescent; # $grammarの仕様書からパーサを生成 $parser = new Parse::RecDescent ($grammar); # $othergrammarの仕様書からパーサを生成 $anotherparser = new Parse::RecDescent ($otherg
Created 30 September 2004, last updated 29 December 2012 NOTE: I am no longer updating this page. Michael Bernstein has a copy at Python Parsing Tools that will be easier to keep up-to-date. The python.org wiki also has a page called LanguageParsing.A few years ago, I went looking for Python parsing tools. I spent a long time researching the various options. When I was done, I had a cheat sheet on
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く