Affix-Infix2Postfix
view release on metacpan or search on metacpan
Infix2Postfix.pm view on Meta::CPAN
@{$self->{'tokens'}}=(@{$self->{'opr'}},@{$self->{'func'}},@{$self->{'vars'}},@{$self->{'grouping'}});
$self->{'varre'}=join('|',map { quotemeta($_) } @{$self->{'vars'}});
$self->{'funcre'}=join('|',map { quotemeta($_) } @{$self->{'func'}});
$self->{'numre'}='[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?';
$self->{'re'}=join('|',(map { quotemeta($_).'(?!'.quotemeta($_).')' } @{$self->{'tokens'}}),$self->{'numre'});
$self->{'ree'}=$self->{'re'}.'|.+?';
$self->{ERRSTR}='';
bless $self,$class;
return $self;
}
sub tokenize {
my $self=shift;
my $str=shift;
my $ree=$self->{'ree'};
# print "ree: $ree\n";
return ( $str =~ m/($ree)/g ); # tokenize
# return ( $str =~ m/($ree)/xg ); # tokenize
( run in 1.677 second using v1.01-cache-2.11-cpan-de7293f3b23 )