概要: Parse::RecDescent の文法定義の中でモジュールの関数を使う方法。
最近自作記法のモジュールを一から作り直していて、 Parse::RecDescent でパーサを書いてるんだけど、 そのときに文法の中で他のモジュールの関数とかを使う方法。
Parse::RecDescent の文法に書いたコードブロックは、 Parse::RecDescent の名前空間で実行されるので、パーサの中で、
package My::Parser;
use strict;
use warnings;
use Parse::RecDescent;
{
package Parse::RecDescent;
use Some::Module qw( foo bar );
}
見たいにしてやれば、Parse::RecDescent の文法の中で他のモジュールの関数が使えるようになる。
Parse::RecDescent はパーサをプリコンパイルできるらしいんだけど、 そっちの方は試してないのでこの方法で出来るかどうか不明。
最近やってることっていうと自作記法のモジュール作ってるぐらいなので、 本当に Blog に書くことがない。Plagger もいじってないし。
更新するネタがないのはしばらく続きそうだ。
#FIXME