タグ

2009年1月31日のブックマーク (3件)

  • Data-Dumper-Perltidy-0.03

    The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

    Data-Dumper-Perltidy-0.03
  • Parse::RecDescentでJSONをパース - はこべにっき ♨

    JSON::Hatchet の構文解析子 - Tociyuki::DiaryのJSONパーサがすっきりと書けていたのものだから,ちょっとうちもJSONパースしたくなってので書いてみました.といってもLL構文のパーサを1から書くのも芸がない感じだったので.Parse::RecDescentというCPANモジュールを使ってJSONのパーシングをしてみました. Parse::RecDescentはその名のとおり,汎用の再帰下降型パーサです.LL(1)文法にのっとっていれば,パースが可能です.*1 id:tociyukiさんがの記事にあるBNFを流用させてもらい,JSONのパーサを書くと以下のようになりました. このように,BNFっぽいものを記述するだけでパースを行うことができてお手軽です.パターンとして正規表現を書くこともできて,スキャナーに相当することもやってくれてます. 構文規則に合わせてパ

    Parse::RecDescentでJSONをパース - はこべにっき ♨
  • Scope::Upper - Yappo::タワシ

    use strict; use warnings; { package Y; sub foo { warn "foo: start"; bar(); warn "foo: end"; } sub bar { warn "bar: start"; package X; use Scope::Upper qw( reap localize :words); reap sub { my $pkg = caller; warn "REAP: $pkg"; } => HERE; sub { my $pkg = caller; warn "FUNC: $pkg"; }->(); warn "bar: end"; } } warn "START"; Y::foo; warn "END"; を実行すると $ perl ./scopeupper.pl START at ./scopeupper.pl lin

    dann
    dann 2009/01/31