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;
}
|