From: <per...@li...> - 2006-04-12 04:28:33
|
Update of /cvsroot/perl-flat/perl-flat/lib/FLAT In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21882/lib/FLAT Modified Files: PFA.pm Regex.pm Log Message: at the point where I need to implement PFA->shuffle; twealed some of blokheads code so it was more obvious to me that op and member are sub routines. Implementation nodes can be seen at http://www.w4r3agle.net/flat/index.php?title=Estrabd%27s_Implementation_Notes Index: PFA.pm =================================================================== RCS file: /cvsroot/perl-flat/perl-flat/lib/FLAT/PFA.pm,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PFA.pm 11 Apr 2006 04:28:51 -0000 1.7 --- PFA.pm 12 Apr 2006 04:28:28 -0000 1.8 *************** *** 12,16 **** my $pkg = shift; my $self = $pkg->SUPER::new(@_); ! $self->{NODE_TRANS_CLASS} = "FLAT::Transition"; $self->{TIED} = []; # tracks tied nodes $self->{ACTIVE_NODES} = []; # tracks active nodes - could be label like start and final --- 12,16 ---- my $pkg = shift; my $self = $pkg->SUPER::new(@_); ! $self->{TRANS_CLASS} = "FLAT::Transition"; $self->{TIED} = []; # tracks tied nodes $self->{ACTIVE_NODES} = []; # tracks active nodes - could be label like start and final *************** *** 21,25 **** my ($class, $char) = @_; my $pfa = $class->new; ! if (not defined $char) { $pfa->add_states(1); --- 21,25 ---- my ($class, $char) = @_; my $pfa = $class->new; ! if (not defined $char) { $pfa->add_states(1); *************** *** 35,40 **** $pfa->set_transition(0, 1, $char); } - # need to handle nodes...???\ - return $pfa; } --- 35,38 ---- *************** *** 44,51 **** sub shuffle { ! my @pfas = map { $_->as_pfa } @_; ! my $result = $pfas[0]->clone; ! # something like FA::_swallow, but for lambda ! $result; } --- 42,46 ---- sub shuffle { ! croak "PFA::shuffle is not yet supported"; } *************** *** 109,125 **** sub reverse { ! my $self = $_[0]->clone; ! $self->_transpose; ! ! my @start = $self->get_starting; ! my @final = $self->get_accepting; ! ! $self->unset_accepting( $self->get_states ); ! $self->unset_starting( $self->get_states ); ! ! $self->set_accepting( @start ); ! $self->set_starting( @final ); ! ! $self; } --- 104,108 ---- sub reverse { ! croak "PFA::reverse is not yet supported"; } Index: Regex.pm =================================================================== RCS file: /cvsroot/perl-flat/perl-flat/lib/FLAT/Regex.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Regex.pm 12 Mar 2006 05:03:50 -0000 1.6 --- Regex.pm 12 Apr 2006 04:28:28 -0000 1.7 *************** *** 33,37 **** use overload '""' => 'as_string'; sub as_string { ! $_[0]->op->as_string(0); } --- 33,37 ---- use overload '""' => 'as_string'; sub as_string { ! $_[0]->op()->as_string(0); } *************** *** 40,44 **** my $fmt = $opts{anchored} ? '(?:\A%s\z)' : '(?:%s)'; ! return sprintf $fmt, $self->op->as_perl_regex(0); } --- 40,44 ---- my $fmt = $opts{anchored} ? '(?:\A%s\z)' : '(?:%s)'; ! return sprintf $fmt, $self->op()->as_perl_regex(0); } *************** *** 49,57 **** sub as_nfa { ! $_[0]->op->as_nfa; } sub as_pfa { ! $_[0]->op->as_pfa; } --- 49,57 ---- sub as_nfa { ! $_[0]->op()->as_nfa(); } sub as_pfa { ! $_[0]->op()->as_pfa(); } *************** *** 94,107 **** sub reverse { my $self = shift; ! my $op = $self->op->reverse; $self->_from_op($op); } sub is_empty { ! $_[0]->op->is_empty; } sub is_finite { ! $_[0]->op->is_finite; } --- 94,107 ---- sub reverse { my $self = shift; ! my $op = $self->op()->reverse; $self->_from_op($op); } sub is_empty { ! $_[0]->op()->is_empty; } sub is_finite { ! $_[0]->op()->is_finite; } |