package Pegex::Module; use Pegex::Base; has parser_class => 'Pegex::Parser', lazy => 0; has grammar_class => ( default => sub { my $class = ref($_[0]); die "$class needs a 'grammar_class' property"; }, ); has receiver_class => 'Pegex::Tree'; sub parse { my ($self, $input) = @_; $self = $self->new unless ref $self; # use XXX; XXX $self; my $parser = $self->parser_class->new( grammar => $self->grammar_class->new, receiver => $self->receiver_class->new, ); $parser->parse($input); } 1;