All pastes #759067 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-11-02 20:11 UTC
rendered paste body
GPL3 
{ 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);
        }
};