1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-30 20:23:49 +03:00
Files
samba-mirror/source/build/pidl/idl.pm

12850 lines
553 KiB
Perl

package idl;
use Parse::RecDescent;
{ my $ERRORS;
package Parse::RecDescent::idl;
use strict;
use vars qw($skip $AUTOLOAD );
$skip = '\s*';
use util;
;
{
local $SIG{__WARN__} = sub {0};
# PRETEND TO BE IN Parse::RecDescent NAMESPACE
*Parse::RecDescent::idl::AUTOLOAD = sub
{
no strict 'refs';
$AUTOLOAD =~ s/^Parse::RecDescent::idl/Parse::RecDescent/;
goto &{$AUTOLOAD};
}
}
push @Parse::RecDescent::idl::ISA, 'Parse::RecDescent';
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::function
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"function"};
Parse::RecDescent::_trace(q{Trying rule: [function]},
Parse::RecDescent::_tracefirst($_[1]),
q{function},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [type identifier '(' <commit> element_list2 ');']},
Parse::RecDescent::_tracefirst($_[1]),
q{function},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{function});
%item = (__RULE__ => q{function});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [type]},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$item{q{type}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{identifier})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$item{q{identifier}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying subrule: [element_list2]},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{element_list2})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::element_list2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [element_list2]>>},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [element_list2]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$item{q{element_list2}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [');']},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{');'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)\;//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "FUNCTION",
"NAME" => $item{identifier},
"RETURN_TYPE" => $item{type},
"DATA" => $item{element_list2}
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [type identifier '(' <commit> element_list2 ');']<<},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error?:...> <reject>]},
Parse::RecDescent::_tracefirst($_[1]),
q{function},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{function});
%item = (__RULE__ => q{function});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error?:...>]},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if ($commit) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Rejecting production<< (found <reject>)},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
undef $return;
$_tok = undef;
last unless defined $_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error?:...> <reject>]<<},
Parse::RecDescent::_tracefirst($text),
q{function},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{function},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{function},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{function},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{function},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::base_element
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"base_element"};
Parse::RecDescent::_trace(q{Trying rule: [base_element]},
Parse::RecDescent::_tracefirst($_[1]),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [property_list type pointer identifier array_len]},
Parse::RecDescent::_tracefirst($_[1]),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{base_element});
%item = (__RULE__ => q{base_element});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying repeated subrule: [property_list]},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::property_list, 0, 100000000, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [property_list]>>},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [property_list]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{property_list(s?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying subrule: [type]},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{type})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{type}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying repeated subrule: [pointer]},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{pointer})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::pointer, 0, 100000000, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [pointer]>>},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [pointer]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{pointer(s?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{identifier})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{identifier}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying repeated subrule: [array_len]},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{array_len})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::array_len, 0, 1, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [array_len]>>},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [array_len]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{array_len(?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"NAME" => $item{identifier},
"TYPE" => $item{type},
"PROPERTIES" => util::FlattenArray($item[1]),
"POINTERS" => $#{$item[3]}==-1?undef:$#{$item[3]}+1,
"ARRAY_LEN" => $item[5][0]
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [property_list type pointer identifier array_len]<<},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error...>]},
Parse::RecDescent::_tracefirst($_[1]),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{base_element});
%item = (__RULE__ => q{base_element});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error...>]},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if (1) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error...>]<<},
Parse::RecDescent::_tracefirst($text),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{base_element},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{base_element},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{base_element},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::property_list
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"property_list"};
Parse::RecDescent::_trace(q{Trying rule: [property_list]},
Parse::RecDescent::_tracefirst($_[1]),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' <commit> <leftop: property /,/ property> ']']},
Parse::RecDescent::_tracefirst($_[1]),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{property_list});
%item = (__RULE__ => q{property_list});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying operator: [<leftop: property /,/ property>]},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{<leftop: property /,/ property>})->at($text);
$_tok = undef;
OPLOOP: while (1)
{
$repcount = 0;
my @item;
# MATCH LEFTARG
Parse::RecDescent::_trace(q{Trying subrule: [property]},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{property})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::property($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [property]>>},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [property]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$item{q{property}} = $_tok;
push @item, $_tok;
}
$repcount++;
my $savetext = $text;
my $backtrack;
# MATCH (OP RIGHTARG)(s)
while ($repcount < 100000000)
{
$backtrack = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{/,/})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
pop @item;
if (defined $1) {push @item, $item{'property(s)'}=$1; $backtrack=1;}
Parse::RecDescent::_trace(q{Trying subrule: [property]},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{property})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::property($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [property]>>},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [property]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$item{q{property}} = $_tok;
push @item, $_tok;
}
$savetext = $text;
$repcount++;
}
$text = $savetext;
pop @item if $backtrack;
unless (@item) { undef $_tok; last }
$_tok = [ @item ];
last;
}
unless ($repcount>=1)
{
Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: property /,/ property>]>>},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: property /,/ property>]<< (return value: [}
. qq{@{$_tok||[]}} . q{]},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
push @item, $item{'property(s)'}=$_tok||[];
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[3] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' <commit> <leftop: property /,/ property> ']']<<},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error?:...> <reject>]},
Parse::RecDescent::_tracefirst($_[1]),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{property_list});
%item = (__RULE__ => q{property_list});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error?:...>]},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if ($commit) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Rejecting production<< (found <reject>)},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
undef $return;
$_tok = undef;
last unless defined $_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error?:...> <reject>]<<},
Parse::RecDescent::_tracefirst($text),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{property_list},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{property_list},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{property_list},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::definition
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"definition"};
Parse::RecDescent::_trace(q{Trying rule: [definition]},
Parse::RecDescent::_tracefirst($_[1]),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [cpp_prefix]},
Parse::RecDescent::_tracefirst($_[1]),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{definition});
%item = (__RULE__ => q{definition});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [cpp_prefix]},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::cpp_prefix($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [cpp_prefix]>>},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [cpp_prefix]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$item{q{cpp_prefix}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{>>Matched production: [cpp_prefix]<<},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [typedef]},
Parse::RecDescent::_tracefirst($_[1]),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
$text = $_[1];
my $_savetext;
@item = (q{definition});
%item = (__RULE__ => q{definition});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [typedef]},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::typedef($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [typedef]>>},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [typedef]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$item{q{typedef}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [typedef]<<},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [function]},
Parse::RecDescent::_tracefirst($_[1]),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[2];
$text = $_[1];
my $_savetext;
@item = (q{definition});
%item = (__RULE__ => q{definition});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [function]},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [function]>>},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$item{q{function}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
Parse::RecDescent::_tracefirst($text),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{definition},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{definition},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{definition},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{definition},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::module_header
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"module_header"};
Parse::RecDescent::_trace(q{Trying rule: [module_header]},
Parse::RecDescent::_tracefirst($_[1]),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' <commit> <leftop: module_param /,/ module_param> ']']},
Parse::RecDescent::_tracefirst($_[1]),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{module_header});
%item = (__RULE__ => q{module_header});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying operator: [<leftop: module_param /,/ module_param>]},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{<leftop: module_param /,/ module_param>})->at($text);
$_tok = undef;
OPLOOP: while (1)
{
$repcount = 0;
my @item;
# MATCH LEFTARG
Parse::RecDescent::_trace(q{Trying subrule: [module_param]},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{module_param})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::module_param($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [module_param]>>},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [module_param]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$item{q{module_param}} = $_tok;
push @item, $_tok;
}
$repcount++;
my $savetext = $text;
my $backtrack;
# MATCH (OP RIGHTARG)(s)
while ($repcount < 100000000)
{
$backtrack = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{/,/})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
pop @item;
if (defined $1) {push @item, $item{'module_param(s?)'}=$1; $backtrack=1;}
Parse::RecDescent::_trace(q{Trying subrule: [module_param]},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{module_param})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::module_param($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [module_param]>>},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [module_param]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$item{q{module_param}} = $_tok;
push @item, $_tok;
}
$savetext = $text;
$repcount++;
}
$text = $savetext;
pop @item if $backtrack;
$_tok = [ @item ];
last;
}
unless ($repcount>=0)
{
Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: module_param /,/ module_param>]>>},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: module_param /,/ module_param>]<< (return value: [}
. qq{@{$_tok||[]}} . q{]},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
push @item, $item{'module_param(s?)'}=$_tok||[];
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "MODULEHEADER",
"PROPERTIES" => util::FlattenHash($item[3])
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' <commit> <leftop: module_param /,/ module_param> ']']<<},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error?:...> <reject>]},
Parse::RecDescent::_tracefirst($_[1]),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{module_header});
%item = (__RULE__ => q{module_header});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error?:...>]},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if ($commit) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Rejecting production<< (found <reject>)},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
undef $return;
$_tok = undef;
last unless defined $_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error?:...> <reject>]<<},
Parse::RecDescent::_tracefirst($text),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{module_header},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{module_header},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{module_header},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::identifier
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"identifier"};
Parse::RecDescent::_trace(q{Trying rule: [identifier]},
Parse::RecDescent::_tracefirst($_[1]),
q{identifier},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [/[\\w?]+/]},
Parse::RecDescent::_tracefirst($_[1]),
q{identifier},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{identifier});
%item = (__RULE__ => q{identifier});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/[\\w?]+/]}, Parse::RecDescent::_tracefirst($text),
q{identifier},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[\w?]+)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: [/[\\w?]+/]<<},
Parse::RecDescent::_tracefirst($text),
q{identifier},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{identifier},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{identifier},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{identifier},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{identifier},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::struct
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"struct"};
Parse::RecDescent::_trace(q{Trying rule: [struct]},
Parse::RecDescent::_tracefirst($_[1]),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [property_list 'struct' <commit> '\{' element_list1 '\}']},
Parse::RecDescent::_tracefirst($_[1]),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{struct});
%item = (__RULE__ => q{struct});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying repeated subrule: [property_list]},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::property_list, 0, 100000000, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [property_list]>>},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [property_list]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$item{q{property_list(s?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying terminal: ['struct']},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'struct'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Astruct//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'\{'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying repeated subrule: [element_list1]},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{element_list1})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::element_list1, 0, 1, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [element_list1]>>},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [element_list1]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$item{q{element_list1(?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'\}'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "STRUCT",
"PROPERTIES" => util::FlattenArray($item[1]),
"ELEMENTS" => util::FlattenArray2($item[5])
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [property_list 'struct' <commit> '\{' element_list1 '\}']<<},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error?:...> <reject>]},
Parse::RecDescent::_tracefirst($_[1]),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{struct});
%item = (__RULE__ => q{struct});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error?:...>]},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if ($commit) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Rejecting production<< (found <reject>)},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
undef $return;
$_tok = undef;
last unless defined $_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error?:...> <reject>]<<},
Parse::RecDescent::_tracefirst($text),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{struct},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{struct},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{struct},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{struct},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::text
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"text"};
Parse::RecDescent::_trace(q{Trying rule: [text]},
Parse::RecDescent::_tracefirst($_[1]),
q{text},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [/[\\w\\s\\..?-]*/]},
Parse::RecDescent::_tracefirst($_[1]),
q{text},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{text});
%item = (__RULE__ => q{text});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/[\\w\\s\\..?-]*/]}, Parse::RecDescent::_tracefirst($text),
q{text},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[\w\s\..?-]*)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: [/[\\w\\s\\..?-]*/]<<},
Parse::RecDescent::_tracefirst($text),
q{text},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{text},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{text},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{text},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{text},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::expression
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"expression"};
Parse::RecDescent::_trace(q{Trying rule: [expression]},
Parse::RecDescent::_tracefirst($_[1]),
q{expression},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [/[\\w.?\\/+*-_]+/]},
Parse::RecDescent::_tracefirst($_[1]),
q{expression},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{expression});
%item = (__RULE__ => q{expression});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/[\\w.?\\/+*-_]+/]}, Parse::RecDescent::_tracefirst($text),
q{expression},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[\w.?\/+*-_]+)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: [/[\\w.?\\/+*-_]+/]<<},
Parse::RecDescent::_tracefirst($text),
q{expression},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{expression},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{expression},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{expression},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{expression},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::union_element
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"union_element"};
Parse::RecDescent::_trace(q{Trying rule: [union_element]},
Parse::RecDescent::_tracefirst($_[1]),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' 'case' '(' constant ')' ']' base_element ';']},
Parse::RecDescent::_tracefirst($_[1]),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{union_element});
%item = (__RULE__ => q{union_element});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['case']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'case'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acase//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [constant]},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{constant})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [constant]>>},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{constant}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING4__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING5__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [base_element]},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{base_element})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::base_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [base_element]>>},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [base_element]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{base_element}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [';']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{';'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\;//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING6__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "UNION_ELEMENT",
"CASE" => $item{constant},
"DATA" => $item{base_element}
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' 'case' '(' constant ')' ']' base_element ';']<<},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' 'case' '(' constant ')' ']' ';']},
Parse::RecDescent::_tracefirst($_[1]),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
$text = $_[1];
my $_savetext;
@item = (q{union_element});
%item = (__RULE__ => q{union_element});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['case']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'case'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acase//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [constant]},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{constant})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [constant]>>},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{constant}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING4__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING5__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [';']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{';'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\;//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING6__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "EMPTY",
"CASE" => $item{constant},
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' 'case' '(' constant ')' ']' ';']<<},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' 'default' ']' base_element ';']},
Parse::RecDescent::_tracefirst($_[1]),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[2];
$text = $_[1];
my $_savetext;
@item = (q{union_element});
%item = (__RULE__ => q{union_element});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['default']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'default'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Adefault//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [base_element]},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{base_element})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::base_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [base_element]>>},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [base_element]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$item{q{base_element}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [';']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{';'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\;//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING4__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "UNION_ELEMENT",
"CASE" => "default",
"DATA" => $item{base_element}
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' 'default' ']' base_element ';']<<},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' 'default' ']' ';']},
Parse::RecDescent::_tracefirst($_[1]),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[3];
$text = $_[1];
my $_savetext;
@item = (q{union_element});
%item = (__RULE__ => q{union_element});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['default']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'default'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Adefault//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [';']},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{';'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\;//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING4__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "EMPTY",
"CASE" => "default",
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' 'default' ']' ';']<<},
Parse::RecDescent::_tracefirst($text),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{union_element},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{union_element},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{union_element},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::interface
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"interface"};
Parse::RecDescent::_trace(q{Trying rule: [interface]},
Parse::RecDescent::_tracefirst($_[1]),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['interface' <commit> identifier '\{' definition '\}']},
Parse::RecDescent::_tracefirst($_[1]),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{interface});
%item = (__RULE__ => q{interface});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['interface']},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ainterface//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{identifier})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$item{q{identifier}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'\{'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying repeated subrule: [definition]},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{definition})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::definition, 0, 100000000, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [definition]>>},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [definition]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$item{q{definition(s?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'\}'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "INTERFACE",
"NAME" => $item{identifier},
"DATA" => $item[5]
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['interface' <commit> identifier '\{' definition '\}']<<},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error?:...> <reject>]},
Parse::RecDescent::_tracefirst($_[1]),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{interface});
%item = (__RULE__ => q{interface});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error?:...>]},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if ($commit) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Rejecting production<< (found <reject>)},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
undef $return;
$_tok = undef;
last unless defined $_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error?:...> <reject>]<<},
Parse::RecDescent::_tracefirst($text),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{interface},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{interface},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{interface},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{interface},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::typedef
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"typedef"};
Parse::RecDescent::_trace(q{Trying rule: [typedef]},
Parse::RecDescent::_tracefirst($_[1]),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['typedef' <commit> type identifier array_len ';']},
Parse::RecDescent::_tracefirst($_[1]),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{typedef});
%item = (__RULE__ => q{typedef});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['typedef']},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Atypedef//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying subrule: [type]},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{type})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$item{q{type}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{identifier})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$item{q{identifier}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying repeated subrule: [array_len]},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{array_len})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::array_len, 0, 1, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [array_len]>>},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [array_len]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$item{q{array_len(?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying terminal: [';']},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{';'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\;//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "TYPEDEF",
"NAME" => $item{identifier},
"DATA" => $item{type},
"ARRAY_LEN" => $item[5][0]
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['typedef' <commit> type identifier array_len ';']<<},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error?:...> <reject>]},
Parse::RecDescent::_tracefirst($_[1]),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{typedef});
%item = (__RULE__ => q{typedef});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error?:...>]},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if ($commit) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Rejecting production<< (found <reject>)},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
undef $return;
$_tok = undef;
last unless defined $_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error?:...> <reject>]<<},
Parse::RecDescent::_tracefirst($text),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{typedef},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{typedef},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{typedef},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::call
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"call"};
Parse::RecDescent::_trace(q{Trying rule: [call]},
Parse::RecDescent::_tracefirst($_[1]),
q{call},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [expression '(' <commit> expression ')']},
Parse::RecDescent::_tracefirst($_[1]),
q{call},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{call});
%item = (__RULE__ => q{call});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [expression]},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$item{q{expression}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying subrule: [expression]},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{expression})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$item{q{expression}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]($item[4])" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [expression '(' <commit> expression ')']<<},
Parse::RecDescent::_tracefirst($text),
q{call},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{call},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{call},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{call},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{call},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::idl
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"idl"};
Parse::RecDescent::_trace(q{Trying rule: [idl]},
Parse::RecDescent::_tracefirst($_[1]),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [cpp_prefix module_header interface]},
Parse::RecDescent::_tracefirst($_[1]),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{idl});
%item = (__RULE__ => q{idl});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying repeated subrule: [cpp_prefix]},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::cpp_prefix, 0, 100000000, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [cpp_prefix]>>},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [cpp_prefix]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$item{q{cpp_prefix(s?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying subrule: [module_header]},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{module_header})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::module_header($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [module_header]>>},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [module_header]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$item{q{module_header}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying subrule: [interface]},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{interface})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::interface($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [interface]>>},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [interface]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$item{q{interface}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { [$item{module_header}, $item{interface}] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [cpp_prefix module_header interface]<<},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error...>]},
Parse::RecDescent::_tracefirst($_[1]),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{idl});
%item = (__RULE__ => q{idl});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error...>]},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if (1) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error...>]<<},
Parse::RecDescent::_tracefirst($text),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{idl},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{idl},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{idl},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{idl},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::cpp_prefix
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"cpp_prefix"};
Parse::RecDescent::_trace(q{Trying rule: [cpp_prefix]},
Parse::RecDescent::_tracefirst($_[1]),
q{cpp_prefix},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['#' /.*/]},
Parse::RecDescent::_tracefirst($_[1]),
q{cpp_prefix},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{cpp_prefix});
%item = (__RULE__ => q{cpp_prefix});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['#']},
Parse::RecDescent::_tracefirst($text),
q{cpp_prefix},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\#//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [/.*/]}, Parse::RecDescent::_tracefirst($text),
q{cpp_prefix},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{/.*/})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:.*)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['#' /.*/]<<},
Parse::RecDescent::_tracefirst($text),
q{cpp_prefix},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{cpp_prefix},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{cpp_prefix},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{cpp_prefix},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{cpp_prefix},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::property
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"property"};
Parse::RecDescent::_trace(q{Trying rule: [property]},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['unique']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['unique']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aunique//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['unique']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['in']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['in']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ain//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['in']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['out']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[2];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['out']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aout//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['out']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['ref']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[3];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['ref']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aref//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['ref']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['context_handle']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[4];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['context_handle']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acontext_handle//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['context_handle']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['string']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[5];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['string']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Astring//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['string']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['public']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[6];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['public']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Apublic//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['public']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['noprint']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[7];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['noprint']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anoprint//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['noprint']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['relative']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[8];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['relative']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Arelative//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['relative']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['nodiscriminant']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[9];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['nodiscriminant']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anodiscriminant//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['nodiscriminant']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['subcontext']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[10];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['subcontext']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Asubcontext//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['subcontext']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['byte_count_pointer' '(' expression ')']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[11];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['byte_count_pointer']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Abyte_count_pointer//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [expression]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{expression})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$item{q{expression}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]" => "$item{expression}" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['byte_count_pointer' '(' expression ')']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['size_is' '(' expression ')']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[12];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['size_is']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Asize_is//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [expression]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{expression})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$item{q{expression}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]" => "$item{expression}" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['size_is' '(' expression ')']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['length_is' '(' expression ')']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[13];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['length_is']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Alength_is//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [expression]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{expression})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$item{q{expression}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]" => "$item{expression}" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['length_is' '(' expression ')']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['switch_is' '(' expression ')']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[14];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['switch_is']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aswitch_is//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [expression]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{expression})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$item{q{expression}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]" => "$item{expression}" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['switch_is' '(' expression ')']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['value' '(' anytext ')']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[15];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['value']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Avalue//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [anytext]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{anytext})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::anytext($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [anytext]>>},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [anytext]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$item{q{anytext}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]" => "$item{anytext}" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['value' '(' anytext ')']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['switch_type' '(' type ')']},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[16];
$text = $_[1];
my $_savetext;
@item = (q{property});
%item = (__RULE__ => q{property});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['switch_type']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aswitch_type//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [type]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{type})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$item{q{type}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]" => $item{type} }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['switch_type' '(' type ')']<<},
Parse::RecDescent::_tracefirst($text),
q{property},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{property},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{property},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{property},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{property},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::element_list2
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"element_list2"};
Parse::RecDescent::_trace(q{Trying rule: [element_list2]},
Parse::RecDescent::_tracefirst($_[1]),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['void']},
Parse::RecDescent::_tracefirst($_[1]),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{element_list2});
%item = (__RULE__ => q{element_list2});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['void']},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Avoid//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['void']<<},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [<leftop: base_element /,/ base_element>]},
Parse::RecDescent::_tracefirst($_[1]),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
$text = $_[1];
my $_savetext;
@item = (q{element_list2});
%item = (__RULE__ => q{element_list2});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying operator: [<leftop: base_element /,/ base_element>]},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{})->at($text);
$_tok = undef;
OPLOOP: while (1)
{
$repcount = 0;
my @item;
# MATCH LEFTARG
Parse::RecDescent::_trace(q{Trying subrule: [base_element]},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{base_element})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::base_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [base_element]>>},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [base_element]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$item{q{base_element}} = $_tok;
push @item, $_tok;
}
$repcount++;
my $savetext = $text;
my $backtrack;
# MATCH (OP RIGHTARG)(s)
while ($repcount < 100000000)
{
$backtrack = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{/,/})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
pop @item;
if (defined $1) {push @item, $item{'base_element(s?)'}=$1; $backtrack=1;}
Parse::RecDescent::_trace(q{Trying subrule: [base_element]},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{base_element})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::base_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [base_element]>>},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [base_element]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$item{q{base_element}} = $_tok;
push @item, $_tok;
}
$savetext = $text;
$repcount++;
}
$text = $savetext;
pop @item if $backtrack;
$_tok = [ @item ];
last;
}
unless ($repcount>=0)
{
Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: base_element /,/ base_element>]>>},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: base_element /,/ base_element>]<< (return value: [}
. qq{@{$_tok||[]}} . q{]},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
push @item, $item{'base_element(s?)'}=$_tok||[];
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<leftop: base_element /,/ base_element>]<<},
Parse::RecDescent::_tracefirst($text),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{element_list2},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{element_list2},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{element_list2},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::anytext
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"anytext"};
Parse::RecDescent::_trace(q{Trying rule: [anytext]},
Parse::RecDescent::_tracefirst($_[1]),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [text2 '(' <commit> anytext ')' anytext]},
Parse::RecDescent::_tracefirst($_[1]),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{anytext});
%item = (__RULE__ => q{anytext});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [text2]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::text2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [text2]>>},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [text2]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$item{q{text2}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying subrule: [anytext]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{anytext})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::anytext($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [anytext]>>},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [anytext]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$item{q{anytext}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [anytext]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{anytext})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::anytext($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [anytext]>>},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [anytext]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$item{q{anytext}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]($item[4])$item[6]" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [text2 '(' <commit> anytext ')' anytext]<<},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [text2 '+' anytext]},
Parse::RecDescent::_tracefirst($_[1]),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
$text = $_[1];
my $_savetext;
@item = (q{anytext});
%item = (__RULE__ => q{anytext});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [text2]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::text2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [text2]>>},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [text2]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$item{q{text2}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: ['+']},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'+'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\+//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [anytext]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{anytext})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::anytext($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [anytext]>>},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [anytext]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$item{q{anytext}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item[1]+$item[3]" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [text2 '+' anytext]<<},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [text2]},
Parse::RecDescent::_tracefirst($_[1]),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[2];
$text = $_[1];
my $_savetext;
@item = (q{anytext});
%item = (__RULE__ => q{anytext});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [text2]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::text2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [text2]>>},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [text2]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$item{q{text2}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{>>Matched production: [text2]<<},
Parse::RecDescent::_tracefirst($text),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{anytext},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{anytext},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{anytext},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::element_list1
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"element_list1"};
Parse::RecDescent::_trace(q{Trying rule: [element_list1]},
Parse::RecDescent::_tracefirst($_[1]),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [<leftop: base_element /;/ base_element> ';']},
Parse::RecDescent::_tracefirst($_[1]),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{element_list1});
%item = (__RULE__ => q{element_list1});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying operator: [<leftop: base_element /;/ base_element>]},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{})->at($text);
$_tok = undef;
OPLOOP: while (1)
{
$repcount = 0;
my @item;
# MATCH LEFTARG
Parse::RecDescent::_trace(q{Trying subrule: [base_element]},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{base_element})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::base_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [base_element]>>},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [base_element]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$item{q{base_element}} = $_tok;
push @item, $_tok;
}
$repcount++;
my $savetext = $text;
my $backtrack;
# MATCH (OP RIGHTARG)(s)
while ($repcount < 100000000)
{
$backtrack = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/;/]}, Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{/;/})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:;)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
pop @item;
if (defined $1) {push @item, $item{'base_element(s?)'}=$1; $backtrack=1;}
Parse::RecDescent::_trace(q{Trying subrule: [base_element]},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{base_element})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::base_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [base_element]>>},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [base_element]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$item{q{base_element}} = $_tok;
push @item, $_tok;
}
$savetext = $text;
$repcount++;
}
$text = $savetext;
pop @item if $backtrack;
$_tok = [ @item ];
last;
}
unless ($repcount>=0)
{
Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: base_element /;/ base_element>]>>},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: base_element /;/ base_element>]<< (return value: [}
. qq{@{$_tok||[]}} . q{]},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
push @item, $item{'base_element(s?)'}=$_tok||[];
Parse::RecDescent::_trace(q{Trying terminal: [';']},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{';'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\;//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<leftop: base_element /;/ base_element> ';']<<},
Parse::RecDescent::_tracefirst($text),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{element_list1},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{element_list1},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{element_list1},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::constant
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"constant"};
Parse::RecDescent::_trace(q{Trying rule: [constant]},
Parse::RecDescent::_tracefirst($_[1]),
q{constant},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [/-?\\d+/]},
Parse::RecDescent::_tracefirst($_[1]),
q{constant},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{constant});
%item = (__RULE__ => q{constant});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/-?\\d+/]}, Parse::RecDescent::_tracefirst($text),
q{constant},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:-?\d+)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: [/-?\\d+/]<<},
Parse::RecDescent::_tracefirst($text),
q{constant},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['*']},
Parse::RecDescent::_tracefirst($_[1]),
q{constant},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
$text = $_[1];
my $_savetext;
@item = (q{constant});
%item = (__RULE__ => q{constant});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['*']},
Parse::RecDescent::_tracefirst($text),
q{constant},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\*//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['*']<<},
Parse::RecDescent::_tracefirst($text),
q{constant},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{constant},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{constant},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{constant},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{constant},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::array_len
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"array_len"};
Parse::RecDescent::_trace(q{Trying rule: [array_len]},
Parse::RecDescent::_tracefirst($_[1]),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' ']']},
Parse::RecDescent::_tracefirst($_[1]),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{array_len});
%item = (__RULE__ => q{array_len});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { "*" };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' ']']<<},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' '*' ']']},
Parse::RecDescent::_tracefirst($_[1]),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
$text = $_[1];
my $_savetext;
@item = (q{array_len});
%item = (__RULE__ => q{array_len});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: ['*']},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'*'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\*//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { "*" };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' '*' ']']<<},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['[' <commit> anytext ']']},
Parse::RecDescent::_tracefirst($_[1]),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[2];
$text = $_[1];
my $_savetext;
@item = (q{array_len});
%item = (__RULE__ => q{array_len});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['[']},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying subrule: [anytext]},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{anytext})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::anytext($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [anytext]>>},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [anytext]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$item{q{anytext}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [']']},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{']'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { "$item{anytext}" };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['[' <commit> anytext ']']<<},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error?:...> <reject>]},
Parse::RecDescent::_tracefirst($_[1]),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[3];
my $_savetext;
@item = (q{array_len});
%item = (__RULE__ => q{array_len});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error?:...>]},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if ($commit) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Rejecting production<< (found <reject>)},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
undef $return;
$_tok = undef;
last unless defined $_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error?:...> <reject>]<<},
Parse::RecDescent::_tracefirst($text),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{array_len},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{array_len},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{array_len},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::text2
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"text2"};
Parse::RecDescent::_trace(q{Trying rule: [text2]},
Parse::RecDescent::_tracefirst($_[1]),
q{text2},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [/[\\w\\s\\*\\>\\/\\..?-]*/]},
Parse::RecDescent::_tracefirst($_[1]),
q{text2},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{text2});
%item = (__RULE__ => q{text2});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: [/[\\w\\s\\*\\>\\/\\..?-]*/]}, Parse::RecDescent::_tracefirst($text),
q{text2},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[\w\s\*\>\/\..?-]*)//)
{
$expectation->failed();
Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__PATTERN1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: [/[\\w\\s\\*\\>\\/\\..?-]*/]<<},
Parse::RecDescent::_tracefirst($text),
q{text2},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{text2},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{text2},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{text2},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{text2},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::pointer
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"pointer"};
Parse::RecDescent::_trace(q{Trying rule: [pointer]},
Parse::RecDescent::_tracefirst($_[1]),
q{pointer},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['*']},
Parse::RecDescent::_tracefirst($_[1]),
q{pointer},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{pointer});
%item = (__RULE__ => q{pointer});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['*']},
Parse::RecDescent::_tracefirst($text),
q{pointer},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\*//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{>>Matched production: ['*']<<},
Parse::RecDescent::_tracefirst($text),
q{pointer},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{pointer},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{pointer},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{pointer},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{pointer},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::type
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"type"};
Parse::RecDescent::_trace(q{Trying rule: [type]},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['unsigned' type]},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{type});
%item = (__RULE__ => q{type});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['unsigned']},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aunsigned//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [type]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{type})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$item{q{type}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { "$item[1] $item[2]" };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['unsigned' type]<<},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['long']},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
$text = $_[1];
my $_savetext;
@item = (q{type});
%item = (__RULE__ => q{type});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['long']},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Along//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['long']<<},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['string']},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[2];
$text = $_[1];
my $_savetext;
@item = (q{type});
%item = (__RULE__ => q{type});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['string']},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Astring//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['string']<<},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: ['wchar_t']},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[3];
$text = $_[1];
my $_savetext;
@item = (q{type});
%item = (__RULE__ => q{type});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying terminal: ['wchar_t']},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Awchar_t//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: ['wchar_t']<<},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [struct]},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[4];
$text = $_[1];
my $_savetext;
@item = (q{type});
%item = (__RULE__ => q{type});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [struct]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::struct($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [struct]>>},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [struct]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$item{q{struct}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [struct]<<},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [union]},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[5];
$text = $_[1];
my $_savetext;
@item = (q{type});
%item = (__RULE__ => q{type});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [union]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::union($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [union]>>},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [union]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$item{q{union}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [union]<<},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [identifier]},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[6];
$text = $_[1];
my $_savetext;
@item = (q{type});
%item = (__RULE__ => q{type});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$item{q{identifier}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do { $item[1] };
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [identifier]<<},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error...>]},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[7];
my $_savetext;
@item = (q{type});
%item = (__RULE__ => q{type});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error...>]},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if (1) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error...>]<<},
Parse::RecDescent::_tracefirst($text),
q{type},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{type},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{type},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{type},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{type},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::module_param
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"module_param"};
Parse::RecDescent::_trace(q{Trying rule: [module_param]},
Parse::RecDescent::_tracefirst($_[1]),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [identifier '(' text ')']},
Parse::RecDescent::_tracefirst($_[1]),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{module_param});
%item = (__RULE__ => q{module_param});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$item{q{identifier}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: ['(']},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'('})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying subrule: [text]},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
if (1) { no strict qw{refs};
$expectation->is(q{text})->at($text);
unless (defined ($_tok = Parse::RecDescent::idl::text($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
{
Parse::RecDescent::_trace(q{<<Didn't match subrule: [text]>>},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$expectation->failed();
last;
}
Parse::RecDescent::_trace(q{>>Matched subrule: [text]<< (return value: [}
. $_tok . q{]},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$item{q{text}} = $_tok;
push @item, $_tok;
}
Parse::RecDescent::_trace(q{Trying terminal: [')']},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{')'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{ "$item{identifier}" => "$item{text}" }};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [identifier '(' text ')']<<},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error...>]},
Parse::RecDescent::_tracefirst($_[1]),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{module_param});
%item = (__RULE__ => q{module_param});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error...>]},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if (1) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error...>]<<},
Parse::RecDescent::_tracefirst($text),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{module_param},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{module_param},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{module_param},
$tracelevel)
}
$_[1] = $text;
return $return;
}
# ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
sub Parse::RecDescent::idl::union
{
my $thisparser = $_[0];
use vars q{$tracelevel};
local $tracelevel = ($tracelevel||0)+1;
$ERRORS = 0;
my $thisrule = $thisparser->{"rules"}{"union"};
Parse::RecDescent::_trace(q{Trying rule: [union]},
Parse::RecDescent::_tracefirst($_[1]),
q{union},
$tracelevel)
if defined $::RD_TRACE;
my $err_at = @{$thisparser->{errors}};
my $score;
my $score_return;
my $_tok;
my $return = undef;
my $_matched=0;
my $commit=0;
my @item = ();
my %item = ();
my $repeating = defined($_[2]) && $_[2];
my $_noactions = defined($_[3]) && $_[3];
my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
my %arg = ($#arg & 01) ? @arg : (@arg, undef);
my $text;
my $lastsep="";
my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
$expectation->at($_[1]);
my $thisline;
tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
while (!$_matched && !$commit)
{
Parse::RecDescent::_trace(q{Trying production: [property_list 'union' <commit> '\{' union_element '\}']},
Parse::RecDescent::_tracefirst($_[1]),
q{union},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[0];
$text = $_[1];
my $_savetext;
@item = (q{union});
%item = (__RULE__ => q{union});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying repeated subrule: [property_list]},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::property_list, 0, 100000000, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [property_list]>>},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [property_list]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$item{q{property_list(s?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying terminal: ['union']},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'union'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aunion//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING1__}=$&;
Parse::RecDescent::_trace(q{Trying directive: [<commit>]},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { $commit = 1 };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'\{'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING2__}=$&;
Parse::RecDescent::_trace(q{Trying repeated subrule: [union_element]},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$expectation->is(q{union_element})->at($text);
unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::idl::union_element, 0, 100000000, $_noactions,$expectation,undef)))
{
Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [union_element]>>},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched repeated subrule: [union_element]<< (}
. @$_tok . q{ times)},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$item{q{union_element(s?)}} = $_tok;
push @item, $_tok;
Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$lastsep = "";
$expectation->is(q{'\}'})->at($text);
unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
{
$expectation->failed();
Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
. $& . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $item{__STRING3__}=$&;
Parse::RecDescent::_trace(q{Trying action},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$_tok = ($_noactions) ? 0 : do {{
"TYPE" => "UNION",
"PROPERTIES" => util::FlattenArray($item[1]),
"DATA" => $item[5]
}};
unless (defined $_tok)
{
Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
if defined $::RD_TRACE;
last;
}
Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
push @item, $_tok;
$item{__ACTION1__}=$_tok;
Parse::RecDescent::_trace(q{>>Matched production: [property_list 'union' <commit> '\{' union_element '\}']<<},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
while (!$_matched)
{
Parse::RecDescent::_trace(q{Trying production: [<error?:...> <reject>]},
Parse::RecDescent::_tracefirst($_[1]),
q{union},
$tracelevel)
if defined $::RD_TRACE;
my $thisprod = $thisrule->{"prods"}[1];
my $_savetext;
@item = (q{union});
%item = (__RULE__ => q{union});
my $repcount = 0;
Parse::RecDescent::_trace(q{Trying directive: [<error?:...>]},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$_tok = do { if ($commit) { do {
my $rule = $item[0];
$rule =~ s/_/ /g;
#WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
} unless $_noactions; undef } else {0} };
if (defined($_tok))
{
Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
. $_tok . q{])},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
else
{
Parse::RecDescent::_trace(q{<<Didn't match directive>>},
Parse::RecDescent::_tracefirst($text))
if defined $::RD_TRACE;
}
last unless defined $_tok;
push @item, $item{__DIRECTIVE1__}=$_tok;
Parse::RecDescent::_trace(q{>>Rejecting production<< (found <reject>)},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
undef $return;
$_tok = undef;
last unless defined $_tok;
Parse::RecDescent::_trace(q{>>Matched production: [<error?:...> <reject>]<<},
Parse::RecDescent::_tracefirst($text),
q{union},
$tracelevel)
if defined $::RD_TRACE;
$_matched = 1;
last;
}
unless ( $_matched || defined($return) || defined($score) )
{
$_[1] = $text; # NOT SURE THIS IS NEEDED
Parse::RecDescent::_trace(q{<<Didn't match rule>>},
Parse::RecDescent::_tracefirst($_[1]),
q{union},
$tracelevel)
if defined $::RD_TRACE;
return undef;
}
if (!defined($return) && defined($score))
{
Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
q{union},
$tracelevel)
if defined $::RD_TRACE;
$return = $score_return;
}
splice @{$thisparser->{errors}}, $err_at;
$return = $item[$#item] unless defined $return;
if (defined $::RD_TRACE)
{
Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
$return . q{])}, "",
q{union},
$tracelevel);
Parse::RecDescent::_trace(q{(consumed: [} .
Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
Parse::RecDescent::_tracefirst($text),
, q{union},
$tracelevel)
}
$_[1] = $text;
return $return;
}
}
package idl; sub new { my $self = bless( {
'_AUTOTREE' => undef,
'localvars' => '',
'startcode' => '',
'_check' => {
'thisoffset' => '',
'itempos' => '',
'prevoffset' => '',
'prevline' => '',
'prevcolumn' => '',
'thiscolumn' => ''
},
'namespace' => 'Parse::RecDescent::idl',
'_AUTOACTION' => undef,
'rules' => {
'function' => bless( {
'impcount' => 0,
'calls' => [
'type',
'identifier',
'element_list2'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 2,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'type',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 135
}, 'Parse::RecDescent::Subrule' ),
bless( {
'subrule' => 'identifier',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 135
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING1__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 135
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 135,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'subrule' => 'element_list2',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 135
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ');',
'hashname' => '__STRING2__',
'description' => '\');\'',
'lookahead' => 0,
'line' => 135
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 136,
'code' => '{{
"TYPE" => "FUNCTION",
"NAME" => $item{identifier},
"RETURN_TYPE" => $item{type},
"DATA" => $item{element_list2}
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '?',
'lookahead' => 0,
'line' => 142
}, 'Parse::RecDescent::Error' ),
bless( {
'name' => '<reject>',
'lookahead' => 0,
'line' => 0
}, 'Parse::RecDescent::UncondReject' )
],
'line' => 142
}, 'Parse::RecDescent::Production' )
],
'name' => 'function',
'vars' => '',
'line' => 135
}, 'Parse::RecDescent::Rule' ),
'base_element' => bless( {
'impcount' => 0,
'calls' => [
'property_list',
'type',
'pointer',
'identifier',
'array_len'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'property_list',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 100000000,
'matchrule' => 0,
'repspec' => 's?',
'lookahead' => 0,
'line' => 81
}, 'Parse::RecDescent::Repetition' ),
bless( {
'subrule' => 'type',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 81
}, 'Parse::RecDescent::Subrule' ),
bless( {
'subrule' => 'pointer',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 100000000,
'matchrule' => 0,
'repspec' => 's?',
'lookahead' => 0,
'line' => 81
}, 'Parse::RecDescent::Repetition' ),
bless( {
'subrule' => 'identifier',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 81
}, 'Parse::RecDescent::Subrule' ),
bless( {
'subrule' => 'array_len',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 1,
'matchrule' => 0,
'repspec' => '?',
'lookahead' => 0,
'line' => 81
}, 'Parse::RecDescent::Repetition' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 82,
'code' => '{{
"NAME" => $item{identifier},
"TYPE" => $item{type},
"PROPERTIES" => util::FlattenArray($item[1]),
"POINTERS" => $#{$item[3]}==-1?undef:$#{$item[3]}+1,
"ARRAY_LEN" => $item[5][0]
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '',
'lookahead' => 0,
'line' => 89
}, 'Parse::RecDescent::Error' )
],
'line' => 89
}, 'Parse::RecDescent::Production' )
],
'name' => 'base_element',
'vars' => '',
'line' => 81
}, 'Parse::RecDescent::Rule' ),
'property_list' => bless( {
'impcount' => 0,
'calls' => [
'property'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 2,
'dircount' => 2,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 1,
'op' => [],
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 109
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 109,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'expected' => '<leftop: property /,/ property>',
'min' => 1,
'name' => '\'property(s)\'',
'max' => 100000000,
'leftarg' => bless( {
'subrule' => 'property',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 109
}, 'Parse::RecDescent::Subrule' ),
'rightarg' => bless( {
'subrule' => 'property',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 109
}, 'Parse::RecDescent::Subrule' ),
'hashname' => '__DIRECTIVE2__',
'type' => 'leftop',
'op' => bless( {
'pattern' => ',',
'hashname' => '__PATTERN1__',
'description' => '/,/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 109,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
}, 'Parse::RecDescent::Operator' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING2__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 109
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 110,
'code' => '{ $item[3] }'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '?',
'lookahead' => 0,
'line' => 111
}, 'Parse::RecDescent::Error' ),
bless( {
'name' => '<reject>',
'lookahead' => 0,
'line' => 0
}, 'Parse::RecDescent::UncondReject' )
],
'line' => 111
}, 'Parse::RecDescent::Production' )
],
'name' => 'property_list',
'vars' => '',
'line' => 109
}, 'Parse::RecDescent::Rule' ),
'definition' => bless( {
'impcount' => 0,
'calls' => [
'cpp_prefix',
'typedef',
'function'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'subrule' => 'cpp_prefix',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 28
}, 'Parse::RecDescent::Subrule' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'typedef',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 29
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 29,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 29
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '2',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'function',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 30
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 30,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 30
}, 'Parse::RecDescent::Production' )
],
'name' => 'definition',
'vars' => '',
'line' => 28
}, 'Parse::RecDescent::Rule' ),
'module_header' => bless( {
'impcount' => 0,
'calls' => [
'module_param'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 2,
'dircount' => 2,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 1,
'op' => [],
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 9
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 9,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'expected' => '<leftop: module_param /,/ module_param>',
'min' => 0,
'name' => '\'module_param(s?)\'',
'max' => 100000000,
'leftarg' => bless( {
'subrule' => 'module_param',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 9
}, 'Parse::RecDescent::Subrule' ),
'rightarg' => bless( {
'subrule' => 'module_param',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 9
}, 'Parse::RecDescent::Subrule' ),
'hashname' => '__DIRECTIVE2__',
'type' => 'leftop',
'op' => bless( {
'pattern' => ',',
'hashname' => '__PATTERN1__',
'description' => '/,/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 9,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
}, 'Parse::RecDescent::Operator' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING2__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 9
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 10,
'code' => '{{
"TYPE" => "MODULEHEADER",
"PROPERTIES" => util::FlattenHash($item[3])
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '?',
'lookahead' => 0,
'line' => 14
}, 'Parse::RecDescent::Error' ),
bless( {
'name' => '<reject>',
'lookahead' => 0,
'line' => 0
}, 'Parse::RecDescent::UncondReject' )
],
'line' => 14
}, 'Parse::RecDescent::Production' )
],
'name' => 'module_header',
'vars' => '',
'line' => 9
}, 'Parse::RecDescent::Rule' ),
'identifier' => bless( {
'impcount' => 0,
'calls' => [],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 0,
'items' => [
bless( {
'pattern' => '[\\w?]+',
'hashname' => '__PATTERN1__',
'description' => '/[\\\\w?]+/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 131,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
],
'line' => undef
}, 'Parse::RecDescent::Production' )
],
'name' => 'identifier',
'vars' => '',
'line' => 131
}, 'Parse::RecDescent::Rule' ),
'struct' => bless( {
'impcount' => 0,
'calls' => [
'property_list',
'element_list1'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 3,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'property_list',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 100000000,
'matchrule' => 0,
'repspec' => 's?',
'lookahead' => 0,
'line' => 41
}, 'Parse::RecDescent::Repetition' ),
bless( {
'pattern' => 'struct',
'hashname' => '__STRING1__',
'description' => '\'struct\'',
'lookahead' => 0,
'line' => 41
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 41,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'pattern' => '{',
'hashname' => '__STRING2__',
'description' => '\'\\{\'',
'lookahead' => 0,
'line' => 41
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'element_list1',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 1,
'matchrule' => 0,
'repspec' => '?',
'lookahead' => 0,
'line' => 41
}, 'Parse::RecDescent::Repetition' ),
bless( {
'pattern' => '}',
'hashname' => '__STRING3__',
'description' => '\'\\}\'',
'lookahead' => 0,
'line' => 41
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 42,
'code' => '{{
"TYPE" => "STRUCT",
"PROPERTIES" => util::FlattenArray($item[1]),
"ELEMENTS" => util::FlattenArray2($item[5])
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '?',
'lookahead' => 0,
'line' => 47
}, 'Parse::RecDescent::Error' ),
bless( {
'name' => '<reject>',
'lookahead' => 0,
'line' => 0
}, 'Parse::RecDescent::UncondReject' )
],
'line' => 47
}, 'Parse::RecDescent::Production' )
],
'name' => 'struct',
'vars' => '',
'line' => 41
}, 'Parse::RecDescent::Rule' ),
'text' => bless( {
'impcount' => 0,
'calls' => [],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 0,
'items' => [
bless( {
'pattern' => '[\\w\\s\\..?-]*',
'hashname' => '__PATTERN1__',
'description' => '/[\\\\w\\\\s\\\\..?-]*/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 154,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
],
'line' => undef
}, 'Parse::RecDescent::Production' )
],
'name' => 'text',
'vars' => '',
'line' => 154
}, 'Parse::RecDescent::Rule' ),
'expression' => bless( {
'impcount' => 0,
'calls' => [],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 0,
'items' => [
bless( {
'pattern' => '[\\w.?\\/+*-_]+',
'hashname' => '__PATTERN1__',
'description' => '/[\\\\w.?\\\\/+*-_]+/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 133,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
],
'line' => undef
}, 'Parse::RecDescent::Production' )
],
'name' => 'expression',
'vars' => '',
'line' => 133
}, 'Parse::RecDescent::Rule' ),
'union_element' => bless( {
'impcount' => 0,
'calls' => [
'constant',
'base_element'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 6,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 58
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => 'case',
'hashname' => '__STRING2__',
'description' => '\'case\'',
'lookahead' => 0,
'line' => 58
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING3__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 58
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'constant',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 58
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING4__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 58
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING5__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 58
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'base_element',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 58
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ';',
'hashname' => '__STRING6__',
'description' => '\';\'',
'lookahead' => 0,
'line' => 58
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 59,
'code' => '{{
"TYPE" => "UNION_ELEMENT",
"CASE" => $item{constant},
"DATA" => $item{base_element}
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 6,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 64
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => 'case',
'hashname' => '__STRING2__',
'description' => '\'case\'',
'lookahead' => 0,
'line' => 64
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING3__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 64
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'constant',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 64
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING4__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 64
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING5__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 64
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => ';',
'hashname' => '__STRING6__',
'description' => '\';\'',
'lookahead' => 0,
'line' => 64
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 65,
'code' => '{{
"TYPE" => "EMPTY",
"CASE" => $item{constant},
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => 64
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '2',
'strcount' => 4,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 69
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => 'default',
'hashname' => '__STRING2__',
'description' => '\'default\'',
'lookahead' => 0,
'line' => 69
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING3__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 69
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'base_element',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 69
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ';',
'hashname' => '__STRING4__',
'description' => '\';\'',
'lookahead' => 0,
'line' => 69
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 70,
'code' => '{{
"TYPE" => "UNION_ELEMENT",
"CASE" => "default",
"DATA" => $item{base_element}
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => 69
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '3',
'strcount' => 4,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 75
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => 'default',
'hashname' => '__STRING2__',
'description' => '\'default\'',
'lookahead' => 0,
'line' => 75
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING3__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 75
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => ';',
'hashname' => '__STRING4__',
'description' => '\';\'',
'lookahead' => 0,
'line' => 75
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 76,
'code' => '{{
"TYPE" => "EMPTY",
"CASE" => "default",
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => 75
}, 'Parse::RecDescent::Production' )
],
'name' => 'union_element',
'vars' => '',
'line' => 57
}, 'Parse::RecDescent::Rule' ),
'interface' => bless( {
'impcount' => 0,
'calls' => [
'identifier',
'definition'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 3,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'interface',
'hashname' => '__STRING1__',
'description' => '\'interface\'',
'lookahead' => 0,
'line' => 20
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 20,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'subrule' => 'identifier',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 20
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => '{',
'hashname' => '__STRING2__',
'description' => '\'\\{\'',
'lookahead' => 0,
'line' => 20
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'definition',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 100000000,
'matchrule' => 0,
'repspec' => 's?',
'lookahead' => 0,
'line' => 20
}, 'Parse::RecDescent::Repetition' ),
bless( {
'pattern' => '}',
'hashname' => '__STRING3__',
'description' => '\'\\}\'',
'lookahead' => 0,
'line' => 20
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 21,
'code' => '{{
"TYPE" => "INTERFACE",
"NAME" => $item{identifier},
"DATA" => $item[5]
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '?',
'lookahead' => 0,
'line' => 26
}, 'Parse::RecDescent::Error' ),
bless( {
'name' => '<reject>',
'lookahead' => 0,
'line' => 0
}, 'Parse::RecDescent::UncondReject' )
],
'line' => 26
}, 'Parse::RecDescent::Production' )
],
'name' => 'interface',
'vars' => '',
'line' => 20
}, 'Parse::RecDescent::Rule' ),
'typedef' => bless( {
'impcount' => 0,
'calls' => [
'type',
'identifier',
'array_len'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 2,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'typedef',
'hashname' => '__STRING1__',
'description' => '\'typedef\'',
'lookahead' => 0,
'line' => 32
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 32,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'subrule' => 'type',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 32
}, 'Parse::RecDescent::Subrule' ),
bless( {
'subrule' => 'identifier',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 32
}, 'Parse::RecDescent::Subrule' ),
bless( {
'subrule' => 'array_len',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 1,
'matchrule' => 0,
'repspec' => '?',
'lookahead' => 0,
'line' => 32
}, 'Parse::RecDescent::Repetition' ),
bless( {
'pattern' => ';',
'hashname' => '__STRING2__',
'description' => '\';\'',
'lookahead' => 0,
'line' => 32
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 33,
'code' => '{{
"TYPE" => "TYPEDEF",
"NAME" => $item{identifier},
"DATA" => $item{type},
"ARRAY_LEN" => $item[5][0]
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '?',
'lookahead' => 0,
'line' => 39
}, 'Parse::RecDescent::Error' ),
bless( {
'name' => '<reject>',
'lookahead' => 0,
'line' => 0
}, 'Parse::RecDescent::UncondReject' )
],
'line' => 39
}, 'Parse::RecDescent::Production' )
],
'name' => 'typedef',
'vars' => '',
'line' => 32
}, 'Parse::RecDescent::Rule' ),
'call' => bless( {
'impcount' => 0,
'calls' => [
'expression'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 2,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'expression',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 164
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING1__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 164
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 164,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'subrule' => 'expression',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 164
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING2__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 164
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 165,
'code' => '{{ "$item[1]($item[4])" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' )
],
'name' => 'call',
'vars' => '',
'line' => 164
}, 'Parse::RecDescent::Rule' ),
'idl' => bless( {
'impcount' => 0,
'calls' => [
'cpp_prefix',
'module_header',
'interface'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'cpp_prefix',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 100000000,
'matchrule' => 0,
'repspec' => 's?',
'lookahead' => 0,
'line' => 5
}, 'Parse::RecDescent::Repetition' ),
bless( {
'subrule' => 'module_header',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 5
}, 'Parse::RecDescent::Subrule' ),
bless( {
'subrule' => 'interface',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 5
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 6,
'code' => '{ [$item{module_header}, $item{interface}] }'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '',
'lookahead' => 0,
'line' => 7
}, 'Parse::RecDescent::Error' )
],
'line' => 7
}, 'Parse::RecDescent::Production' )
],
'name' => 'idl',
'vars' => '',
'line' => 5
}, 'Parse::RecDescent::Rule' ),
'cpp_prefix' => bless( {
'impcount' => 0,
'calls' => [],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 0,
'items' => [
bless( {
'pattern' => '#',
'hashname' => '__STRING1__',
'description' => '\'#\'',
'lookahead' => 0,
'line' => 170
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '.*',
'hashname' => '__PATTERN1__',
'description' => '/.*/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 170,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
],
'line' => undef
}, 'Parse::RecDescent::Production' )
],
'name' => 'cpp_prefix',
'vars' => '',
'line' => 170
}, 'Parse::RecDescent::Rule' ),
'property' => bless( {
'impcount' => 0,
'calls' => [
'expression',
'anytext',
'type'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'unique',
'hashname' => '__STRING1__',
'description' => '\'unique\'',
'lookahead' => 0,
'line' => 113
}, 'Parse::RecDescent::Literal' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'in',
'hashname' => '__STRING1__',
'description' => '\'in\'',
'lookahead' => 0,
'line' => 114
}, 'Parse::RecDescent::Literal' )
],
'line' => 114
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '2',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'out',
'hashname' => '__STRING1__',
'description' => '\'out\'',
'lookahead' => 0,
'line' => 115
}, 'Parse::RecDescent::Literal' )
],
'line' => 115
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '3',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'ref',
'hashname' => '__STRING1__',
'description' => '\'ref\'',
'lookahead' => 0,
'line' => 116
}, 'Parse::RecDescent::Literal' )
],
'line' => 116
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '4',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'context_handle',
'hashname' => '__STRING1__',
'description' => '\'context_handle\'',
'lookahead' => 0,
'line' => 117
}, 'Parse::RecDescent::Literal' )
],
'line' => 117
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '5',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'string',
'hashname' => '__STRING1__',
'description' => '\'string\'',
'lookahead' => 0,
'line' => 118
}, 'Parse::RecDescent::Literal' )
],
'line' => 118
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '6',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'public',
'hashname' => '__STRING1__',
'description' => '\'public\'',
'lookahead' => 0,
'line' => 119
}, 'Parse::RecDescent::Literal' )
],
'line' => 119
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '7',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'noprint',
'hashname' => '__STRING1__',
'description' => '\'noprint\'',
'lookahead' => 0,
'line' => 120
}, 'Parse::RecDescent::Literal' )
],
'line' => 120
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '8',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'relative',
'hashname' => '__STRING1__',
'description' => '\'relative\'',
'lookahead' => 0,
'line' => 121
}, 'Parse::RecDescent::Literal' )
],
'line' => 121
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '9',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'nodiscriminant',
'hashname' => '__STRING1__',
'description' => '\'nodiscriminant\'',
'lookahead' => 0,
'line' => 122
}, 'Parse::RecDescent::Literal' )
],
'line' => 122
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '10',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'subcontext',
'hashname' => '__STRING1__',
'description' => '\'subcontext\'',
'lookahead' => 0,
'line' => 123
}, 'Parse::RecDescent::Literal' )
],
'line' => 123
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '11',
'strcount' => 3,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'byte_count_pointer',
'hashname' => '__STRING1__',
'description' => '\'byte_count_pointer\'',
'lookahead' => 0,
'line' => 124
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING2__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 124
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'expression',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 124
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING3__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 124
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 124,
'code' => '{{ "$item[1]" => "$item{expression}" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => 124
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '12',
'strcount' => 3,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'size_is',
'hashname' => '__STRING1__',
'description' => '\'size_is\'',
'lookahead' => 0,
'line' => 125
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING2__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 125
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'expression',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 125
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING3__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 125
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 125,
'code' => '{{ "$item[1]" => "$item{expression}" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => 125
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '13',
'strcount' => 3,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'length_is',
'hashname' => '__STRING1__',
'description' => '\'length_is\'',
'lookahead' => 0,
'line' => 126
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING2__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 126
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'expression',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 126
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING3__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 126
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 126,
'code' => '{{ "$item[1]" => "$item{expression}" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => 126
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '14',
'strcount' => 3,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'switch_is',
'hashname' => '__STRING1__',
'description' => '\'switch_is\'',
'lookahead' => 0,
'line' => 127
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING2__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 127
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'expression',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 127
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING3__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 127
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 127,
'code' => '{{ "$item[1]" => "$item{expression}" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => 127
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '15',
'strcount' => 3,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'value',
'hashname' => '__STRING1__',
'description' => '\'value\'',
'lookahead' => 0,
'line' => 128
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING2__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 128
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'anytext',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 128
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING3__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 128
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 128,
'code' => '{{ "$item[1]" => "$item{anytext}" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => 128
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '16',
'strcount' => 3,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'switch_type',
'hashname' => '__STRING1__',
'description' => '\'switch_type\'',
'lookahead' => 0,
'line' => 129
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING2__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 129
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'type',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 129
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING3__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 129
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 129,
'code' => '{{ "$item[1]" => $item{type} }}'
}, 'Parse::RecDescent::Action' )
],
'line' => 129
}, 'Parse::RecDescent::Production' )
],
'name' => 'property',
'vars' => '',
'line' => 113
}, 'Parse::RecDescent::Rule' ),
'element_list2' => bless( {
'impcount' => 0,
'calls' => [
'base_element'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => 'void',
'hashname' => '__STRING1__',
'description' => '\'void\'',
'lookahead' => 0,
'line' => 103
}, 'Parse::RecDescent::Literal' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 1,
'op' => [],
'items' => [
bless( {
'expected' => '<leftop: base_element /,/ base_element>',
'min' => 0,
'name' => '\'base_element(s?)\'',
'max' => 100000000,
'leftarg' => bless( {
'subrule' => 'base_element',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 104
}, 'Parse::RecDescent::Subrule' ),
'rightarg' => bless( {
'subrule' => 'base_element',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 104
}, 'Parse::RecDescent::Subrule' ),
'hashname' => '__DIRECTIVE1__',
'type' => 'leftop',
'op' => bless( {
'pattern' => ',',
'hashname' => '__PATTERN1__',
'description' => '/,/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 104,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
}, 'Parse::RecDescent::Operator' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 105,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 104
}, 'Parse::RecDescent::Production' )
],
'name' => 'element_list2',
'vars' => '',
'line' => 103
}, 'Parse::RecDescent::Rule' ),
'anytext' => bless( {
'impcount' => 0,
'calls' => [
'text2',
'anytext'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 2,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'text2',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 158
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING1__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 158
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 158,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'subrule' => 'anytext',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 158
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING2__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 158
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'anytext',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 158
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 159,
'code' => '{{ "$item[1]($item[4])$item[6]" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'text2',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 160
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => '+',
'hashname' => '__STRING1__',
'description' => '\'+\'',
'lookahead' => 0,
'line' => 160
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'anytext',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 160
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 161,
'code' => '{{ "$item[1]+$item[3]" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => 160
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '2',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'subrule' => 'text2',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 162
}, 'Parse::RecDescent::Subrule' )
],
'line' => 162
}, 'Parse::RecDescent::Production' )
],
'name' => 'anytext',
'vars' => '',
'line' => 158
}, 'Parse::RecDescent::Rule' ),
'element_list1' => bless( {
'impcount' => 0,
'calls' => [
'base_element'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 1,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 1,
'op' => [],
'items' => [
bless( {
'expected' => '<leftop: base_element /;/ base_element>',
'min' => 0,
'name' => '\'base_element(s?)\'',
'max' => 100000000,
'leftarg' => bless( {
'subrule' => 'base_element',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 100
}, 'Parse::RecDescent::Subrule' ),
'rightarg' => bless( {
'subrule' => 'base_element',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 100
}, 'Parse::RecDescent::Subrule' ),
'hashname' => '__DIRECTIVE1__',
'type' => 'leftop',
'op' => bless( {
'pattern' => ';',
'hashname' => '__PATTERN1__',
'description' => '/;/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 100,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
}, 'Parse::RecDescent::Operator' ),
bless( {
'pattern' => ';',
'hashname' => '__STRING1__',
'description' => '\';\'',
'lookahead' => 0,
'line' => 100
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 101,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' )
],
'name' => 'element_list1',
'vars' => '',
'line' => 100
}, 'Parse::RecDescent::Rule' ),
'constant' => bless( {
'impcount' => 0,
'calls' => [],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 0,
'items' => [
bless( {
'pattern' => '-?\\d+',
'hashname' => '__PATTERN1__',
'description' => '/-?\\\\d+/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 167,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => '*',
'hashname' => '__STRING1__',
'description' => '\'*\'',
'lookahead' => 0,
'line' => 168
}, 'Parse::RecDescent::Literal' )
],
'line' => 168
}, 'Parse::RecDescent::Production' )
],
'name' => 'constant',
'vars' => '',
'line' => 167
}, 'Parse::RecDescent::Rule' ),
'array_len' => bless( {
'impcount' => 0,
'calls' => [
'anytext'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 2,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 92
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING2__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 92
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 93,
'code' => '{ "*" }'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 3,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 94
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => '*',
'hashname' => '__STRING2__',
'description' => '\'*\'',
'lookahead' => 0,
'line' => 94
}, 'Parse::RecDescent::Literal' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING3__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 94
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 95,
'code' => '{ "*" }'
}, 'Parse::RecDescent::Action' )
],
'line' => 94
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '2',
'strcount' => 2,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => '[',
'hashname' => '__STRING1__',
'description' => '\'[\'',
'lookahead' => 0,
'line' => 96
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 96,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'subrule' => 'anytext',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 96
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ']',
'hashname' => '__STRING2__',
'description' => '\']\'',
'lookahead' => 0,
'line' => 96
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 97,
'code' => '{ "$item{anytext}" }'
}, 'Parse::RecDescent::Action' )
],
'line' => 96
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '3',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '?',
'lookahead' => 0,
'line' => 98
}, 'Parse::RecDescent::Error' ),
bless( {
'name' => '<reject>',
'lookahead' => 0,
'line' => 0
}, 'Parse::RecDescent::UncondReject' )
],
'line' => 98
}, 'Parse::RecDescent::Production' )
],
'name' => 'array_len',
'vars' => '',
'line' => 91
}, 'Parse::RecDescent::Rule' ),
'text2' => bless( {
'impcount' => 0,
'calls' => [],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 1,
'actcount' => 0,
'items' => [
bless( {
'pattern' => '[\\w\\s\\*\\>\\/\\..?-]*',
'hashname' => '__PATTERN1__',
'description' => '/[\\\\w\\\\s\\\\*\\\\>\\\\/\\\\..?-]*/',
'lookahead' => 0,
'rdelim' => '/',
'line' => 156,
'mod' => '',
'ldelim' => '/'
}, 'Parse::RecDescent::Token' )
],
'line' => undef
}, 'Parse::RecDescent::Production' )
],
'name' => 'text2',
'vars' => '',
'line' => 156
}, 'Parse::RecDescent::Rule' ),
'pointer' => bless( {
'impcount' => 0,
'calls' => [],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'pattern' => '*',
'hashname' => '__STRING1__',
'description' => '\'*\'',
'lookahead' => 0,
'line' => 107
}, 'Parse::RecDescent::Literal' )
],
'line' => undef
}, 'Parse::RecDescent::Production' )
],
'name' => 'pointer',
'vars' => '',
'line' => 107
}, 'Parse::RecDescent::Rule' ),
'type' => bless( {
'impcount' => 0,
'calls' => [
'type',
'struct',
'union',
'identifier'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'unsigned',
'hashname' => '__STRING1__',
'description' => '\'unsigned\'',
'lookahead' => 0,
'line' => 145
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'type',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 145
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 145,
'code' => '{ "$item[1] $item[2]" }'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'long',
'hashname' => '__STRING1__',
'description' => '\'long\'',
'lookahead' => 0,
'line' => 146
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 146,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 146
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '2',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'string',
'hashname' => '__STRING1__',
'description' => '\'string\'',
'lookahead' => 0,
'line' => 147
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 147,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 147
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '3',
'strcount' => 1,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'pattern' => 'wchar_t',
'hashname' => '__STRING1__',
'description' => '\'wchar_t\'',
'lookahead' => 0,
'line' => 148
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 148,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 148
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '4',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'struct',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 149
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 149,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 149
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '5',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'union',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 150
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 150,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 150
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '6',
'strcount' => 0,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'identifier',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 151
}, 'Parse::RecDescent::Subrule' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 151,
'code' => '{ $item[1] }'
}, 'Parse::RecDescent::Action' )
],
'line' => 151
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '7',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '',
'lookahead' => 0,
'line' => 152
}, 'Parse::RecDescent::Error' )
],
'line' => 152
}, 'Parse::RecDescent::Production' )
],
'name' => 'type',
'vars' => '',
'line' => 144
}, 'Parse::RecDescent::Rule' ),
'module_param' => bless( {
'impcount' => 0,
'calls' => [
'identifier',
'text'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 2,
'dircount' => 0,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'identifier',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 16
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => '(',
'hashname' => '__STRING1__',
'description' => '\'(\'',
'lookahead' => 0,
'line' => 16
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'text',
'matchrule' => 0,
'implicit' => undef,
'argcode' => undef,
'lookahead' => 0,
'line' => 16
}, 'Parse::RecDescent::Subrule' ),
bless( {
'pattern' => ')',
'hashname' => '__STRING2__',
'description' => '\')\'',
'lookahead' => 0,
'line' => 16
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 17,
'code' => '{{ "$item{identifier}" => "$item{text}" }}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '',
'lookahead' => 0,
'line' => 18
}, 'Parse::RecDescent::Error' )
],
'line' => 18
}, 'Parse::RecDescent::Production' )
],
'name' => 'module_param',
'vars' => '',
'line' => 16
}, 'Parse::RecDescent::Rule' ),
'union' => bless( {
'impcount' => 0,
'calls' => [
'property_list',
'union_element'
],
'changed' => 0,
'opcount' => 0,
'prods' => [
bless( {
'number' => '0',
'strcount' => 3,
'dircount' => 1,
'uncommit' => undef,
'error' => undef,
'patcount' => 0,
'actcount' => 1,
'items' => [
bless( {
'subrule' => 'property_list',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 100000000,
'matchrule' => 0,
'repspec' => 's?',
'lookahead' => 0,
'line' => 49
}, 'Parse::RecDescent::Repetition' ),
bless( {
'pattern' => 'union',
'hashname' => '__STRING1__',
'description' => '\'union\'',
'lookahead' => 0,
'line' => 49
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__DIRECTIVE1__',
'name' => '<commit>',
'lookahead' => 0,
'line' => 49,
'code' => '$commit = 1'
}, 'Parse::RecDescent::Directive' ),
bless( {
'pattern' => '{',
'hashname' => '__STRING2__',
'description' => '\'\\{\'',
'lookahead' => 0,
'line' => 49
}, 'Parse::RecDescent::Literal' ),
bless( {
'subrule' => 'union_element',
'expected' => undef,
'min' => 0,
'argcode' => undef,
'max' => 100000000,
'matchrule' => 0,
'repspec' => 's?',
'lookahead' => 0,
'line' => 49
}, 'Parse::RecDescent::Repetition' ),
bless( {
'pattern' => '}',
'hashname' => '__STRING3__',
'description' => '\'\\}\'',
'lookahead' => 0,
'line' => 49
}, 'Parse::RecDescent::Literal' ),
bless( {
'hashname' => '__ACTION1__',
'lookahead' => 0,
'line' => 50,
'code' => '{{
"TYPE" => "UNION",
"PROPERTIES" => util::FlattenArray($item[1]),
"DATA" => $item[5]
}}'
}, 'Parse::RecDescent::Action' )
],
'line' => undef
}, 'Parse::RecDescent::Production' ),
bless( {
'number' => '1',
'strcount' => 0,
'dircount' => 1,
'uncommit' => 0,
'error' => 1,
'patcount' => 0,
'actcount' => 0,
'items' => [
bless( {
'msg' => '',
'hashname' => '__DIRECTIVE1__',
'commitonly' => '?',
'lookahead' => 0,
'line' => 55
}, 'Parse::RecDescent::Error' ),
bless( {
'name' => '<reject>',
'lookahead' => 0,
'line' => 0
}, 'Parse::RecDescent::UncondReject' )
],
'line' => 55
}, 'Parse::RecDescent::Production' )
],
'name' => 'union',
'vars' => '',
'line' => 49
}, 'Parse::RecDescent::Rule' )
}
}, 'Parse::RecDescent' );
}