Re: Regexp parser and generator

2008-11-05 Thread George Sakkis
On Nov 4, 3:30 pm, Peter Otten <[EMAIL PROTECTED]> wrote: > George Sakkis wrote: > > Is there any package that parses regular expressions and returns an > > AST ? Something like: > > parse_rx(r'i (love|hate) h(is|er) (cat|dog)s?\s*!+') > > Regex('i ', Or('love', 'hate'), ' h', Or('is', 'er'),

Re: Regexp parser and generator

2008-11-05 Thread George Sakkis
On Nov 4, 9:56 pm, Paul McGuire <[EMAIL PROTECTED]> wrote: > On Nov 4, 1:34 pm, George Sakkis <[EMAIL PROTECTED]> wrote: > > > > > Is there any package that parses regular expressions and returns an > > AST ? Something like: > > > >>> parse_rx(r'i (love|hate) h(is|er) (cat|dog)s?\s*!+') > > > Regex

Re: Regexp parser and generator

2008-11-04 Thread Paul McGuire
On Nov 4, 1:34 pm, George Sakkis <[EMAIL PROTECTED]> wrote: > Is there any package that parses regular expressions and returns an > AST ? Something like: > > >>> parse_rx(r'i (love|hate) h(is|er) (cat|dog)s?\s*!+') > > Regex('i ', Or('love', 'hate'), ' h', Or('is', 'er'), ' ', Or('cat', > 'dog'), O

Re: Regexp parser and generator

2008-11-04 Thread Peter Otten
George Sakkis wrote: > Is there any package that parses regular expressions and returns an > AST ? Something like: > parse_rx(r'i (love|hate) h(is|er) (cat|dog)s?\s*!+') > Regex('i ', Or('love', 'hate'), ' h', Or('is', 'er'), ' ', Or('cat', > 'dog'), Optional('s'), ZeroOrMore(r'\s'), OneOrMo

Re: Regexp parser and generator

2008-11-04 Thread skip
George> Is there any package that parses regular expressions and returns George> an AST ? Maybe not directly, but this might provide a starting point for building such a beast: >>> import re >>> re.compile("[ab]", 128) in literal 97 literal 98 <_sre.SRE_Patter

Regexp parser and generator

2008-11-04 Thread George Sakkis
Is there any package that parses regular expressions and returns an AST ? Something like: >>> parse_rx(r'i (love|hate) h(is|er) (cat|dog)s?\s*!+') Regex('i ', Or('love', 'hate'), ' h', Or('is', 'er'), ' ', Or('cat', 'dog'), Optional('s'), ZeroOrMore(r'\s'), OneOrMore('!')) Given such a structure,