Update of /cvsroot/perl-flat/blokhead/lib/FLAT/Regex
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27791/lib/FLAT/Regex
Modified Files:
Op.pm
Log Message:
POD stubs for all public modules, with all method definitions
updated Regex.pm for clearer handling of "[foo]" extended characters..
this really needs to be made uniform across all modules, so we always
handle input strings, alphabets the same way
Index: Op.pm
===================================================================
RCS file: /cvsroot/perl-flat/blokhead/lib/FLAT/Regex/Op.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Op.pm 21 Feb 2006 20:43:09 -0000 1.3
--- Op.pm 24 Feb 2006 06:20:26 -0000 1.4
***************
*** 22,30 ****
use base 'FLAT::Regex::Op';
- my $EPSILON = "[]";
- my $NULL = "#";
-
sub as_string {
! $_[0]->members;
}
--- 22,32 ----
use base 'FLAT::Regex::Op';
sub as_string {
! my $t = $_[0]->members;
!
! return "#" if not defined $t;
! return 1 == length $t
! ? $t
! : "[$t]";
}
***************
*** 32,52 ****
my $r = $_[0]->members;
! return "(?:)" if $r eq $EPSILON;
! return "(?!)" if $r eq $NULL;
! return quotemeta $r;
}
sub as_nfa {
! my $r = $_[0]->members;
!
! FLAT::NFA->singleton(
! $r eq $EPSILON ? "" :
! $r eq $NULL ? undef : $r
! );
}
sub from_parse {
my ($pkg, @item) = @_;
! $pkg->new( $item[1] );
}
--- 34,57 ----
my $r = $_[0]->members;
! return "(?!)" if not defined $r;
!
! $r = quotemeta $r;
! return length $r == 1 ? $r : "(?:$r)";
}
sub as_nfa {
! FLAT::NFA->singleton( $_[0]->members );
}
sub from_parse {
my ($pkg, @item) = @_;
! my $i = $item[1];
!
! return $pkg->new("") if $i eq "[]";
! return $pkg->new(undef) if $i eq "#";
!
! $i =~ s/^\[|\]$//g;
!
! return $pkg->new($i);
}
***************
*** 56,65 ****
sub is_empty {
! $_[0]->members eq $NULL;
}
sub has_nonempty_string {
my $self = shift;
! $self->members ne $EPSILON and $self->members ne $NULL;
}
--- 61,70 ----
sub is_empty {
! not defined $_[0]->members;
}
sub has_nonempty_string {
my $self = shift;
! defined $self->members and length $self->members;
}
|