From: <per...@li...> - 2006-02-24 15:41:17
|
Update of /cvsroot/perl-flat/blokhead/lib/FLAT/Regex In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4925/lib/FLAT/Regex Modified Files: WithExtraOps.pm WithNegations.pm Log Message: moving forward in reverse on this PFA.pm thing :) Index: WithExtraOps.pm =================================================================== RCS file: /cvsroot/perl-flat/blokhead/lib/FLAT/Regex/WithExtraOps.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** WithExtraOps.pm 15 Nov 2005 17:09:32 -0000 1.2 --- WithExtraOps.pm 24 Feb 2006 15:41:03 -0000 1.3 *************** *** 69,72 **** --- 69,83 ---- } + sub shuffle { + my $self = shift; + # will handle shuffle operatation + } + + sub as_pfa { + my $self = shift; + # ... will turn shuffle instance into PFA - similar to Op->alt->as_nfa, + # but a tiny different...if I may offer you a riddle :) + } + sub from_parse { my ($pkg, @item) = @_; Index: WithNegations.pm =================================================================== RCS file: /cvsroot/perl-flat/blokhead/lib/FLAT/Regex/WithNegations.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** WithNegations.pm 15 Nov 2005 16:29:12 -0000 1.2 --- WithNegations.pm 24 Feb 2006 15:41:03 -0000 1.3 *************** *** 54,107 **** } ! ############################### ! package FLAT::Regex::Op::shuffle; ! use base 'FLAT::Regex::Op'; ! ! sub parse_spec { "%s(2.. /[&]/)" } ! sub precedence { 12 } ! ! sub as_string { ! my ($self, $prec) = @_; ! my $result = join "&", ! map { $_->as_string($self->precedence) } ! $self->members; ! return $prec > $self->precedence ? "($result)" : $result; ! } ! ! sub from_parse { ! my ($pkg, @item) = @_; ! $pkg->new( @{ $item[1] } ); ! } ! ! sub reverse { ! my $self = shift; ! my @ops = map { $_->reverse } $self->members; ! __PACKAGE__->new(@ops); ! } ! ! sub is_empty { ! my $self = shift; ! my @members = $self->members; ! for (@members) { ! return 0 if not $_->is_empty; ! } ! return 1; ! } ! ! sub has_nonempty_string { ! my $self = shift; ! my @members = $self->members; ! for (@members) { ! return 1 if $_->has_nonempty_string; ! } ! return 0; ! } ! ! sub is_finite { ! my $self = shift; ! my @members = $self->members; ! for (@members) { ! return 0 if not $_->is_finite; ! } ! return 1; ! } --- 54,56 ---- } ! 1; |