# # ------------------------------------------------------------------- # X-BONE # # http://www.isi.edu/xbone # USC Information Sciences Institute (USC/ISI) # Marina del Rey, California 90292, USA # Copyright (c) 1998-2005 # # ------------------------------------------------------------------- # # Copyright (c) 1998-2005 by the University of Southern California. # All rights reserved. # # Permission to use, copy, modify, and distribute this software and # its documentation in source and binary forms for non-commercial # purposes and without fee is hereby granted, provided that the above # copyright notice appear in all copies and that both the copyright # notice and this permission notice appear in supporting # documentation, and that any documentation, advertising materials, # and other materials related to such distribution and use acknowledge # that the software was developed by the University of Southern # California, Information Sciences Institute. The name of the # University may not be used to endorse or promote products derived # from this software without specific prior written permission. # # THE UNIVERSITY OF SOUTHERN CALIFORNIA MAKES NO REPRESENTATIONS ABOUT # THE SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. THIS SOFTWARE IS # PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, # INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. # # Other copyrights might apply to parts of this software and are so # noted when applicable. # # ------------------------------------------------------------------- # # Effort partly sponsored by the Defense Advanced Research Projects # Agency (DARPA) and Air Force Research Laboratory, Air Force Materiel # Command, USAF, under agreement numbers F30602-98-1-0200 (X-Bone) and # F30602-01-2-0529 (DynaBone). The views and conclusions contained # herein are those of the authors and should not be interpreted as # necessarily representing the official policies or endorsements, # either expressed or implied, of the Defense Advanced Research # Projects Agency (DARPA), the Air Force Research Laboratory, or the # U.S. Government. # # This work was partly supported by the NSF STI-XTEND (ANI-0230789) # and NETFS (ANI-0129689) projects. Any opinions, findings, and # conclusions or recommendations expressed in this material are those # of the authors and do not necessarily reflect the views of the # National Science Foundation. # # ------------------------------------------------------------------- package XB_API_parser; use Parse::RecDescent; { my $ERRORS; package Parse::RecDescent::namespace000001; use strict; use vars qw($skip $AUTOLOAD ); $skip = '\s*'; my ($semerr) = ''; my (%classes) = (); ; { local $SIG{__WARN__} = sub {0}; # PRETEND TO BE IN Parse::RecDescent NAMESPACE *Parse::RecDescent::namespace000001::AUTOLOAD = sub { no strict 'refs'; $AUTOLOAD =~ s/^Parse::RecDescent::namespace000001/Parse::RecDescent/; goto &{$AUTOLOAD}; } } push @Parse::RecDescent::namespace000001::ISA, 'Parse::RecDescent'; # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::CRITERION { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"CRITERION"}; Parse::RecDescent::_trace(q{Trying rule: [CRITERION]}, Parse::RecDescent::_tracefirst($_[1]), q{CRITERION}) 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: ['(' ARGSTRING ARGSTRING ')']}, Parse::RecDescent::_tracefirst($_[1]), q{CRITERION}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{CRITERION}); %item = (__RULE__ => q{CRITERION}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) 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{<>}, 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: [ARGSTRING]}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{ARGSTRING})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::ARGSTRING($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [ARGSTRING]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) if defined $::RD_TRACE; $item{q{ARGSTRING}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [ARGSTRING]}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{ARGSTRING})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::ARGSTRING($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [ARGSTRING]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) if defined $::RD_TRACE; $item{q{ARGSTRING}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) 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{<>}, 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{CRITERION}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %nc = (); $nc{type} = $item[2]; $nc{value} = $item[3]; $return = \%nc; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' ARGSTRING ARGSTRING ')']<<}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: []}, Parse::RecDescent::_tracefirst($_[1]), q{CRITERION}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; my $_savetext; @item = (q{CRITERION}); %item = (__RULE__ => q{CRITERION}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{CRITERION}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{CRITERION}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{CRITERION}) 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{CRITERION}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{CRITERION}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::INTERFACE { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"INTERFACE"}; Parse::RecDescent::_trace(q{Trying rule: [INTERFACE]}, Parse::RecDescent::_tracefirst($_[1]), q{INTERFACE}) 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' IF_NAME CRITERION ')']}, Parse::RecDescent::_tracefirst($_[1]), q{INTERFACE}) 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: ['(']}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) 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{<>}, 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: ['interface']}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'interface'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ainterface//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [IF_NAME]}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{IF_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::IF_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [IF_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) if defined $::RD_TRACE; $item{q{IF_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) 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{<>}, 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}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %if = (); my ($rv, $ix); my %pl = (); $ix = 0; while (defined $item{CRITERION}[$ix]) { $rv = $item{CRITERION}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $if{type} = $item{IF_NAME}; $if{value} = \%pl; $return = \%if; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'interface' IF_NAME CRITERION ')']<<}, Parse::RecDescent::_tracefirst($text), q{INTERFACE}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{INTERFACE}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{INTERFACE}) 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}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{INTERFACE}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::NET_PART { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"NET_PART"}; Parse::RecDescent::_trace(q{Trying rule: [NET_PART]}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PART}) 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: ['(' 'nodelist' NETNODE ')']}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PART}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{NET_PART}); %item = (__RULE__ => q{NET_PART}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, 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: ['nodelist']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'nodelist'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anodelist//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [NETNODE]}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $expectation->is(q{NETNODE})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::NETNODE, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [NETNODE]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $item{q{NETNODE}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, 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{NET_PART}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %np = (); my ($rv, $ix); my %nodes = (); $ix = 0; while (defined $item{NETNODE}[$ix]) { $rv = $item{NETNODE}[$ix]; $nodes{$rv->{type}} = $rv->{value}; $ix++; } $np{type} = 'nodes'; $np{value} = \%nodes; $return = \%np; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'nodelist' NETNODE ')']<<}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'linklist' LINK ')']}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PART}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{NET_PART}); %item = (__RULE__ => q{NET_PART}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, 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: ['linklist']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'linklist'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Alinklist//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [LINK]}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $expectation->is(q{LINK})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::LINK, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [LINK]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $item{q{LINK}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, 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{NET_PART}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %np = (); my ($rv, $ix); my %links = (); $ix = 0; while (defined $item{LINK}[$ix]) { $rv = $item{LINK}[$ix]; $links{$rv->{type}} = $rv->{value}; $ix++; } $np{type} = 'links'; $np{value} = \%links; $return = \%np; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'linklist' LINK ')']<<}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'netlist' TOPO_TRIPLE ')']}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PART}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{NET_PART}); %item = (__RULE__ => q{NET_PART}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, 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: ['netlist']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'netlist'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anetlist//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [TOPO_TRIPLE]}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $expectation->is(q{TOPO_TRIPLE})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::TOPO_TRIPLE, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TOPO_TRIPLE]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $item{q{TOPO_TRIPLE}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, 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{NET_PART}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %np = (); $np{type} = 'netlist'; $np{value} = $item{TOPO_TRIPLE}; $return = \%np; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'netlist' TOPO_TRIPLE ')']<<}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'exportlist' TOPO_ENDPOINT ')']}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PART}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{NET_PART}); %item = (__RULE__ => q{NET_PART}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, 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: ['exportlist']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'exportlist'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aexportlist//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [TOPO_ENDPOINT]}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $expectation->is(q{TOPO_ENDPOINT})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::TOPO_ENDPOINT, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TOPO_ENDPOINT]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $item{q{TOPO_ENDPOINT}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, 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{NET_PART}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %np = (); $np{type} = 'exportlist'; $np{value} = $item{TOPO_ENDPOINT}; $return = \%np; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'exportlist' TOPO_ENDPOINT ')']<<}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: []}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PART}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[4]; my $_savetext; @item = (q{NET_PART}); %item = (__RULE__ => q{NET_PART}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{NET_PART}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PART}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{NET_PART}) 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{NET_PART}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{NET_PART}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::NODE_NAME { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"NODE_NAME"}; Parse::RecDescent::_trace(q{Trying rule: [NODE_NAME]}, Parse::RecDescent::_tracefirst($_[1]), q{NODE_NAME}) 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: [/[_A-Za-z0-9-]+/]}, Parse::RecDescent::_tracefirst($_[1]), q{NODE_NAME}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{NODE_NAME}); %item = (__RULE__ => q{NODE_NAME}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/[_A-Za-z0-9-]+/]}, Parse::RecDescent::_tracefirst($text), q{NODE_NAME}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[_A-Za-z0-9-]+)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, 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: [/[_A-Za-z0-9-]+/]<<}, Parse::RecDescent::_tracefirst($text), q{NODE_NAME}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{NODE_NAME}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{NODE_NAME}) 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{NODE_NAME}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{NODE_NAME}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::NET_PROPS { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"NET_PROPS"}; Parse::RecDescent::_trace(q{Trying rule: [NET_PROPS]}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PROPS}) 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: ['(' 'netprops' CRITERION ')']}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PROPS}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{NET_PROPS}); %item = (__RULE__ => q{NET_PROPS}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NET_PROPS}) 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{<>}, 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: ['netprops']}, Parse::RecDescent::_tracefirst($text), q{NET_PROPS}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'netprops'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anetprops//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{NET_PROPS}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NET_PROPS}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NET_PROPS}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NET_PROPS}) 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{<>}, 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{NET_PROPS}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %pl = (); my ($rv, $ix); $ix = 0; while (defined $item{CRITERION}[$ix]) { $rv = $item{CRITERION}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $return = \%pl; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'netprops' CRITERION ')']<<}, Parse::RecDescent::_tracefirst($text), q{NET_PROPS}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{NET_PROPS}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{NET_PROPS}) 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{NET_PROPS}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{NET_PROPS}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::TUNNEL { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"TUNNEL"}; Parse::RecDescent::_trace(q{Trying rule: [TUNNEL]}, Parse::RecDescent::_tracefirst($_[1]), q{TUNNEL}) 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: ['(' 'tunnel' CRITERION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{TUNNEL}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{TUNNEL}); %item = (__RULE__ => q{TUNNEL}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) 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{<>}, 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: ['tunnel']}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'tunnel'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Atunnel//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %rv = (); my ($href, $clref, $result); $semerr = ""; $clref = $item{CRITERION}; foreach $href (@$clref) { $rv{$href->{type}} = $href->{value}; }; $result = XB_API_GUI::XB_check_tunnel (\%rv); if ($result) { $semerr = $result; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%rv; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'tunnel' CRITERION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{TUNNEL}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; my $_savetext; @item = (q{TUNNEL}); %item = (__RULE__ => q{TUNNEL}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{TUNNEL}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{TUNNEL}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{TUNNEL}) 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{TUNNEL}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{TUNNEL}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::API { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"API"}; Parse::RecDescent::_trace(q{Trying rule: [API]}, Parse::RecDescent::_tracefirst($_[1]), q{API}) 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{API}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{API}); %item = (__RULE__ => q{API}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $semerr = ""; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'xbone' ARGSTRING ARGSTRING CREDENTIAL COMMAND ')' END_OF_FILE]}, Parse::RecDescent::_tracefirst($_[1]), q{API}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{API}); %item = (__RULE__ => q{API}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{API}) 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{<>}, 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: ['xbone']}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'xbone'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Axbone//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [ARGSTRING]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{ARGSTRING})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::ARGSTRING($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [ARGSTRING]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $item{q{ARGSTRING}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [ARGSTRING]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{ARGSTRING})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::ARGSTRING($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [ARGSTRING]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $item{q{ARGSTRING}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [CREDENTIAL]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{CREDENTIAL})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::CREDENTIAL($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [CREDENTIAL]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $item{q{CREDENTIAL}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [COMMAND]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{COMMAND})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::COMMAND($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [COMMAND]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $item{q{COMMAND}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{API}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %api = (); my $result = undef; $result = \%api; $api{protocol} = $item[3]; $api{release} = $item[4]; $api{credential} = $item{CREDENTIAL}; $api{command} = $item{COMMAND}; if ($api{protocol} !~ /^[0-9]+\.[A-Za-z0-9-]+$/) { $semerr = "ERROR: language protocol number has format: number.alphanumeric\n"; goto EXIT; }; if ($api{release} !~ /^[0-9]+\.[A-Za-z-0-9-]+$/) { $semerr = "ERROR: xbone version number has format: number.alphanumeric\n"; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%api; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{API}) 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{<>}, 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: [END_OF_FILE]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{END_OF_FILE})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::END_OF_FILE($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [END_OF_FILE]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $item{q{END_OF_FILE}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: ['(' 'xbone' ARGSTRING ARGSTRING CREDENTIAL COMMAND ')' END_OF_FILE]<<}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{API}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; my $_savetext; @item = (q{API}); %item = (__RULE__ => q{API}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{API}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{API}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{API}) 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{API}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{API}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::CREDENTIAL { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"CREDENTIAL"}; Parse::RecDescent::_trace(q{Trying rule: [CREDENTIAL]}, Parse::RecDescent::_tracefirst($_[1]), q{CREDENTIAL}) 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{CREDENTIAL}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{CREDENTIAL}); %item = (__RULE__ => q{CREDENTIAL}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $semerr = ""; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'credential' CRITERION ')']}, Parse::RecDescent::_tracefirst($_[1]), q{CREDENTIAL}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{CREDENTIAL}); %item = (__RULE__ => q{CREDENTIAL}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) 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{<>}, 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: ['credential']}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'credential'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acredential//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($chref, $clref, $key); $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; ################################## # Perform keyword existence checks ################################## my (@credential_keys) = ( 'user_name', 'user_email', 'auth_type' ); foreach $key (@credential_keys) { if (!exists ($cp{$key})) { $semerr = "Missing $key keyword in credentials."; }; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) 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{<>}, 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{>>Matched production: ['(' 'credential' CRITERION ')']<<}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{CREDENTIAL}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; my $_savetext; @item = (q{CREDENTIAL}); %item = (__RULE__ => q{CREDENTIAL}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{CREDENTIAL}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{CREDENTIAL}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{CREDENTIAL}) 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{CREDENTIAL}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{CREDENTIAL}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::NETNODE { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"NETNODE"}; Parse::RecDescent::_trace(q{Trying rule: [NETNODE]}, Parse::RecDescent::_tracefirst($_[1]), q{NETNODE}) 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: ['(' 'node' SIMPLE_NODE ')']}, Parse::RecDescent::_tracefirst($_[1]), q{NETNODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{NETNODE}); %item = (__RULE__ => q{NETNODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) 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{<>}, 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: ['node']}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'node'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anode//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [SIMPLE_NODE]}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{SIMPLE_NODE})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::SIMPLE_NODE($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [SIMPLE_NODE]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $item{q{SIMPLE_NODE}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) 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{<>}, 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{NETNODE}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item{SIMPLE_NODE}; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'node' SIMPLE_NODE ')']<<}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'node' META_NODE ')']}, Parse::RecDescent::_tracefirst($_[1]), q{NETNODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{NETNODE}); %item = (__RULE__ => q{NETNODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) 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{<>}, 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: ['node']}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'node'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anode//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [META_NODE]}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{META_NODE})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::META_NODE($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [META_NODE]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $item{q{META_NODE}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) 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{<>}, 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{NETNODE}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item{META_NODE}; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'node' META_NODE ')']<<}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: []}, Parse::RecDescent::_tracefirst($_[1]), q{NETNODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; my $_savetext; @item = (q{NETNODE}); %item = (__RULE__ => q{NETNODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{NETNODE}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{NETNODE}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{NETNODE}) 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{NETNODE}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{NETNODE}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::COMMAND { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"COMMAND"}; Parse::RecDescent::_trace(q{Trying rule: [COMMAND]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) 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{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $semerr = ""; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'create_overlay_reply' CRITERION NODE ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['create_overlay_reply']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'create_overlay_reply'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acreate_overlay_reply//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [NODE]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{NODE})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::NODE, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [NODE]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{NODE}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'create_overlay_reply'; $cp{nodes} = $item{NODE}; $retval = XB_API_GUI::XB_check_create_reply (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'create_overlay_reply' CRITERION NODE ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'create_overlay' CRITERION XOL_PROGRAM ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['create_overlay']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'create_overlay'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acreate_overlay//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying subrule: [XOL_PROGRAM]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{XOL_PROGRAM})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::XOL_PROGRAM($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [XOL_PROGRAM]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{XOL_PROGRAM}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $retval = undef; $cp{command} = 'create_overlay'; $cp{xol_program} = $item{XOL_PROGRAM}; $retval = XB_API_OM::XB_check_create (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'create_overlay' CRITERION XOL_PROGRAM ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'list_overlays_reply' CRITERION ARGSTRING ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['list_overlays_reply']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'list_overlays_reply'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Alist_overlays_reply//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 0, 1, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [ARGSTRING]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{ARGSTRING})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::ARGSTRING, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [ARGSTRING]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{ARGSTRING}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'list_overlays_reply'; $cp{overlays} = $item{ARGSTRING}; $retval = XB_API_GUI::XB_check_list_overlays_reply (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'list_overlays_reply' CRITERION ARGSTRING ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'list_overlays' CRITERION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[4]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['list_overlays']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'list_overlays'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Alist_overlays//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'list_overlays'; $retval = XB_API_OM::XB_check_list_overlays (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'list_overlays' CRITERION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'overlay_status_reply' CRITERION NODE ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[5]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['overlay_status_reply']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'overlay_status_reply'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aoverlay_status_reply//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [NODE]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{NODE})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::NODE, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [NODE]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{NODE}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'overlay_status_reply'; $cp{nodes} = $item{NODE}; $retval = XB_API_GUI::XB_check_overlay_status_reply (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'overlay_status_reply' CRITERION NODE ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'overlay_status' CRITERION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[6]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['overlay_status']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'overlay_status'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aoverlay_status//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'overlay_status'; $retval = XB_API_OM::XB_check_overlay_status (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'overlay_status' CRITERION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'discover_daemons_reply' CRITERION NODE ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[7]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['discover_daemons_reply']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'discover_daemons_reply'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Adiscover_daemons_reply//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [NODE]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{NODE})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::NODE, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [NODE]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{NODE}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'discover_daemons_reply'; $cp{nodes} = $item{NODE}; $retval = XB_API_GUI::XB_check_discover_daemons_reply (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'discover_daemons_reply' CRITERION NODE ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'discover_daemons' CRITERION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[8]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['discover_daemons']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'discover_daemons'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Adiscover_daemons//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'discover_daemons'; $retval = XB_API_OM::XB_check_discover_daemons (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'discover_daemons' CRITERION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'destroy_overlay_reply' CRITERION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[9]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['destroy_overlay_reply']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'destroy_overlay_reply'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Adestroy_overlay_reply//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'destroy_overlay_reply'; $retval = XB_API_GUI::XB_check_destroy_overlay_reply (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'destroy_overlay_reply' CRITERION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'destroy_overlay' CRITERION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[10]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['destroy_overlay']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'destroy_overlay'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Adestroy_overlay//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'destroy_overlay'; $retval = XB_API_OM::XB_check_destroy_overlay (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'destroy_overlay' CRITERION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'destroyall_overlays_reply' CRITERION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[11]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['destroyall_overlays_reply']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'destroyall_overlays_reply'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Adestroyall_overlays_reply//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'destroyall_overlays_reply'; $retval = XB_APU_GUI::XB_check_destroyall_overlays_reply (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'destroyall_overlays_reply' CRITERION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'destroyall_overlays' CRITERION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[12]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['destroyall_overlays']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'destroyall_overlays'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Adestroyall_overlays//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'destroyall_overlays'; $retval = XB_API_OM::XB_check_destroyall_overlays (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'destroyall_overlays' CRITERION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'host_choices_reply' NODE ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[13]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['host_choices_reply']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'host_choices_reply'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ahost_choices_reply//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [NODE]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{NODE})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::NODE, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [NODE]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{NODE}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'host_choices_reply'; $cp{nodes} = $item{NODE}; $retval = XB_APU_OM::XB_check_host_choices_reply (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'host_choices_reply' NODE ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'host_choices' CRITERION NODE ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[14]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['host_choices']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'host_choices'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ahost_choices//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [NODE]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{NODE})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::NODE, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [NODE]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{NODE}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'host_choices'; $cp{nodes} = $item{NODE}; $retval = XB_APU_GUI::XB_check_host_choices (\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'host_choices' CRITERION NODE ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'error_reply' CRITERION ')']}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[15]; $text = $_[1]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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: ['error_reply']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'error_reply'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aerror_reply//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) 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{<>}, 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{COMMAND}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); my ($chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = 'error_reply'; $return = \%cp; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'error_reply' CRITERION ')']<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[16]; my $_savetext; @item = (q{COMMAND}); %item = (__RULE__ => q{COMMAND}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{COMMAND}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{COMMAND}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{COMMAND}) 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{COMMAND}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{COMMAND}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::TOPO_TRIPLE { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"TOPO_TRIPLE"}; Parse::RecDescent::_trace(q{Trying rule: [TOPO_TRIPLE]}, Parse::RecDescent::_tracefirst($_[1]), q{TOPO_TRIPLE}) 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: ['(' NODE_NAME '.' IF_NAME LINK_NAME NODE_NAME '.' IF_NAME ')']}, Parse::RecDescent::_tracefirst($_[1]), q{TOPO_TRIPLE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{TOPO_TRIPLE}); %item = (__RULE__ => q{TOPO_TRIPLE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) 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{<>}, 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: [NODE_NAME]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{NODE_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NODE_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NODE_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $item{q{NODE_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['.']}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) 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{<>}, 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: [IF_NAME]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{IF_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::IF_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [IF_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $item{q{IF_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [LINK_NAME]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{LINK_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::LINK_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [LINK_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $item{q{LINK_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [NODE_NAME]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{NODE_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NODE_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NODE_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $item{q{NODE_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['.']}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) 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{<>}, 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: [IF_NAME]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{IF_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::IF_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [IF_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $item{q{IF_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) 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{<>}, 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{TOPO_TRIPLE}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %tt = (); $tt{left_node} = $item[2]; $tt{left_if} = $item[4]; $tt{link_name} = $item{LINK_NAME}; $tt{right_node} = $item[6]; $tt{right_if} = $item[8]; $return = \%tt; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' NODE_NAME '.' IF_NAME LINK_NAME NODE_NAME '.' IF_NAME ')']<<}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: []}, Parse::RecDescent::_tracefirst($_[1]), q{TOPO_TRIPLE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; my $_savetext; @item = (q{TOPO_TRIPLE}); %item = (__RULE__ => q{TOPO_TRIPLE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{TOPO_TRIPLE}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{TOPO_TRIPLE}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{TOPO_TRIPLE}) 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{TOPO_TRIPLE}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{TOPO_TRIPLE}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::META_NODE { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"META_NODE"}; Parse::RecDescent::_trace(q{Trying rule: [META_NODE]}, Parse::RecDescent::_tracefirst($_[1]), q{META_NODE}) 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{META_NODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{META_NODE}); %item = (__RULE__ => q{META_NODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $semerr = ""; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [NODE_NAME ':' CLASS_NAME NODE_PROPS ]}, Parse::RecDescent::_tracefirst($_[1]), q{META_NODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{META_NODE}); %item = (__RULE__ => q{META_NODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [NODE_NAME]}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NODE_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NODE_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $item{q{NODE_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [':']}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) 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{<>}, 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: [CLASS_NAME]}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{CLASS_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::CLASS_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [CLASS_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $item{q{CLASS_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [NODE_PROPS]}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{NODE_PROPS})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NODE_PROPS($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NODE_PROPS]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $item{q{NODE_PROPS}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my (%nl, %pl) = ((), ()); if (!defined ($classes{$item{CLASS_NAME}})) { $semerr = "Class name $item{CLASS_NAME} not previously defined"; goto EXIT; }; $pl{props} = $item{NODE_PROPS}; $pl{props}->{class} = $item{CLASS_NAME}; $pl{interfaces} = XB_API_SUBS::XB_meta_node_imports ($classes{$item{CLASS_NAME}}); if (!$pl{interfaces}) { $semerr = "Class name $item{CLASS_NAME} has an empty exportlist"; goto EXIT; }; $nl{type} = $item{NODE_NAME}; $nl{value} = \%pl; EXIT: if ($semerr) { $return = undef; } else { $return = \%nl; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: [NODE_NAME ':' CLASS_NAME NODE_PROPS ]<<}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{META_NODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; my $_savetext; @item = (q{META_NODE}); %item = (__RULE__ => q{META_NODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{META_NODE}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{META_NODE}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{META_NODE}) 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{META_NODE}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{META_NODE}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::NODE { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"NODE"}; Parse::RecDescent::_trace(q{Trying rule: [NODE]}, Parse::RecDescent::_tracefirst($_[1]), q{NODE}) 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: ['(' 'node' CRITERION TUNNEL ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{NODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{NODE}); %item = (__RULE__ => q{NODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NODE}) 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{<>}, 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: ['node']}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'node'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anode//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [TUNNEL]}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $expectation->is(q{TUNNEL})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::TUNNEL, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [TUNNEL]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $item{q{TUNNEL}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NODE}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{NODE}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %rv = (); my ($href, $clref, $result); $semerr = ""; $clref = $item{CRITERION}; foreach $href (@$clref) { $rv{$href->{type}} = $href->{value}; }; $rv{tunnels} = $item{TUNNEL}; $result = XB_API_GUI::XB_check_node (\%rv); if ($result) { $semerr = $result; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%rv; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'node' CRITERION TUNNEL ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{NODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; my $_savetext; @item = (q{NODE}); %item = (__RULE__ => q{NODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{NODE}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{NODE}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{NODE}) 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{NODE}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{NODE}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::XOL_PROTOCOL { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"XOL_PROTOCOL"}; Parse::RecDescent::_trace(q{Trying rule: [XOL_PROTOCOL]}, Parse::RecDescent::_tracefirst($_[1]), q{XOL_PROTOCOL}) 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{XOL_PROTOCOL}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{XOL_PROTOCOL}); %item = (__RULE__ => q{XOL_PROTOCOL}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $semerr = ""; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [ARGSTRING ]}, Parse::RecDescent::_tracefirst($_[1]), q{XOL_PROTOCOL}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{XOL_PROTOCOL}); %item = (__RULE__ => q{XOL_PROTOCOL}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [ARGSTRING]}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::ARGSTRING($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [ARGSTRING]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $item{q{ARGSTRING}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { if ($item{ARGSTRING} !~ /^[0-9]+\.[A-Za-z0-9-]+$/) { $semerr = "Protocol number has format: number.alphanumeric."; $return = undef; } else { $return = $item{ARGSTRING}; }; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: [ARGSTRING ]<<}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{XOL_PROTOCOL}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; my $_savetext; @item = (q{XOL_PROTOCOL}); %item = (__RULE__ => q{XOL_PROTOCOL}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{XOL_PROTOCOL}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{XOL_PROTOCOL}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{XOL_PROTOCOL}) 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{XOL_PROTOCOL}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{XOL_PROTOCOL}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::CLASS { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"CLASS"}; Parse::RecDescent::_trace(q{Trying rule: [CLASS]}, Parse::RecDescent::_tracefirst($_[1]), q{CLASS}) 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{CLASS}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{CLASS}); %item = (__RULE__ => q{CLASS}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $semerr = ""; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'class' CLASS_NAME NETWORK ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{CLASS}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{CLASS}); %item = (__RULE__ => q{CLASS}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{CLASS}) 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{<>}, 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: ['class']}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'class'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aclass//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CLASS_NAME]}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{CLASS_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::CLASS_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [CLASS_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $item{q{CLASS_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [NETWORK]}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{NETWORK})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NETWORK($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NETWORK]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $item{q{NETWORK}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{CLASS}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{CLASS}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %cp = (); $cp{class} = $item{CLASS_NAME}; $cp{network} = $item{NETWORK}; if (!XB_API_SUBS::XB_class_consistency (\%cp, \$semerr)) { goto EXIT }; if (defined $classes{$item{CLASS_NAME}}) { $semerr = "Class $item{CLASS_NAME} has been defined already"; goto EXIT; }; $classes{$item{CLASS_NAME}} = $item{NETWORK}; EXIT: if ($semerr) { $return = undef; } else { $return = \%cp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'class' CLASS_NAME NETWORK ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{CLASS}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; my $_savetext; @item = (q{CLASS}); %item = (__RULE__ => q{CLASS}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{CLASS}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{CLASS}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{CLASS}) 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{CLASS}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{CLASS}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::SIMPLE_NODE { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"SIMPLE_NODE"}; Parse::RecDescent::_trace(q{Trying rule: [SIMPLE_NODE]}, Parse::RecDescent::_tracefirst($_[1]), q{SIMPLE_NODE}) 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: [NODE_NAME NODE_PROPS INTERFACES]}, Parse::RecDescent::_tracefirst($_[1]), q{SIMPLE_NODE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{SIMPLE_NODE}); %item = (__RULE__ => q{SIMPLE_NODE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [NODE_NAME]}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NODE_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NODE_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; $item{q{NODE_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [NODE_PROPS]}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{NODE_PROPS})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NODE_PROPS($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NODE_PROPS]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; $item{q{NODE_PROPS}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [INTERFACES]}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{INTERFACES})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::INTERFACES($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [INTERFACES]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; $item{q{INTERFACES}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %nl = (); my %pl = (); $pl{props} = $item{NODE_PROPS}; $pl{props}->{class} = undef; $pl{interfaces} = $item{INTERFACES}; $nl{type} = $item{NODE_NAME}; $nl{value} = \%pl; $return = \%nl; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: [NODE_NAME NODE_PROPS INTERFACES]<<}, Parse::RecDescent::_tracefirst($text), q{SIMPLE_NODE}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{SIMPLE_NODE}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{SIMPLE_NODE}) 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{SIMPLE_NODE}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{SIMPLE_NODE}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::ARGSTRING { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"ARGSTRING"}; Parse::RecDescent::_trace(q{Trying rule: [ARGSTRING]}, Parse::RecDescent::_tracefirst($_[1]), q{ARGSTRING}) 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{ARGSTRING}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{ARGSTRING}); %item = (__RULE__ => q{ARGSTRING}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/"[^"]+"/]}, Parse::RecDescent::_tracefirst($text), q{ARGSTRING}) 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{<>}, 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{Trying action}, Parse::RecDescent::_tracefirst($text), q{ARGSTRING}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $item[1] =~ s/"//g; $return = $item[1]; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: [/"[^"]+"/]<<}, Parse::RecDescent::_tracefirst($text), q{ARGSTRING}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/'[^']+'/]}, Parse::RecDescent::_tracefirst($_[1]), q{ARGSTRING}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{ARGSTRING}); %item = (__RULE__ => q{ARGSTRING}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/'[^']+'/]}, Parse::RecDescent::_tracefirst($text), q{ARGSTRING}) 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{<>}, 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{Trying action}, Parse::RecDescent::_tracefirst($text), q{ARGSTRING}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $item[1] =~ s/'//g; $return = $item[1]; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: [/'[^']+'/]<<}, Parse::RecDescent::_tracefirst($text), q{ARGSTRING}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/[^()\\s]+/]}, Parse::RecDescent::_tracefirst($_[1]), q{ARGSTRING}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{ARGSTRING}); %item = (__RULE__ => q{ARGSTRING}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/[^()\\s]+/]}, Parse::RecDescent::_tracefirst($text), q{ARGSTRING}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[^()\s]+)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, 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: [/[^()\\s]+/]<<}, Parse::RecDescent::_tracefirst($text), q{ARGSTRING}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{ARGSTRING}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{ARGSTRING}) 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{ARGSTRING}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{ARGSTRING}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::LINK { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"LINK"}; Parse::RecDescent::_trace(q{Trying rule: [LINK]}, Parse::RecDescent::_tracefirst($_[1]), q{LINK}) 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: ['(' 'link' LINK_NAME CRITERION ')']}, Parse::RecDescent::_tracefirst($_[1]), q{LINK}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{LINK}); %item = (__RULE__ => q{LINK}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{LINK}) 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{<>}, 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: ['link']}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'link'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Alink//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [LINK_NAME]}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{LINK_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::LINK_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [LINK_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; $item{q{LINK_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{LINK}) 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{<>}, 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{LINK}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %ln = (); my %pl = (); my ($rv, $ix); $ix = 0; while (defined $item{CRITERION}[$ix]) { $rv = $item{CRITERION}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $ln{type} = $item{LINK_NAME}; $ln{value} = \%pl; $return = \%ln; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'link' LINK_NAME CRITERION ')']<<}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: []}, Parse::RecDescent::_tracefirst($_[1]), q{LINK}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; my $_savetext; @item = (q{LINK}); %item = (__RULE__ => q{LINK}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{LINK}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{LINK}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{LINK}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{LINK}) 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{LINK}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{LINK}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::CLASS_NAME { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"CLASS_NAME"}; Parse::RecDescent::_trace(q{Trying rule: [CLASS_NAME]}, Parse::RecDescent::_tracefirst($_[1]), q{CLASS_NAME}) 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: [/[_A-Za-z0-9-]+/]}, Parse::RecDescent::_tracefirst($_[1]), q{CLASS_NAME}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{CLASS_NAME}); %item = (__RULE__ => q{CLASS_NAME}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/[_A-Za-z0-9-]+/]}, Parse::RecDescent::_tracefirst($text), q{CLASS_NAME}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[_A-Za-z0-9-]+)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, 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: [/[_A-Za-z0-9-]+/]<<}, Parse::RecDescent::_tracefirst($text), q{CLASS_NAME}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{CLASS_NAME}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{CLASS_NAME}) 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{CLASS_NAME}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{CLASS_NAME}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::ROOT_DECLARATION { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"ROOT_DECLARATION"}; Parse::RecDescent::_trace(q{Trying rule: [ROOT_DECLARATION]}, Parse::RecDescent::_tracefirst($_[1]), q{ROOT_DECLARATION}) 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: ['(' 'root' CLASS_NAME OBJECT_NAME ')']}, Parse::RecDescent::_tracefirst($_[1]), q{ROOT_DECLARATION}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{ROOT_DECLARATION}); %item = (__RULE__ => q{ROOT_DECLARATION}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) 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{<>}, 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: ['root']}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'root'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aroot//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CLASS_NAME]}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{CLASS_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::CLASS_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [CLASS_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; $item{q{CLASS_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [OBJECT_NAME]}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{OBJECT_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::OBJECT_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [OBJECT_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; $item{q{OBJECT_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) 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{<>}, 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{ROOT_DECLARATION}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %objref = (); $objref{directive} = 'root'; $objref{class_name} = $item{CLASS_NAME}; $objref{object_name} = $item{OBJECT_NAME}; $return = \%objref; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'root' CLASS_NAME OBJECT_NAME ')']<<}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: []}, Parse::RecDescent::_tracefirst($_[1]), q{ROOT_DECLARATION}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; my $_savetext; @item = (q{ROOT_DECLARATION}); %item = (__RULE__ => q{ROOT_DECLARATION}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{ROOT_DECLARATION}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{ROOT_DECLARATION}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{ROOT_DECLARATION}) 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{ROOT_DECLARATION}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{ROOT_DECLARATION}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::END_OF_FILE { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"END_OF_FILE"}; Parse::RecDescent::_trace(q{Trying rule: [END_OF_FILE]}, Parse::RecDescent::_tracefirst($_[1]), q{END_OF_FILE}) 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: [/\\Z/]}, Parse::RecDescent::_tracefirst($_[1]), q{END_OF_FILE}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{END_OF_FILE}); %item = (__RULE__ => q{END_OF_FILE}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/\\Z/]}, Parse::RecDescent::_tracefirst($text), q{END_OF_FILE}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\Z)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, 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: [/\\Z/]<<}, Parse::RecDescent::_tracefirst($text), q{END_OF_FILE}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{END_OF_FILE}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{END_OF_FILE}) 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{END_OF_FILE}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{END_OF_FILE}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::OBJECT_NAME { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"OBJECT_NAME"}; Parse::RecDescent::_trace(q{Trying rule: [OBJECT_NAME]}, Parse::RecDescent::_tracefirst($_[1]), q{OBJECT_NAME}) 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: [/[_A-Za-z0-9-.]+/]}, Parse::RecDescent::_tracefirst($_[1]), q{OBJECT_NAME}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{OBJECT_NAME}); %item = (__RULE__ => q{OBJECT_NAME}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/[_A-Za-z0-9-.]+/]}, Parse::RecDescent::_tracefirst($text), q{OBJECT_NAME}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[_A-Za-z0-9-.]+)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, 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: [/[_A-Za-z0-9-.]+/]<<}, Parse::RecDescent::_tracefirst($text), q{OBJECT_NAME}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{OBJECT_NAME}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{OBJECT_NAME}) 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{OBJECT_NAME}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{OBJECT_NAME}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::NODE_PROPS { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"NODE_PROPS"}; Parse::RecDescent::_trace(q{Trying rule: [NODE_PROPS]}, Parse::RecDescent::_tracefirst($_[1]), q{NODE_PROPS}) 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: ['(' 'nodeprops' CRITERION ')']}, Parse::RecDescent::_tracefirst($_[1]), q{NODE_PROPS}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{NODE_PROPS}); %item = (__RULE__ => q{NODE_PROPS}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{NODE_PROPS}) 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{<>}, 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: ['nodeprops']}, Parse::RecDescent::_tracefirst($text), q{NODE_PROPS}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'nodeprops'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anodeprops//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [CRITERION]}, Parse::RecDescent::_tracefirst($text), q{NODE_PROPS}) if defined $::RD_TRACE; $expectation->is(q{CRITERION})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CRITERION, 0, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NODE_PROPS}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CRITERION]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NODE_PROPS}) if defined $::RD_TRACE; $item{q{CRITERION}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{NODE_PROPS}) 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{<>}, 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{NODE_PROPS}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %pl = (); my ($rv, $ix); $ix = 0; while (defined $item{CRITERION}[$ix]) { $rv = $item{CRITERION}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $return = \%pl; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'nodeprops' CRITERION ')']<<}, Parse::RecDescent::_tracefirst($text), q{NODE_PROPS}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{NODE_PROPS}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{NODE_PROPS}) 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{NODE_PROPS}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{NODE_PROPS}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::IF_NAME { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"IF_NAME"}; Parse::RecDescent::_trace(q{Trying rule: [IF_NAME]}, Parse::RecDescent::_tracefirst($_[1]), q{IF_NAME}) 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: [/[_A-Za-z0-9-]+/]}, Parse::RecDescent::_tracefirst($_[1]), q{IF_NAME}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{IF_NAME}); %item = (__RULE__ => q{IF_NAME}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/[_A-Za-z0-9-]+/]}, Parse::RecDescent::_tracefirst($text), q{IF_NAME}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[_A-Za-z0-9-]+)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, 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: [/[_A-Za-z0-9-]+/]<<}, Parse::RecDescent::_tracefirst($text), q{IF_NAME}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{IF_NAME}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{IF_NAME}) 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{IF_NAME}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{IF_NAME}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::LINK_NAME { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"LINK_NAME"}; Parse::RecDescent::_trace(q{Trying rule: [LINK_NAME]}, Parse::RecDescent::_tracefirst($_[1]), q{LINK_NAME}) 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: [/[_A-Za-z0-9-]+/]}, Parse::RecDescent::_tracefirst($_[1]), q{LINK_NAME}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{LINK_NAME}); %item = (__RULE__ => q{LINK_NAME}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/[_A-Za-z0-9-]+/]}, Parse::RecDescent::_tracefirst($text), q{LINK_NAME}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[_A-Za-z0-9-]+)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, 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: [/[_A-Za-z0-9-]+/]<<}, Parse::RecDescent::_tracefirst($text), q{LINK_NAME}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{LINK_NAME}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{LINK_NAME}) 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{LINK_NAME}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{LINK_NAME}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::NETWORK { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"NETWORK"}; Parse::RecDescent::_trace(q{Trying rule: [NETWORK]}, Parse::RecDescent::_tracefirst($_[1]), q{NETWORK}) 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: [NET_PROPS NET_PART]}, Parse::RecDescent::_tracefirst($_[1]), q{NETWORK}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{NETWORK}); %item = (__RULE__ => q{NETWORK}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [NET_PROPS]}, Parse::RecDescent::_tracefirst($text), q{NETWORK}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NET_PROPS($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NETWORK}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NET_PROPS]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{NETWORK}) if defined $::RD_TRACE; $item{q{NET_PROPS}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [NET_PART]}, Parse::RecDescent::_tracefirst($text), q{NETWORK}) if defined $::RD_TRACE; $expectation->is(q{NET_PART})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::NET_PART, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{NETWORK}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [NET_PART]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{NETWORK}) if defined $::RD_TRACE; $item{q{NET_PART}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{NETWORK}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %nwp = (); my ($rv, $ix); my %pl = (); $ix = 0; while (defined $item{NET_PART}[$ix]) { $rv = $item{NET_PART}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $nwp{props} = $item{NET_PROPS}; $nwp{net_parts} = \%pl;; EXIT: if ($semerr) { $return = undef; } else { $return = \%nwp; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: [NET_PROPS NET_PART]<<}, Parse::RecDescent::_tracefirst($text), q{NETWORK}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{NETWORK}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{NETWORK}) 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{NETWORK}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{NETWORK}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::INTERFACES { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"INTERFACES"}; Parse::RecDescent::_trace(q{Trying rule: [INTERFACES]}, Parse::RecDescent::_tracefirst($_[1]), q{INTERFACES}) 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: ['(' 'interfaces' INTERFACE ')']}, Parse::RecDescent::_tracefirst($_[1]), q{INTERFACES}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{INTERFACES}); %item = (__RULE__ => q{INTERFACES}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) 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{<>}, 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: ['interfaces']}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'interfaces'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ainterfaces//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [INTERFACE]}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) if defined $::RD_TRACE; $expectation->is(q{INTERFACE})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::INTERFACE, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [INTERFACE]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) if defined $::RD_TRACE; $item{q{INTERFACE}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) 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{<>}, 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{INTERFACES}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %ifpl = (); my ($rv, $ix); $ix = 0; while (defined $item{INTERFACE}[$ix]) { $rv = $item{INTERFACE}[$ix]; $ifpl{$rv->{type}} = $rv->{value}; $ix++; } $return = \%ifpl; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'interfaces' INTERFACE ')']<<}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: []}, Parse::RecDescent::_tracefirst($_[1]), q{INTERFACES}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; my $_savetext; @item = (q{INTERFACES}); %item = (__RULE__ => q{INTERFACES}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{INTERFACES}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{INTERFACES}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{INTERFACES}) 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{INTERFACES}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{INTERFACES}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::XOL_PROGRAM { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"XOL_PROGRAM"}; Parse::RecDescent::_trace(q{Trying rule: [XOL_PROGRAM]}, Parse::RecDescent::_tracefirst($_[1]), q{XOL_PROGRAM}) 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{XOL_PROGRAM}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{XOL_PROGRAM}); %item = (__RULE__ => q{XOL_PROGRAM}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $semerr = ""; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' 'xol' XOL_PROTOCOL CLASS ROOT_DECLARATION ')' ]}, Parse::RecDescent::_tracefirst($_[1]), q{XOL_PROGRAM}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{XOL_PROGRAM}); %item = (__RULE__ => q{XOL_PROGRAM}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) 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{<>}, 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: ['xol']}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'xol'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Axol//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, 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: [XOL_PROTOCOL]}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{XOL_PROTOCOL})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::XOL_PROTOCOL($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [XOL_PROTOCOL]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $item{q{XOL_PROTOCOL}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [CLASS]}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $expectation->is(q{CLASS})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::namespace000001::CLASS, 1, 100000000, $_noactions,$expectation,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [CLASS]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $item{q{CLASS}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying subrule: [ROOT_DECLARATION]}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{ROOT_DECLARATION})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::ROOT_DECLARATION($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [ROOT_DECLARATION]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $item{q{ROOT_DECLARATION}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) 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{<>}, 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %program = (); $program{xol_protocol} = $item{XOL_PROTOCOL}; %classes = (); $program{classes} = $item{CLASS}; $program{directive} = $item{ROOT_DECLARATION}; if (!XB_API_SUBS::XB_directives_consistency ( \%program, \$semerr ) ) { goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \%program; } }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' 'xol' XOL_PROTOCOL CLASS ROOT_DECLARATION ')' ]<<}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: [ ]}, Parse::RecDescent::_tracefirst($_[1]), q{XOL_PROGRAM}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; my $_savetext; @item = (q{XOL_PROGRAM}); %item = (__RULE__ => q{XOL_PROGRAM}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $_tok = do { if ($commit) { do {push @{$thisparser->{errors}}, [qq{$semerr},$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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Rejecting production<< (found )}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $_tok = undef; last unless defined $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ ]<<}, Parse::RecDescent::_tracefirst($text), q{XOL_PROGRAM}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{XOL_PROGRAM}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{XOL_PROGRAM}) 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{XOL_PROGRAM}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{XOL_PROGRAM}) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::namespace000001::TOPO_ENDPOINT { my $thisparser = $_[0]; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"TOPO_ENDPOINT"}; Parse::RecDescent::_trace(q{Trying rule: [TOPO_ENDPOINT]}, Parse::RecDescent::_tracefirst($_[1]), q{TOPO_ENDPOINT}) 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: ['(' NODE_NAME '.' IF_NAME ')']}, Parse::RecDescent::_tracefirst($_[1]), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{TOPO_ENDPOINT}); %item = (__RULE__ => q{TOPO_ENDPOINT}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) 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{<>}, 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: [NODE_NAME]}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{NODE_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::NODE_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [NODE_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; $item{q{NODE_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['.']}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) 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{<>}, 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: [IF_NAME]}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{IF_NAME})->at($text); unless (defined ($_tok = Parse::RecDescent::namespace000001::IF_NAME($thisparser,$text,$repeating,$_noactions,undef))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [IF_NAME]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; $item{q{IF_NAME}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) 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{<>}, 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{TOPO_ENDPOINT}) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my %tt = (); $tt{node} = $item{NODE_NAME}; $tt{if} = $item{IF_NAME}; $return = \%tt; }; unless (defined $_tok) { Parse::RecDescent::_trace(q{<> (return value: [undef])}) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched action<< (return value: [} . $_tok . q{])}, $text) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' NODE_NAME '.' IF_NAME ')']<<}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched) { Parse::RecDescent::_trace(q{Trying production: []}, Parse::RecDescent::_tracefirst($_[1]), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; my $_savetext; @item = (q{TOPO_ENDPOINT}); %item = (__RULE__ => q{TOPO_ENDPOINT}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) 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{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; } last unless defined $_tok; push @item, $item{__DIRECTIVE1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($return) || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{TOPO_ENDPOINT}) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{TOPO_ENDPOINT}) 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{TOPO_ENDPOINT}); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{TOPO_ENDPOINT}) } $_[1] = $text; return $return; } } package XB_API_parser; sub new { my $self = bless( { '_AUTOTREE' => undef, 'localvars' => '', 'startcode' => '', '_check' => { 'thisoffset' => '', 'itempos' => '', 'prevoffset' => '', 'prevline' => '', 'prevcolumn' => '', 'thiscolumn' => '' }, 'namespace' => 'Parse::RecDescent::namespace000001', '_AUTOACTION' => undef, 'rules' => { 'CRITERION' => bless( { 'impcount' => 0, 'calls' => [ 'ARGSTRING' ], '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' => 932 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'ARGSTRING', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 932 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'ARGSTRING', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 932 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING2__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 932 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 933, 'code' => '{ my %nc = (); $nc{type} = $item[2]; $nc{value} = $item[3]; $return = \\%nc; }' }, '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' => 940 }, 'Parse::RecDescent::Error' ) ], 'line' => 940 }, 'Parse::RecDescent::Production' ) ], 'name' => 'CRITERION', 'vars' => '', 'changed' => 0, 'line' => 932 }, 'Parse::RecDescent::Rule' ), 'INTERFACE' => bless( { 'impcount' => 0, 'calls' => [ 'IF_NAME', 'CRITERION' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 849 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'interface', 'hashname' => '__STRING2__', 'description' => '\'interface\'', 'lookahead' => 0, 'line' => 849 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'IF_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 849 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 849 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 849 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 850, 'code' => '{ my %if = (); my ($rv, $ix); my %pl = (); $ix = 0; while (defined $item{CRITERION}[$ix]) { $rv = $item{CRITERION}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $if{type} = $item{IF_NAME}; $if{value} = \\%pl; $return = \\%if; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'INTERFACE', 'vars' => '', 'changed' => 0, 'line' => 849 }, 'Parse::RecDescent::Rule' ), 'NET_PART' => bless( { 'impcount' => 0, 'calls' => [ 'NETNODE', 'LINK', 'TOPO_TRIPLE', 'TOPO_ENDPOINT' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 686 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'nodelist', 'hashname' => '__STRING2__', 'description' => '\'nodelist\'', 'lookahead' => 0, 'line' => 686 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'NETNODE', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 686 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 686 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 687, 'code' => '{ my %np = (); my ($rv, $ix); my %nodes = (); $ix = 0; while (defined $item{NETNODE}[$ix]) { $rv = $item{NETNODE}[$ix]; $nodes{$rv->{type}} = $rv->{value}; $ix++; } $np{type} = \'nodes\'; $np{value} = \\%nodes; $return = \\%np; }' }, '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' => 706 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'linklist', 'hashname' => '__STRING2__', 'description' => '\'linklist\'', 'lookahead' => 0, 'line' => 706 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'LINK', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 706 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 706 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 707, 'code' => '{ my %np = (); my ($rv, $ix); my %links = (); $ix = 0; while (defined $item{LINK}[$ix]) { $rv = $item{LINK}[$ix]; $links{$rv->{type}} = $rv->{value}; $ix++; } $np{type} = \'links\'; $np{value} = \\%links; $return = \\%np; }' }, 'Parse::RecDescent::Action' ) ], 'line' => 706 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 726 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'netlist', 'hashname' => '__STRING2__', 'description' => '\'netlist\'', 'lookahead' => 0, 'line' => 726 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'TOPO_TRIPLE', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 726 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 726 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 727, 'code' => '{ my %np = (); $np{type} = \'netlist\'; $np{value} = $item{TOPO_TRIPLE}; $return = \\%np; }' }, 'Parse::RecDescent::Action' ) ], 'line' => 726 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 737 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'exportlist', 'hashname' => '__STRING2__', 'description' => '\'exportlist\'', 'lookahead' => 0, 'line' => 737 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'TOPO_ENDPOINT', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 737 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 737 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 738, 'code' => '{ my %np = (); $np{type} = \'exportlist\'; $np{value} = $item{TOPO_ENDPOINT}; $return = \\%np; }' }, 'Parse::RecDescent::Action' ) ], 'line' => 737 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '4', 'strcount' => 0, 'dircount' => 1, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '', 'lookahead' => 0, 'line' => 747 }, 'Parse::RecDescent::Error' ) ], 'line' => 747 }, 'Parse::RecDescent::Production' ) ], 'name' => 'NET_PART', 'vars' => '', 'changed' => 0, 'line' => 686 }, 'Parse::RecDescent::Rule' ), 'NODE_NAME' => bless( { 'impcount' => 0, 'calls' => [], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'description' => '/[_A-Za-z0-9-]+/', 'rdelim' => '/', 'pattern' => '[_A-Za-z0-9-]+', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 968 }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'NODE_NAME', 'vars' => '', 'changed' => 0, 'line' => 968 }, 'Parse::RecDescent::Rule' ), 'NET_PROPS' => bless( { 'impcount' => 0, 'calls' => [ 'CRITERION' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 669 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'netprops', 'hashname' => '__STRING2__', 'description' => '\'netprops\'', 'lookahead' => 0, 'line' => 669 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 669 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 669 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 670, 'code' => '{ my %pl = (); my ($rv, $ix); $ix = 0; while (defined $item{CRITERION}[$ix]) { $rv = $item{CRITERION}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $return = \\%pl; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'NET_PROPS', 'vars' => '', 'changed' => 0, 'line' => 669 }, 'Parse::RecDescent::Rule' ), 'TUNNEL' => bless( { 'impcount' => 0, 'calls' => [ 'CRITERION' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 562 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'tunnel', 'hashname' => '__STRING2__', 'description' => '\'tunnel\'', 'lookahead' => 0, 'line' => 562 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 562 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 562 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 562, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 563, 'code' => '{ my %rv = (); my ($href, $clref, $result); $semerr = ""; $clref = $item{CRITERION}; foreach $href (@$clref) { $rv{$href->{type}} = $href->{value}; }; $result = XB_API_GUI::XB_check_tunnel (\\%rv); if ($result) { $semerr = $result; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%rv; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 585 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 585 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 585 }, 'Parse::RecDescent::Production' ) ], 'name' => 'TUNNEL', 'vars' => '', 'changed' => 0, 'line' => 562 }, 'Parse::RecDescent::Rule' ), 'API' => bless( { 'impcount' => 0, 'calls' => [ 'ARGSTRING', 'CREDENTIAL', 'COMMAND', 'END_OF_FILE' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 8, 'code' => '{ $semerr = ""; }' }, 'Parse::RecDescent::Action' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 8 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 10 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'xbone', 'hashname' => '__STRING2__', 'description' => '\'xbone\'', 'lookahead' => 0, 'line' => 10 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'ARGSTRING', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 10 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'ARGSTRING', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 10 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'CREDENTIAL', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 10 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'COMMAND', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 10 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 10, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 11, 'code' => '{ my %api = (); my $result = undef; $result = \\%api; $api{protocol} = $item[3]; $api{release} = $item[4]; $api{credential} = $item{CREDENTIAL}; $api{command} = $item{COMMAND}; if ($api{protocol} !~ /^[0-9]+\\.[A-Za-z0-9-]+$/) { $semerr = "ERROR: language protocol number has format: number.alphanumeric\\n"; goto EXIT; }; if ($api{release} !~ /^[0-9]+\\.[A-Za-z-0-9-]+$/) { $semerr = "ERROR: xbone version number has format: number.alphanumeric\\n"; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%api; } }' }, 'Parse::RecDescent::Action' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 42 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'END_OF_FILE', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 42 }, 'Parse::RecDescent::Subrule' ) ], 'line' => 10 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 44 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 44 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 44 }, 'Parse::RecDescent::Production' ) ], 'name' => 'API', 'vars' => '', 'changed' => 0, 'line' => 8 }, 'Parse::RecDescent::Rule' ), 'CREDENTIAL' => bless( { 'impcount' => 0, 'calls' => [ 'CRITERION' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 47, 'code' => '{ $semerr = ""; }' }, 'Parse::RecDescent::Action' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 47 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 49 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'credential', 'hashname' => '__STRING2__', 'description' => '\'credential\'', 'lookahead' => 0, 'line' => 49 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 49, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 49 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 50, 'code' => '{ my %cp = (); my ($chref, $clref, $key); $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; ################################## # Perform keyword existence checks ################################## my (@credential_keys) = ( \'user_name\', \'user_email\', \'auth_type\' ); foreach $key (@credential_keys) { if (!exists ($cp{$key})) { $semerr = "Missing $key keyword in credentials."; }; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 76 }, 'Parse::RecDescent::Literal' ) ], 'line' => 49 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 78 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 78 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 78 }, 'Parse::RecDescent::Production' ) ], 'name' => 'CREDENTIAL', 'vars' => '', 'changed' => 0, 'line' => 47 }, 'Parse::RecDescent::Rule' ), 'NETNODE' => bless( { 'impcount' => 0, 'calls' => [ 'SIMPLE_NODE', 'META_NODE' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 750 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'node', 'hashname' => '__STRING2__', 'description' => '\'node\'', 'lookahead' => 0, 'line' => 750 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'SIMPLE_NODE', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 750 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 750 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 751, 'code' => '{ $return = $item{SIMPLE_NODE}; }' }, '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' => 754 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'node', 'hashname' => '__STRING2__', 'description' => '\'node\'', 'lookahead' => 0, 'line' => 754 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'META_NODE', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 754 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 754 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 755, 'code' => '{ $return = $item{META_NODE}; }' }, 'Parse::RecDescent::Action' ) ], 'line' => 754 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 1, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '', 'lookahead' => 0, 'line' => 759 }, 'Parse::RecDescent::Error' ) ], 'line' => 759 }, 'Parse::RecDescent::Production' ) ], 'name' => 'NETNODE', 'vars' => '', 'changed' => 0, 'line' => 750 }, 'Parse::RecDescent::Rule' ), 'COMMAND' => bless( { 'impcount' => 0, 'calls' => [ 'CRITERION', 'NODE', 'XOL_PROGRAM', 'ARGSTRING' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 83, 'code' => '{ $semerr = ""; }' }, 'Parse::RecDescent::Action' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 83 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 85 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'create_overlay_reply', 'hashname' => '__STRING2__', 'description' => '\'create_overlay_reply\'', 'lookahead' => 0, 'line' => 85 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 85 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'NODE', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 85 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 85 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 85, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 86, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'create_overlay_reply\'; $cp{nodes} = $item{NODE}; $retval = XB_API_GUI::XB_check_create_reply (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 85 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 116 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'create_overlay', 'hashname' => '__STRING2__', 'description' => '\'create_overlay\'', 'lookahead' => 0, 'line' => 116 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 116 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'XOL_PROGRAM', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 116 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 116 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 116, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 117, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $retval = undef; $cp{command} = \'create_overlay\'; $cp{xol_program} = $item{XOL_PROGRAM}; $retval = XB_API_OM::XB_check_create (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 116 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 147 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'list_overlays_reply', 'hashname' => '__STRING2__', 'description' => '\'list_overlays_reply\'', 'lookahead' => 0, 'line' => 147 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => 147 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'ARGSTRING', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 147 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 147 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 147, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 148, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'list_overlays_reply\'; $cp{overlays} = $item{ARGSTRING}; $retval = XB_API_GUI::XB_check_list_overlays_reply (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 147 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '4', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 178 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'list_overlays', 'hashname' => '__STRING2__', 'description' => '\'list_overlays\'', 'lookahead' => 0, 'line' => 178 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 178 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 178 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 178, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 179, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'list_overlays\'; $retval = XB_API_OM::XB_check_list_overlays (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 178 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '5', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 208 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'overlay_status_reply', 'hashname' => '__STRING2__', 'description' => '\'overlay_status_reply\'', 'lookahead' => 0, 'line' => 208 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 208 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'NODE', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 208 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 208 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 208, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 209, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'overlay_status_reply\'; $cp{nodes} = $item{NODE}; $retval = XB_API_GUI::XB_check_overlay_status_reply (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 208 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '6', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 239 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'overlay_status', 'hashname' => '__STRING2__', 'description' => '\'overlay_status\'', 'lookahead' => 0, 'line' => 239 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 239 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 239 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 239, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 240, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'overlay_status\'; $retval = XB_API_OM::XB_check_overlay_status (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 239 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '7', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 269 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'discover_daemons_reply', 'hashname' => '__STRING2__', 'description' => '\'discover_daemons_reply\'', 'lookahead' => 0, 'line' => 269 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 269 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'NODE', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 269 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 269 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 269, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 270, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'discover_daemons_reply\'; $cp{nodes} = $item{NODE}; $retval = XB_API_GUI::XB_check_discover_daemons_reply (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 269 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '8', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 300 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'discover_daemons', 'hashname' => '__STRING2__', 'description' => '\'discover_daemons\'', 'lookahead' => 0, 'line' => 300 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 300 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 300 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 300, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 301, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'discover_daemons\'; $retval = XB_API_OM::XB_check_discover_daemons (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 300 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '9', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 330 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'destroy_overlay_reply', 'hashname' => '__STRING2__', 'description' => '\'destroy_overlay_reply\'', 'lookahead' => 0, 'line' => 330 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 330 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 330 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 330, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 331, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'destroy_overlay_reply\'; $retval = XB_API_GUI::XB_check_destroy_overlay_reply (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 330 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '10', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 360 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'destroy_overlay', 'hashname' => '__STRING2__', 'description' => '\'destroy_overlay\'', 'lookahead' => 0, 'line' => 360 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 360 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 360 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 360, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 361, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'destroy_overlay\'; $retval = XB_API_OM::XB_check_destroy_overlay (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 360 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '11', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 390 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'destroyall_overlays_reply', 'hashname' => '__STRING2__', 'description' => '\'destroyall_overlays_reply\'', 'lookahead' => 0, 'line' => 390 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 390 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 390 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 390, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 391, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'destroyall_overlays_reply\'; $retval = XB_APU_GUI::XB_check_destroyall_overlays_reply (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 390 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '12', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 420 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'destroyall_overlays', 'hashname' => '__STRING2__', 'description' => '\'destroyall_overlays\'', 'lookahead' => 0, 'line' => 420 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 420 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 420 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 420, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 421, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'destroyall_overlays\'; $retval = XB_API_OM::XB_check_destroyall_overlays (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 420 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '13', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 450 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'host_choices_reply', 'hashname' => '__STRING2__', 'description' => '\'host_choices_reply\'', 'lookahead' => 0, 'line' => 450 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'NODE', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 450 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 450 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 450, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 451, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'host_choices_reply\'; $cp{nodes} = $item{NODE}; $retval = XB_APU_OM::XB_check_host_choices_reply (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 450 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '14', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 481 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'host_choices', 'hashname' => '__STRING2__', 'description' => '\'host_choices\'', 'lookahead' => 0, 'line' => 481 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 481 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'NODE', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 481 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 481 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 481, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 482, 'code' => '{ my %cp = (); my ($retval, $chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'host_choices\'; $cp{nodes} = $item{NODE}; $retval = XB_APU_GUI::XB_check_host_choices (\\%cp); if ($retval) { $semerr = $retval; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 481 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '15', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 512 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'error_reply', 'hashname' => '__STRING2__', 'description' => '\'error_reply\'', 'lookahead' => 0, 'line' => 512 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 512 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 512 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 513, 'code' => '{ my %cp = (); my ($chref, $clref); ################################### # Gather CRITERION name/value pairs ################################### $semerr = ""; $clref = $item{CRITERION}; foreach $chref (@$clref) { $cp{$chref->{type}} = $chref->{value}; }; $cp{command} = \'error_reply\'; $return = \\%cp; }' }, 'Parse::RecDescent::Action' ) ], 'line' => 512 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '16', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 530 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 530 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 530 }, 'Parse::RecDescent::Production' ) ], 'name' => 'COMMAND', 'vars' => '', 'changed' => 0, 'line' => 83 }, 'Parse::RecDescent::Rule' ), 'TOPO_TRIPLE' => bless( { 'impcount' => 0, 'calls' => [ 'NODE_NAME', 'IF_NAME', 'LINK_NAME' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 4, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'NODE_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '.', 'hashname' => '__STRING2__', 'description' => '\'.\'', 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'IF_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'LINK_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'NODE_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '.', 'hashname' => '__STRING3__', 'description' => '\'.\'', 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'IF_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING4__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 890 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 891, 'code' => '{ my %tt = (); $tt{left_node} = $item[2]; $tt{left_if} = $item[4]; $tt{link_name} = $item{LINK_NAME}; $tt{right_node} = $item[6]; $tt{right_if} = $item[8]; $return = \\%tt; }' }, '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' => 903 }, 'Parse::RecDescent::Error' ) ], 'line' => 903 }, 'Parse::RecDescent::Production' ) ], 'name' => 'TOPO_TRIPLE', 'vars' => '', 'changed' => 0, 'line' => 890 }, 'Parse::RecDescent::Rule' ), 'META_NODE' => bless( { 'impcount' => 0, 'calls' => [ 'NODE_NAME', 'CLASS_NAME', 'NODE_PROPS' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 777, 'code' => '{ $semerr = ""; }' }, 'Parse::RecDescent::Action' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 777 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'NODE_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 779 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ':', 'hashname' => '__STRING1__', 'description' => '\':\'', 'lookahead' => 0, 'line' => 779 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CLASS_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 779 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'NODE_PROPS', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 779 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 779, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 780, 'code' => '{ my (%nl, %pl) = ((), ()); if (!defined ($classes{$item{CLASS_NAME}})) { $semerr = "Class name $item{CLASS_NAME} not previously defined"; goto EXIT; }; $pl{props} = $item{NODE_PROPS}; $pl{props}->{class} = $item{CLASS_NAME}; $pl{interfaces} = XB_API_SUBS::XB_meta_node_imports ($classes{$item{CLASS_NAME}}); if (!$pl{interfaces}) { $semerr = "Class name $item{CLASS_NAME} has an empty exportlist"; goto EXIT; }; $nl{type} = $item{NODE_NAME}; $nl{value} = \\%pl; EXIT: if ($semerr) { $return = undef; } else { $return = \\%nl; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 779 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 810 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 810 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 810 }, 'Parse::RecDescent::Production' ) ], 'name' => 'META_NODE', 'vars' => '', 'changed' => 0, 'line' => 777 }, 'Parse::RecDescent::Rule' ), 'NODE' => bless( { 'impcount' => 0, 'calls' => [ 'CRITERION', 'TUNNEL' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 533 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'node', 'hashname' => '__STRING2__', 'description' => '\'node\'', 'lookahead' => 0, 'line' => 533 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 533 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'TUNNEL', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 533 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 533 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 533, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 534, 'code' => '{ my %rv = (); my ($href, $clref, $result); $semerr = ""; $clref = $item{CRITERION}; foreach $href (@$clref) { $rv{$href->{type}} = $href->{value}; }; $rv{tunnels} = $item{TUNNEL}; $result = XB_API_GUI::XB_check_node (\\%rv); if ($result) { $semerr = $result; goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%rv; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 559 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 559 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 559 }, 'Parse::RecDescent::Production' ) ], 'name' => 'NODE', 'vars' => '', 'changed' => 0, 'line' => 533 }, 'Parse::RecDescent::Rule' ), 'XOL_PROTOCOL' => bless( { 'impcount' => 0, 'calls' => [ 'ARGSTRING' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 943, 'code' => '{ $semerr = ""; }' }, 'Parse::RecDescent::Action' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 943 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'ARGSTRING', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 945 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 945, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 946, 'code' => '{ if ($item{ARGSTRING} !~ /^[0-9]+\\.[A-Za-z0-9-]+$/) { $semerr = "Protocol number has format: number.alphanumeric."; $return = undef; } else { $return = $item{ARGSTRING}; }; }' }, 'Parse::RecDescent::Action' ) ], 'line' => 945 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 956 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 956 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 956 }, 'Parse::RecDescent::Production' ) ], 'name' => 'XOL_PROTOCOL', 'vars' => '', 'changed' => 0, 'line' => 943 }, 'Parse::RecDescent::Rule' ), 'CLASS' => bless( { 'impcount' => 0, 'calls' => [ 'CLASS_NAME', 'NETWORK' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 615, 'code' => '{ $semerr = ""; }' }, 'Parse::RecDescent::Action' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 615 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 617 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'class', 'hashname' => '__STRING2__', 'description' => '\'class\'', 'lookahead' => 0, 'line' => 617 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CLASS_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 617 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'NETWORK', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 617 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 617 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 617, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 618, 'code' => '{ my %cp = (); $cp{class} = $item{CLASS_NAME}; $cp{network} = $item{NETWORK}; if (!XB_API_SUBS::XB_class_consistency (\\%cp, \\$semerr)) { goto EXIT }; if (defined $classes{$item{CLASS_NAME}}) { $semerr = "Class $item{CLASS_NAME} has been defined already"; goto EXIT; }; $classes{$item{CLASS_NAME}} = $item{NETWORK}; EXIT: if ($semerr) { $return = undef; } else { $return = \\%cp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 617 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 642 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 642 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 642 }, 'Parse::RecDescent::Production' ) ], 'name' => 'CLASS', 'vars' => '', 'changed' => 0, 'line' => 615 }, 'Parse::RecDescent::Rule' ), 'SIMPLE_NODE' => bless( { 'impcount' => 0, 'calls' => [ 'NODE_NAME', 'NODE_PROPS', 'INTERFACES' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'NODE_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 762 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'NODE_PROPS', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 762 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'INTERFACES', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 762 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 763, 'code' => '{ my %nl = (); my %pl = (); $pl{props} = $item{NODE_PROPS}; $pl{props}->{class} = undef; $pl{interfaces} = $item{INTERFACES}; $nl{type} = $item{NODE_NAME}; $nl{value} = \\%pl; $return = \\%nl; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'SIMPLE_NODE', 'vars' => '', 'changed' => 0, 'line' => 762 }, 'Parse::RecDescent::Rule' ), 'ARGSTRING' => bless( { 'impcount' => 0, 'calls' => [], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'items' => [ bless( { 'description' => '/"[^"]+"/', 'rdelim' => '/', 'pattern' => '"[^"]+"', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 959 }, 'Parse::RecDescent::Token' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 959, 'code' => '{ $item[1] =~ s/"//g; $return = $item[1]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'items' => [ bless( { 'description' => '/\'[^\']+\'/', 'rdelim' => '/', 'pattern' => '\'[^\']+\'', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 961 }, 'Parse::RecDescent::Token' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 962, 'code' => '{ $item[1] =~ s/\'//g; $return = $item[1]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => 961 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'description' => '/[^()\\\\s]+/', 'rdelim' => '/', 'pattern' => '[^()\\s]+', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 963 }, 'Parse::RecDescent::Token' ) ], 'line' => 963 }, 'Parse::RecDescent::Production' ) ], 'name' => 'ARGSTRING', 'vars' => '', 'changed' => 0, 'line' => 959 }, 'Parse::RecDescent::Rule' ), 'LINK' => bless( { 'impcount' => 0, 'calls' => [ 'LINK_NAME', 'CRITERION' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 868 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'link', 'hashname' => '__STRING2__', 'description' => '\'link\'', 'lookahead' => 0, 'line' => 868 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'LINK_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 868 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 868 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 868 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 869, 'code' => '{ my %ln = (); my %pl = (); my ($rv, $ix); $ix = 0; while (defined $item{CRITERION}[$ix]) { $rv = $item{CRITERION}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $ln{type} = $item{LINK_NAME}; $ln{value} = \\%pl; $return = \\%ln; }' }, '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' => 887 }, 'Parse::RecDescent::Error' ) ], 'line' => 887 }, 'Parse::RecDescent::Production' ) ], 'name' => 'LINK', 'vars' => '', 'changed' => 0, 'line' => 868 }, 'Parse::RecDescent::Rule' ), 'CLASS_NAME' => bless( { 'impcount' => 0, 'calls' => [], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'description' => '/[_A-Za-z0-9-]+/', 'rdelim' => '/', 'pattern' => '[_A-Za-z0-9-]+', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 966 }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'CLASS_NAME', 'vars' => '', 'changed' => 0, 'line' => 963 }, 'Parse::RecDescent::Rule' ), 'ROOT_DECLARATION' => bless( { 'impcount' => 0, 'calls' => [ 'CLASS_NAME', 'OBJECT_NAME' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 919 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'root', 'hashname' => '__STRING2__', 'description' => '\'root\'', 'lookahead' => 0, 'line' => 919 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CLASS_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 919 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'OBJECT_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 919 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 919 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 920, 'code' => '{ my %objref = (); $objref{directive} = \'root\'; $objref{class_name} = $item{CLASS_NAME}; $objref{object_name} = $item{OBJECT_NAME}; $return = \\%objref; }' }, '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' => 929 }, 'Parse::RecDescent::Error' ) ], 'line' => 929 }, 'Parse::RecDescent::Production' ) ], 'name' => 'ROOT_DECLARATION', 'vars' => '', 'changed' => 0, 'line' => 919 }, 'Parse::RecDescent::Rule' ), 'END_OF_FILE' => bless( { 'impcount' => 0, 'calls' => [], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'description' => '/\\\\Z/', 'rdelim' => '/', 'pattern' => '\\Z', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 973 }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'END_OF_FILE', 'vars' => '', 'changed' => 0, 'line' => 973 }, 'Parse::RecDescent::Rule' ), 'OBJECT_NAME' => bless( { 'impcount' => 0, 'calls' => [], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'description' => '/[_A-Za-z0-9-.]+/', 'rdelim' => '/', 'pattern' => '[_A-Za-z0-9-.]+', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 970 }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'OBJECT_NAME', 'vars' => '', 'changed' => 0, 'line' => 970 }, 'Parse::RecDescent::Rule' ), 'NODE_PROPS' => bless( { 'impcount' => 0, 'calls' => [ 'CRITERION' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 813 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'nodeprops', 'hashname' => '__STRING2__', 'description' => '\'nodeprops\'', 'lookahead' => 0, 'line' => 813 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'CRITERION', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => 813 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 813 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 814, 'code' => '{ my %pl = (); my ($rv, $ix); $ix = 0; while (defined $item{CRITERION}[$ix]) { $rv = $item{CRITERION}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $return = \\%pl; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'NODE_PROPS', 'vars' => '', 'changed' => 0, 'line' => 813 }, 'Parse::RecDescent::Rule' ), 'IF_NAME' => bless( { 'impcount' => 0, 'calls' => [], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'description' => '/[_A-Za-z0-9-]+/', 'rdelim' => '/', 'pattern' => '[_A-Za-z0-9-]+', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 967 }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'IF_NAME', 'vars' => '', 'changed' => 0, 'line' => 967 }, 'Parse::RecDescent::Rule' ), 'LINK_NAME' => bless( { 'impcount' => 0, 'calls' => [], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'description' => '/[_A-Za-z0-9-]+/', 'rdelim' => '/', 'pattern' => '[_A-Za-z0-9-]+', 'hashname' => '__PATTERN1__', 'lookahead' => 0, 'ldelim' => '/', 'mod' => '', 'line' => 969 }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'LINK_NAME', 'vars' => '', 'changed' => 0, 'line' => 969 }, 'Parse::RecDescent::Rule' ), 'NETWORK' => bless( { 'impcount' => 0, 'calls' => [ 'NET_PROPS', 'NET_PART' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'NET_PROPS', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 645 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'NET_PART', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 645 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 646, 'code' => '{ my %nwp = (); my ($rv, $ix); my %pl = (); $ix = 0; while (defined $item{NET_PART}[$ix]) { $rv = $item{NET_PART}[$ix]; $pl{$rv->{type}} = $rv->{value}; $ix++; } $nwp{props} = $item{NET_PROPS}; $nwp{net_parts} = \\%pl;; EXIT: if ($semerr) { $return = undef; } else { $return = \\%nwp; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'NETWORK', 'vars' => '', 'changed' => 0, 'line' => 645 }, 'Parse::RecDescent::Rule' ), 'INTERFACES' => bless( { 'impcount' => 0, 'calls' => [ 'INTERFACE' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 830 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'interfaces', 'hashname' => '__STRING2__', 'description' => '\'interfaces\'', 'lookahead' => 0, 'line' => 830 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'INTERFACE', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 830 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 830 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 831, 'code' => '{ my %ifpl = (); my ($rv, $ix); $ix = 0; while (defined $item{INTERFACE}[$ix]) { $rv = $item{INTERFACE}[$ix]; $ifpl{$rv->{type}} = $rv->{value}; $ix++; } $return = \\%ifpl; }' }, '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' => 846 }, 'Parse::RecDescent::Error' ) ], 'line' => 846 }, 'Parse::RecDescent::Production' ) ], 'name' => 'INTERFACES', 'vars' => '', 'changed' => 0, 'line' => 830 }, 'Parse::RecDescent::Rule' ), 'XOL_PROGRAM' => bless( { 'impcount' => 0, 'calls' => [ 'XOL_PROTOCOL', 'CLASS', 'ROOT_DECLARATION' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 588, 'code' => '{ $semerr = ""; }' }, 'Parse::RecDescent::Action' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 588 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 3, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 590 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => 'xol', 'hashname' => '__STRING2__', 'description' => '\'xol\'', 'lookahead' => 0, 'line' => 590 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'XOL_PROTOCOL', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 590 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'CLASS', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => 590 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'ROOT_DECLARATION', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 590 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 590 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => 590, 'code' => '$commit = 1' }, 'Parse::RecDescent::Directive' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 591, 'code' => '{ my %program = (); $program{xol_protocol} = $item{XOL_PROTOCOL}; %classes = (); $program{classes} = $item{CLASS}; $program{directive} = $item{ROOT_DECLARATION}; if (!XB_API_SUBS::XB_directives_consistency ( \\%program, \\$semerr ) ) { goto EXIT; }; EXIT: if ($semerr) { $return = undef; } else { $return = \\%program; } }' }, 'Parse::RecDescent::Action' ) ], 'line' => 590 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 2, 'uncommit' => 0, 'error' => 1, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'msg' => '$semerr', 'hashname' => '__DIRECTIVE1__', 'commitonly' => '?', 'lookahead' => 0, 'line' => 612 }, 'Parse::RecDescent::Error' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => 612 }, 'Parse::RecDescent::UncondReject' ) ], 'line' => 612 }, 'Parse::RecDescent::Production' ) ], 'name' => 'XOL_PROGRAM', 'vars' => '', 'changed' => 0, 'line' => 588 }, 'Parse::RecDescent::Rule' ), 'TOPO_ENDPOINT' => bless( { 'impcount' => 0, 'calls' => [ 'NODE_NAME', 'IF_NAME' ], 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 3, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => 906 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'NODE_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 906 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '.', 'hashname' => '__STRING2__', 'description' => '\'.\'', 'lookahead' => 0, 'line' => 906 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'IF_NAME', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 906 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING3__', 'description' => '\')\'', 'lookahead' => 0, 'line' => 906 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 907, 'code' => '{ my %tt = (); $tt{node} = $item{NODE_NAME}; $tt{if} = $item{IF_NAME}; $return = \\%tt; }' }, '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' => 916 }, 'Parse::RecDescent::Error' ) ], 'line' => 916 }, 'Parse::RecDescent::Production' ) ], 'name' => 'TOPO_ENDPOINT', 'vars' => '', 'changed' => 0, 'line' => 906 }, 'Parse::RecDescent::Rule' ) } }, 'Parse::RecDescent' ); }