The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

DynGig::Range::String::Parse - Implements DynGig::Range::Interface::Parse.

GRAMMAR

Tokenizer and parser implement the base class BNF with the following differences.

<expression> ::=

  <multi> ( <operator> <multi> )* | <multi> ( <operator> <regex> )*

<regex> ::= <a subset of perl regex>

e.g.

 /^foobar$/i
 /[1-3]/

Range takes precedence on symbols that are common to both range and regex.

OBJECT

A variable-level HASH with levels alternating between numeric and non-numeric keys, and leaves as { '' => '' }.

e.g. 'abc000~4,123~4xyz,abc123xyz456,abc,xyz' is stored as

 '123':
   xyz:
     '': ''
 '124':
   xyz:
     '': ''
 abc:
   '': ''
   '000':
     '': ''
   '001':
     '': ''
   '002':
     '': ''
   '003':
     '': ''
   '004':
     '': ''
   '123':
     xyz:
       '456':
         '': ''
 xyz:
   '': ''

LITERAL

A rudimentary range form. e.g.

 'abc000~4'
 'xyz'
 '123'

NOTE

See DynGig::Range