The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w
# $Revision: #3 $$Date: 2005/08/12 $$Author: jd150722 $
# DESCRIPTION: Perl ExtUtils: Type 'make test' to test this package
#
# Copyright 2003-2005 by Jeff Dutton.  This program is free software;
# you can redistribute it and/or modify it under the terms of either the GNU
# General Public License or the Perl Artistic License.

use strict;
use Data::Dumper;
use Test;
use vars qw(@TestREs $TestsPerRE);

BEGIN {
    plan tests => 1;
}
BEGIN { require "t/test_utils.pl"; }

use Parse::RandGen;


{   # README Example
    my $grammar = Parse::RandGen::Grammar->new("Filename");
    $grammar->defineRule("token")->set( prod=>[ cond=>qr/[a-zA-Z0-9_.]+/, ], );
    $grammar->defineRule("pathUnit")->set( prod=>[ cond=>"token", cond=>"'/'", ], );
    $grammar->defineRule("relativePath")->set( prod=>[ cond=>"pathUnit(*)", cond=>"token", ], );
    $grammar->defineRule("absolutePath")->set( prod=>[ cond=>"'/'", cond=>"pathUnit(*)", cond=>"token(?)", ], );
    $grammar->defineRule("path")->set( prod=>[ cond=>"absolutePath", ],
				       prod=>[ cond=>"relativePath", ],  );
    foreach my $i (0..100) {
	print "Here is a random path: <" . $grammar->rule("path")->pick() . ">\n";
    }
    print "\nPicking partially constrained paths...\n";
    foreach my $i (0..20) {
	print "Here is a random path: <" . $grammar->rule("path")->pick(vals=>{ token=>"foo", }) . ">\n";
    }
    ok(1);
}