The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
JSON::Hatchet の構文解析子 - Tociyuki::DiaryのJSONパーサがすっきりと書けていたのものだから,ちょっとうちもJSONパースしたくなってので書いてみました.といってもLL構文のパーサを1から書くのも芸がない感じだったので.Parse::RecDescentというCPANモジュールを使ってJSONのパーシングをしてみました. Parse::RecDescentはその名のとおり,汎用の再帰下降型パーサです.LL(1)文法にのっとっていれば,パースが可能です.*1 id:tociyukiさんがの記事にあるBNFを流用させてもらい,JSONのパーサを書くと以下のようになりました. このように,BNFっぽいものを記述するだけでパースを行うことができてお手軽です.パターンとして正規表現を書くこともできて,スキャナーに相当することもやってくれてます. 構文規則に合わせてパ
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く