cojiさんのユーザーページです。http://coji.s9.xrea.com/
CPAN モジュールを見て回っている限りでは Perl では構文解析子ジェネレータを使うまでもなく、LL(1) 文法で楽に構文を記述できる入れ子括弧テキストや、XML、JSON 程度なら、Perl で直書きする方がポピュラーな気がします。Ruby なら、LALR(1) 文法対応のコンパイラ・ジェネレータ Racc を使うのが楽でしょう。ANTLR は Python 優遇で、Perl5 と Ruby ポートは進んでいない印象を受けてますが、今はどうなのでしょう。 ⇒ Leo's Chronicle: 正規表現に見切りをつけるとき 正規表現の能力を超えるデータはどう扱えばいいのか?一番のお勧めは、ANTLRを使って字句解析(lexer)、構文解析(parser)するプログラムを生成する方法です。一昔前なら、lex/yacc、flex/bison, JavaCCなどしか選択肢がなかったのですが、
本日,初めてのPerl第17章の練習問題を解答したところで,やっと初めてのPerlを読み終えたことになります.ログ見ると4/18日から開始してるのでひと月くらいかかったかしら.もう少し,早く本を読めるようになりたい. これまで,初めてのPerlなカテゴリで書いてきたエントリをまとめてみました.頼りない内容ですが,読みたい人はどうぞ. Perlの勉強はじめます 第2章 スカラデータ その1 第3章 リストと配列 その1 第3章 リストと配列 その2 配列の操作 第3章 リストと配列 その3 foreach 第3章 リストと配列 その4 3.8 スカラーコンテキストとリストコンテキスト 第3章 リストと配列 その5 3.10 練習問題 第4章 サブルーチン Perlは変数のスコープがアレだなぁ 第4章 サブルーチン 4.12 練習問題 第5章 ハッシュ 第5章 ハッシュ 練習問題 正規表現をち
JSON::Hatchet の構文解析子 - Tociyuki::DiaryのJSONパーサがすっきりと書けていたのものだから,ちょっとうちもJSONパースしたくなってので書いてみました.といってもLL構文のパーサを1から書くのも芸がない感じだったので.Parse::RecDescentというCPANモジュールを使ってJSONのパーシングをしてみました. Parse::RecDescentはその名のとおり,汎用の再帰下降型パーサです.LL(1)文法にのっとっていれば,パースが可能です.*1 id:tociyukiさんがの記事にあるBNFを流用させてもらい,JSONのパーサを書くと以下のようになりました. このように,BNFっぽいものを記述するだけでパースを行うことができてお手軽です.パターンとして正規表現を書くこともできて,スキャナーに相当することもやってくれてます. 構文規則に合わせてパ
正月番組をみながら[http://perldoc.perl.org/perlxstut.html#EXAMPLE-3:title=perldoc perlxstut]を読んだ.メモをとったのでせっかくだからはっつけておくよ. ちょっとメモがはしょり気味なのと,うちの理解があやしいところがあってこころもとないですが,perlxstut読むときの参考にでもなればばば. Example1 $ h2xs -A -n Mytest で雛形がつくれる.生成されたMytest.xsにXSのコードを書く 値を返さないHello, WorldだとCODE:以下にprintfを書くだけでOK void hello() CODE: printf("Hello, world!\n"); CODE: みたいな部分はXS特有の書き方.あとで展開されてCのコードになる. $ perl Makefile.PL $ mak
naoyaのはてなダイアリー - Web::Scraperを見て。 これはよさそう。ソース読んでみると単純に値を取得する以外にも、どうやら、配列で結果を受け取ったり、サブルーチンを渡して処理を委譲したりできるようなので、ためしにやってみよう。 use strict; use warnings; use Web::Scraper; use URI; use YAML; use Encode; my %result; sub parse_title { my $node = shift; my $text = $node->as_text; my $left = decode_utf8('『'); my $right = decode_utf8('』'); my ($nth, $title, $date) = $text =~ m/^\[(.*?)\]\s+$left(.*?)$right(.
「Googleを支える技術 ?巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)」を読み終えたので,id:naoyaさんの作ったMapReduce::LiteでMapReduceを試してみた.以下は,MapReduce::Liteを使ってみたメモなど.あくまでもメモなので,くわしくMapReduceの勉強をしたいひとは,id:naoyaさんの記事(MapReduce - naoyaのはてなダイアリー)がおすすめです. MapReduceは,MapとReduceの二つを組み合わせて実現できる処理を,分散処理化するGoogleの技術.すばらしい抽象化ですね. id:naoyaさんの作ったMpaReduce::Liteは,MapReduceの仕組みをPerl上で実現したモジュール.ただ,MapReduce::Liteでは,処理をマシンごとに割り当てて分散しているわけではなく,ス
WebService::Hatena::Diary 0.01リリース/わーい,CPAN Authorになったよー - はこべブログ ♨ でCPANパッケージをつくった時のメモをおもむろに公開.なんか変なとこあったらおしえてくださいな みたいな. 書いてから気づいたのですが,Makefile.PLを書こう - soffritto::journalに書かれている,まず,Makefile.PLから書くやりかたの方が,より良さそうすね.Makefile.PLが開発プロセスをコントロールしていて,迷わずに開発がすすめられそうです. ともあれ,以下メモ. 基本的に上から下の順番に実行していく. pmsetup でひな形をつくる パッケージのひな形を作成するためのpmsetupというプログラムを実行する.もともとは,miyagawaさんの作ったスクリプトで,自分用にカスタマイズして使う.(CodeRep
URL補完とqmarkがあるだけでブラウジングがかなり快適になってる.Vimperatorちょう便利!*1 しかし,冷静に考えるとFirefox単体でもほとんど同じようなことができるので,やはり本質的にはvim好きにとって便利なだけな気がしてきた.vim厨乙. でも,なんか勢いでいろいろ書いてしまったのでのっけておきます. URL補完 自分のアクセスしたいURLへの移動が非常にすばやくできて,快適.プロセス的には, ブラウジング中に:e と入力 アクセスしたいURLの一部を入力(例えばはてブの自分のお気に入りに行きたければfavと入力) URLの候補が表示される.良くいくURLが上のほうにくるので Ctrl-N 1,2回おして選択 Enterでアクセス という感じ.URLの一部の文字列の選び方になれると一瞬でどこにでも行ける感じに.だれかのユーザ名で補完してそのひとのサービスを全部だすとか
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Plaggerについてはこちらをご覧いただくとして。 Plaggerの機能を一言でまとめると「情報を収集・加工し任意の形で出力できるプログラム」です。Plaggerは、豊富なプラグインが用意されているのが特徴です。自分がやりたいことに合わせて、それらのプラグインをレゴブロックのように組み合わせ、オリジナル機能を持つPlaggerを作成することが可能です。 一足早く「Plagger」の便利さを実感してみよう 流行に乗り遅れなtoritoriさん。*1 PlaggerのソースはPerlの勉強にもかなり良いとの事で、 機能+ソース読みで勉強中です。 Plaggerお勉強リンク一覧 Plagger Trac http://plagger.org/trac/wiki/WikiStartJa Plaggerグループ http://plagger.g.hatena.ne.jp/ Shibuya.Plag
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く