Parse::RandGen - Package for the creation of randomly generated parse data


This package contains modules that can be used to randomly generate parse data (that will either match or not match the grammatical specification). The primary use for randomly generated parse data is to test parsers (or just regular expressions).

The most concise and useful function of this package is to create random data that matches or doesn't match a given regular expression (see Parse::RandGen::Regexp).

For example, 'Parse::RandGen::Regexp->new(qr/foo(bar|baz)*/)->pick()' will return strings such as 'foo', 'foobaz', 'foobazbarbarbaz', etc....

Additionally, the package may be used to build a BNF style Grammar object, composed of Rules, Productions, and various types of Conditions (Literals, Regexps, Subrules) and randomly create data based on the grammatical specification.


Parse::RandGen::Regexp, Parse::RandGen::Grammar, Parse::RandGen::Rule, Parse::RandGen::Production, Parse::RandGen::Condition, Parse::RandGen::Subrule, Parse::RandGen::Literal, and Parse::RandGen::CharClass


Jeff Dutton