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