Unnamed
public text v1 · immutableGPL3
{ package XMCluster::SXP::Parser;
sub new {
my $self={};
bless $self;
return $self;
}
sub format {
my $self=shift;
$_=shift;
s/(\(|\))/ \1 /g;
s/(\S+)/'\1',/g;
s/'(\(|\))'/\1/g;
s/\s+/ /g;
s/\(/, \(/g;
s/\(/[/g;
s/\)/]/g;
s/, ]/]/g;
s/\[,/\n[/g;
s/, ,/,/g;
s/,\s+$//;
s/(,|\[|])\s?''/\1 "'/g;
s/''\s?(,|\[|])/'" \1/g;
s/^\s+,//;
return $_;
}
sub parse {
my $self=shift;
return eval $self->format(shift);
}
};