package GenSupportD; use strict; use warnings; use Getopt::Long; use Test::LectroTest::Generator qw(:all); use Parse::Eyapp::TokenGen; sub main { my $package = shift; my $debug = shift || 0; my $result = GetOptions ( "debug!" => \$debug, ); $debug = 0x1F if $debug; my $parser = $package->new(); # set_tokenweightsandgenerators receives the parser object and the pairs # token => [weight, generator] or token => weight # and sets the weight and generator attributes of the tokens. $parser->set_tokenweightsandgenerators( NUM => [ 2, Int(range=>[0, 9], sized=>0)], VARDEF => [ 2, String( length=>[1,2], charset=>"A-NP-Z", size => 100 ) ], '=' => 2, '-' => 1, '+' => 2, '*' => 4, '/' => 2, '^' => 0.5, ';' => 1, '(' => 1, ')' => 2, '' => 2, 'error' => 0, ); my $expg = $parser->YYParse( yylex => \&gen_lexer, yydebug => $debug, # 0x1F ); for (1..1) { my $exp = $expg->generate(); print "$exp\n"; } } 1;