in reply to expanding regexps, question with no answer yet

Mark-Jason Dominus wrote a regex-to-text-stream program in ML, and I wrote one in Perl. The process is not terribly difficult, but it can become difficult if allow things like look-ahead and look-behind and deferred-evaluation assertions.

Basically, you must parse a regex into its parts. Then work along these parts, one by one, building a string.

/^\w+\s+(\d{3}|\w+)/ \w+ => "j30_98a3" \s+ => "\n\n\t \r" \d{3} => "523" (or) \w+ => "j30_98a3" \s+ => "\n\n\t \r" \w+ => "r4_QK4"
You basically produce a string by processing the NODE and its QUANTIFIER. I might produce a module to do this in the upcoming rewrite of my regex parser, to appear in the Regexp::Parser hierarchy. Or perhaps Regex::Parser. I don't know.

_____________________________________________________
Jeff[japhy]Pinyan: Perl, regex, and perl hacker.
s++=END;++y(;-P)}y js++=;shajsj<++y(p-q)}?print:??;

Replies are listed 'Best First'.
Re: Re: expanding regexps, question with no answer yet
by demerphq (Chancellor) on Feb 04, 2002 at 11:06 UTC
    I have an interest in this as well. I also wrote a set of (experimental) modules that do just what you mention here.

    If you're interested I can let you have a copy, and maybe you can replace my rather crude regex parser with something more elegant.

    Yves / DeMerphq
    --
    When to use Prototypes?