Parse-Token-Lite
view release on metacpan or search on metacpan
lib/Parse/Token/Lite/Builder.pm view on Meta::CPAN
*_on = sub{ croak 'on'; };
*_name = sub{ croak 'name'; };
*_with = sub{ croak 'with'; };
*_match = sub{ croak 'match'; };
*_start = sub{ croak 'start'; };
*_end = sub{ croak 'end'; };
sub on($&){ goto &_on };
sub name($){ goto &_name };
sub with(&){ goto &_with };
sub match($&){ goto &_match };
sub start($){ goto &_start };
sub end($){ goto &_end };
sub ruleset(&){
my $rules = {};
my $code = shift;
local *_match = sub($&){
my ($pat, $code) = @_;
my $_rule = {re=>$pat, state=>[] };
local *_name = sub($){ $_rule->{name} = $_[0]; };
local *_with = sub(&){ $_rule->{func} = $_[0]; };
local *_start = sub($){ push(@{$_rule->{state}}, '+'.$_[0]); };
( run in 1.283 second using v1.01-cache-2.11-cpan-49f99fa48dc )