diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-11-20 22:46:01 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-11-20 22:46:01 +0000 |
commit | 15776970a5f501cf407fbc47eb7f35705959ec1b (patch) | |
tree | ef84e7ee8ecb3a6d1fda3c636f7dc2b2fafaafa4 | |
parent | 20730626af0b1aee6149fb7c537d185899ad0cef (diff) | |
download | samba-15776970a5f501cf407fbc47eb7f35705959ec1b.tar.gz samba-15776970a5f501cf407fbc47eb7f35705959ec1b.tar.bz2 samba-15776970a5f501cf407fbc47eb7f35705959ec1b.zip |
we now use a copy of pidl inside the samba4 source tree at
source/build/pidl/
I imported the code using direct respository manipulation to preserve
the commit history
(This used to be commit 2ed87a52ccc343c281e29f5a18f3f99fe06beb28)
-rw-r--r-- | source4/build/pidl/Makefile | 2 | ||||
-rw-r--r-- | source4/build/pidl/idl.pm | 12849 | ||||
-rwxr-xr-x | source4/script/build_idl.sh | 4 |
3 files changed, 4 insertions, 12851 deletions
diff --git a/source4/build/pidl/Makefile b/source4/build/pidl/Makefile index 23de275288..2ddf28389b 100644 --- a/source4/build/pidl/Makefile +++ b/source4/build/pidl/Makefile @@ -1,4 +1,4 @@ -PIDL_idl.pm: idl.gram +idl.pm: idl.gram perl -MParse::RecDescent - idl.gram idl clean: diff --git a/source4/build/pidl/idl.pm b/source4/build/pidl/idl.pm deleted file mode 100644 index 3c20256780..0000000000 --- a/source4/build/pidl/idl.pm +++ /dev/null @@ -1,12849 +0,0 @@ -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' ); -} diff --git a/source4/script/build_idl.sh b/source4/script/build_idl.sh index 1eef5644e8..569dd7dd31 100755 --- a/source4/script/build_idl.sh +++ b/source4/script/build_idl.sh @@ -5,12 +5,14 @@ FULLBUILD=$1 [ -d librpc/gen_ndr ] || mkdir -p librpc/gen_ndr || exit 1 [ -d librpc/gen_rpc ] || mkdir -p librpc/gen_rpc || exit 1 +( cd build/pidl && make ) || exit 1 + for f in librpc/idl/*.idl; do base=`basename $f .idl` ndr=librpc/gen_ndr/ndr_$base if [ x$FULLBUILD = xFULL -o "$f" -nt $ndr.c ]; then echo Processing $f - pidl.pl --output $ndr --parse --header --parser --client librpc/gen_rpc/rpc_$base.c $f || exit 1 + build/pidl/pidl.pl --output $ndr --parse --header --parser --client librpc/gen_rpc/rpc_$base.c $f || exit 1 fi done |