in reply to Parsing parenthetical arguments recursively
#! /usr/bin/perl #sample string. $string = "((2 > 1) | ('word' eq 'toy'))"; #next line converts user-specified operators into Perl #logical operators. $string =~ s/([&|]{1})/$1$1/g; print "Initial parsed string = $string\n"; #Look ahead assertion. while ($string =~ /\(((?:[^()])*?)\)/) { my $assert = $1; my $val = (eval $1) ? 1 : 0; print "Case to be evaluated = $1\n"; print "Evaluated value = $val\n"; $assert =~ s/\|\|/\\\|\\\|/g; $string =~ s/\($assert\)/$val/; print "Parsed string = $string\n"; } print "Result: $string\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Parsing parenthetical arguments recursively
by Anonymous Monk on Aug 15, 2003 at 19:38 UTC | |
|
Re: Re: Parsing parenthetical arguments recursively
by waswas-fng (Curate) on Aug 15, 2003 at 22:29 UTC | |
by Moe (Novice) on Aug 16, 2003 at 16:19 UTC |