package TM::QL::CParser; use Parse::RecDescent; { my $ERRORS; package Parse::RecDescent::TM::QL::CParser; use strict; use vars qw($skip $AUTOLOAD ); @Parse::RecDescent::TM::QL::CParser::ISA = (); $skip = '\s*'; use Data::Dumper; sub _mk_fun_tree { # produces binary function tree from... my @item = @_; # ...a list of items: param op param op param ...., my $d1 = shift @{$item[1]}; # get the first param while (my $op = shift @{$item[1]}) { # as long as there is another op/param my $d2 = shift @{$item[1]}; # capture the param $d1 = new PEfun (fun => $op || die "unregistered function '$item[1]'", # create a function node, with the params.... args => [ $d1, $d2 ], # ... being the arguments uri => undef); } return $d1; # finally return the root of the tree } sub _mk_if { # creates if node my $cond = shift || TM::QL::PE::mk_prs (new PEall); # with the condition variable, if (%_) then prid else prno if is default return new PEif (con => $cond, then => TM::QL::PE::mk_prs (new PEvar (nam => '@_')), # pass all else => TM::QL::PE::mk_prs (undef)); # pass nothing } sub _invert_if { # inverts an if node... my $if = shift; my ($then, $else) = ($if->then, $if->else); $if->then ($else); $if->else ($then); # by swapping 'then' with 'else' return $if; } my @metamaps; # this will contain a list of ontologies ; { local $SIG{__WARN__} = sub {0}; # PRETEND TO BE IN Parse::RecDescent NAMESPACE *Parse::RecDescent::TM::QL::CParser::AUTOLOAD = sub { no strict 'refs'; $AUTOLOAD =~ s/^Parse::RecDescent::TM::QL::CParser/Parse::RecDescent/; goto &{$AUTOLOAD}; } } push @Parse::RecDescent::TM::QL::CParser::ISA, 'Parse::RecDescent'; # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::astma_instance { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"astma_instance"}; Parse::RecDescent::_trace(q{Trying rule: [astma_instance]}, Parse::RecDescent::_tracefirst($_[1]), q{astma_instance}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'xxx'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['xxx']}, Parse::RecDescent::_tracefirst($_[1]), q{astma_instance}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{astma_instance}); %item = (__RULE__ => q{astma_instance}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['xxx']}, Parse::RecDescent::_tracefirst($text), q{astma_instance}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Axxx//) { $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{>>Matched production: ['xxx']<<}, Parse::RecDescent::_tracefirst($text), q{astma_instance}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{astma_instance}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{astma_instance}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{astma_instance}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{astma_instance}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::uri_or_qname { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"uri_or_qname"}; Parse::RecDescent::_trace(q{Trying rule: [uri_or_qname]}, Parse::RecDescent::_tracefirst($_[1]), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{prefix}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [prefix identifier]}, Parse::RecDescent::_tracefirst($_[1]), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{uri_or_qname}); %item = (__RULE__ => q{uri_or_qname}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying repeated subrule: [prefix]}, Parse::RecDescent::_tracefirst($text), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::prefix, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [prefix]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; $item{q{prefix(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying subrule: [identifier]}, Parse::RecDescent::_tracefirst($text), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{identifier})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; $item{q{identifier}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[1]->[0] ? $item[1]->[0] . $item[2] : $item[2]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [prefix identifier]<<}, Parse::RecDescent::_tracefirst($text), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{uri_or_qname}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{uri_or_qname}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{uri_or_qname}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::xml_text { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"xml_text"}; Parse::RecDescent::_trace(q{Trying rule: [xml_text]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_text}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{/$arg[0]/}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/$arg[0]/]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_text}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{xml_text}); %item = (__RULE__ => q{xml_text}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/$arg[0]/]}, Parse::RecDescent::_tracefirst($text), q{xml_text}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:$arg[0])//) { $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{xml_text}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new TM::Literal ($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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [/$arg[0]/]<<}, Parse::RecDescent::_tracefirst($text), q{xml_text}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{xml_text}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{xml_text}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{xml_text}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{xml_text}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::association_predicate { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"association_predicate"}; Parse::RecDescent::_trace(q{Trying rule: [association_predicate]}, Parse::RecDescent::_tracefirst($_[1]), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [item_reference '(' roles ellipsis ')']}, Parse::RecDescent::_tracefirst($_[1]), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{association_predicate}); %item = (__RULE__ => q{association_predicate}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { undef; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{Trying subrule: [item_reference]}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{item_reference})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::item_reference($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [item_reference]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $item{q{item_reference}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'('})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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: [roles]}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{roles})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::roles($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [roles]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $item{q{roles}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [ellipsis]}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{ellipsis})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::ellipsis, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [ellipsis]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $item{q{ellipsis(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{')'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{>>Matched production: [item_reference '(' roles ellipsis ')']<<}, Parse::RecDescent::_tracefirst($text), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{association_predicate}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{association_predicate}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{association_predicate}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{association_predicate}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::content { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"content"}; Parse::RecDescent::_trace(q{Trying rule: [content]}, Parse::RecDescent::_tracefirst($_[1]), q{content}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{, or '~~~content_1~~~'}); $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{content}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{content}); %item = (__RULE__ => q{content}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: []}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [content_l0]}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content_l0})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content_l0($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content_l0]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $item{q{content_l0}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/(--)/]}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/(--)/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(--))//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; pop @item; if (defined $1) {push @item, $item{'content_l0(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [content_l0]}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content_l0})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content_l0($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content_l0]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $item{q{content_l0}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'content_l0(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = TM::QL::PE::mk_prs ($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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~content_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{content}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{content}); %item = (__RULE__ => q{content}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~content_1~~~']}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~content_1\~\~\~//) { $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{>>Matched production: ['~~~content_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{content}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{content}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{content}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{content}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{content}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::string { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"string"}; Parse::RecDescent::_trace(q{Trying rule: [string]}, Parse::RecDescent::_tracefirst($_[1]), q{string}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{/\\"\{3\}(.*?)\\"\{3\}/s, or /\\"([^\\n]*?)\\"/}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/\\"\{3\}(.*?)\\"\{3\}/s '^^']}, Parse::RecDescent::_tracefirst($_[1]), q{string}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{string}); %item = (__RULE__ => q{string}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/\\"\{3\}(.*?)\\"\{3\}/s]}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\"{3}(.*?)\"{3})//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{Trying repeated subrule: ['^^']}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{'^^'})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_string, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_string]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $item{q{_alternation_1_of_production_1_of_rule_string(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new TM::Literal ($1, $item[2]->[0] || TM::Literal->STRING); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [/\\"\{3\}(.*?)\\"\{3\}/s '^^']<<}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/\\"([^\\n]*?)\\"/ '^^']}, Parse::RecDescent::_tracefirst($_[1]), q{string}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{string}); %item = (__RULE__ => q{string}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/\\"([^\\n]*?)\\"/]}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\"([^\n]*?)\")//) { $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 repeated subrule: ['^^']}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{'^^'})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_2_of_rule_string, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_2_of_rule_string]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $item{q{_alternation_1_of_production_2_of_rule_string(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new TM::Literal ($1, $item[2]->[0] || TM::Literal->STRING); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [/\\"([^\\n]*?)\\"/ '^^']<<}, Parse::RecDescent::_tracefirst($text), q{string}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{string}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{string}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{string}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{string}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::flwr_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"flwr_expression"}; Parse::RecDescent::_trace(q{Trying rule: [flwr_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{for_clause}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [for_clause where_clause return_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{flwr_expression}); %item = (__RULE__ => q{flwr_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying repeated subrule: [for_clause]}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::for_clause, 0, 100000000, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [for_clause]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{for_clause(s?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [where_clause]}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{where_clause})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::where_clause, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [where_clause]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{where_clause(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying subrule: [return_clause]}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{return_clause})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::return_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [return_clause]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{return_clause}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[3]; # first collect the return clause $return = TM::QL::PE::unshift_vars ([['@_' => $item[2]->[0]]], $return) # merge it in if $item[2]->[0]; # if there is a where clause, my %vars; # registers seen variables my @fors = reverse # outest variable first map { ($_->[0] = $vars{ $_->[0] } ? '$_' : $_->[0]) # if variable is seen inside => $_ and ++$vars{ $_->[0] } # mark variable as seen and $_ } # and forward the whole pair reverse # start from the end map { @$_ } # unwrap double nested list @{$item[1]}; # take the var-assocs [[ $a => ...],[ $b => ..] ] $return = TM::QL::PE::unshift_vars (\@fors, $return); # and push them }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [for_clause where_clause return_clause]<<}, Parse::RecDescent::_tracefirst($text), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{flwr_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{flwr_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{flwr_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_query_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_query_expression"}; Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_query_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{select_expression, or flwr_expression, or path_expression}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [select_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_query_expression}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_query_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [select_expression]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::select_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [select_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{select_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [select_expression]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [flwr_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_query_expression}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_query_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [flwr_expression]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::flwr_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [flwr_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{flwr_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [flwr_expression]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [path_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_query_expression}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_query_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [path_expression]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::path_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [path_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{path_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [path_expression]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{_alternation_1_of_production_1_of_rule_query_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::simple_content { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"simple_content"}; Parse::RecDescent::_trace(q{Trying rule: [simple_content]}, Parse::RecDescent::_tracefirst($_[1]), q{simple_content}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{anchor}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [anchor navigation]}, Parse::RecDescent::_tracefirst($_[1]), q{simple_content}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{simple_content}); %item = (__RULE__ => q{simple_content}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [anchor]}, Parse::RecDescent::_tracefirst($text), q{simple_content}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::anchor($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{simple_content}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [anchor]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{simple_content}, $tracelevel) if defined $::RD_TRACE; $item{q{anchor}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [navigation]}, Parse::RecDescent::_tracefirst($text), q{simple_content}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{navigation})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::navigation, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{simple_content}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [navigation]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{simple_content}, $tracelevel) if defined $::RD_TRACE; $item{q{navigation(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{simple_content}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEpr (arr => [ [[[ new PEpe (val => $item[1], mos => $item[2]->[0] || []) ]]]]); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [anchor navigation]<<}, Parse::RecDescent::_tracefirst($text), q{simple_content}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{simple_content}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{simple_content}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{simple_content}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{simple_content}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::boolean_primitive { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"boolean_primitive"}; Parse::RecDescent::_trace(q{Trying rule: [boolean_primitive]}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'not', or 'false', or '(', or forall_clause, or exists_clause}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['not' boolean_primitive]}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{boolean_primitive}); %item = (__RULE__ => q{boolean_primitive}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['not']}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Anot//) { $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: [boolean_primitive]}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_primitive})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_primitive($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_primitive]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_primitive}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = _invert_if ($item[2]); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['not' boolean_primitive]<<}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['false']}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{boolean_primitive}); %item = (__RULE__ => q{boolean_primitive}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['false']}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Afalse//) { $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 action}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = _mk_if (TM::QL::PE::mk_prs ()); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['false']<<}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['(' boolean_expression ')']}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{boolean_primitive}); %item = (__RULE__ => q{boolean_primitive}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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: [boolean_expression]}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{')'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[2]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' boolean_expression ')']<<}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [forall_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{boolean_primitive}); %item = (__RULE__ => q{boolean_primitive}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [forall_clause]}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::forall_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [forall_clause]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $item{q{forall_clause}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = _invert_if (_mk_if ($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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [forall_clause]<<}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [exists_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[4]; $text = $_[1]; my $_savetext; @item = (q{boolean_primitive}); %item = (__RULE__ => q{boolean_primitive}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [exists_clause]}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::exists_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [exists_clause]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $item{q{exists_clause}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = _mk_if ($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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [exists_clause]<<}, Parse::RecDescent::_tracefirst($text), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{boolean_primitive}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{boolean_primitive}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{boolean_primitive}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::exists_clause { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"exists_clause"}; Parse::RecDescent::_trace(q{Trying rule: [exists_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'some'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['some' variable_association 'satisfies' boolean_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{exists_clause}); %item = (__RULE__ => q{exists_clause}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['some']}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Asome//) { $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 repeated subrule: [variable_association]}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{variable_association})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::variable_association, 1, 100000000, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [variable_association]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{variable_association(s)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: ['satisfies']}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'satisfies'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Asatisfies//) { $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: [boolean_expression]}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = TM::QL::PE::mk_prs ($item[4]); # build prototype $return = TM::QL::PE::unshift_vars ($item[2], $return); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['some' variable_association 'satisfies' boolean_expression]<<}, Parse::RecDescent::_tracefirst($text), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{exists_clause}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{exists_clause}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{exists_clause}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{exists_clause}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::anchor { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"anchor"}; Parse::RecDescent::_trace(q{Trying rule: [anchor]}, Parse::RecDescent::_tracefirst($_[1]), q{anchor}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{constant, or variable, or '~~~anchor_1~~~'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [constant]}, Parse::RecDescent::_tracefirst($_[1]), q{anchor}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{anchor}); %item = (__RULE__ => q{anchor}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [constant]}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; $item{q{constant}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [constant]<<}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [variable]}, Parse::RecDescent::_tracefirst($_[1]), q{anchor}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{anchor}); %item = (__RULE__ => q{anchor}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [variable]}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::variable($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [variable]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; $item{q{variable}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [variable]<<}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~anchor_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{anchor}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{anchor}); %item = (__RULE__ => q{anchor}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~anchor_1~~~']}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~anchor_1\~\~\~//) { $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{>>Matched production: ['~~~anchor_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{anchor}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{anchor}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{anchor}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{anchor}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{anchor}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::tm_content { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"tm_content"}; Parse::RecDescent::_trace(q{Trying rule: [tm_content]}, Parse::RecDescent::_tracefirst($_[1]), q{tm_content}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'"""'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['"""' ctm_instance '"""']}, Parse::RecDescent::_tracefirst($_[1]), q{tm_content}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{tm_content}); %item = (__RULE__ => q{tm_content}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['"""']}, Parse::RecDescent::_tracefirst($text), q{tm_content}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\"\"\"//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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: [ctm_instance]}, Parse::RecDescent::_tracefirst($text), q{tm_content}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{ctm_instance})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::ctm_instance($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{tm_content}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [ctm_instance]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{tm_content}, $tracelevel) if defined $::RD_TRACE; $item{q{ctm_instance}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['"""']}, Parse::RecDescent::_tracefirst($text), q{tm_content}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'"""'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\"\"\"//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{tm_content}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[2]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['"""' ctm_instance '"""']<<}, Parse::RecDescent::_tracefirst($text), q{tm_content}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{tm_content}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{tm_content}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{tm_content}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{tm_content}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::value_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"value_expression"}; Parse::RecDescent::_trace(q{Trying rule: [value_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{value_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{value_l0_expression}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [value_l0_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{value_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{value_expression}); %item = (__RULE__ => q{value_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [value_l0_expression]}, Parse::RecDescent::_tracefirst($text), q{value_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_l0_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_l0_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_l0_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [value_l0_expression]<<}, Parse::RecDescent::_tracefirst($text), q{value_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{value_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{value_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{value_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{value_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::iri { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"iri"}; Parse::RecDescent::_trace(q{Trying rule: [iri]}, Parse::RecDescent::_tracefirst($_[1]), q{iri}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{/\\w[\\w\\d\\+\\-\\.]+:\\/([^\\.\\s:;]|\\.(?!\\s)|:(?!\\s)|;(?!\\s))+/, or qname}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/\\w[\\w\\d\\+\\-\\.]+:\\/([^\\.\\s:;]|\\.(?!\\s)|:(?!\\s)|;(?!\\s))+/]}, Parse::RecDescent::_tracefirst($_[1]), q{iri}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{iri}); %item = (__RULE__ => q{iri}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/\\w[\\w\\d\\+\\-\\.]+:\\/([^\\.\\s:;]|\\.(?!\\s)|:(?!\\s)|;(?!\\s))+/]}, Parse::RecDescent::_tracefirst($text), q{iri}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\w[\w\d\+\-\.]+:\/([^\.\s:;]|\.(?!\s)|:(?!\s)|;(?!\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: [/\\w[\\w\\d\\+\\-\\.]+:\\/([^\\.\\s:;]|\\.(?!\\s)|:(?!\\s)|;(?!\\s))+/]<<}, Parse::RecDescent::_tracefirst($text), q{iri}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [qname]}, Parse::RecDescent::_tracefirst($_[1]), q{iri}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{iri}); %item = (__RULE__ => q{iri}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [qname]}, Parse::RecDescent::_tracefirst($text), q{iri}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::qname($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{iri}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [qname]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{iri}, $tracelevel) if defined $::RD_TRACE; $item{q{qname}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [qname]<<}, Parse::RecDescent::_tracefirst($text), q{iri}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{iri}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{iri}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{iri}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{iri}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::query_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"query_expression"}; Parse::RecDescent::_trace(q{Trying rule: [query_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{query_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{environment_clause}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [environment_clause select_expression, or flwr_expression, or path_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{query_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{query_expression}); %item = (__RULE__ => q{query_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying repeated subrule: [environment_clause]}, Parse::RecDescent::_tracefirst($text), q{query_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::environment_clause, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{query_expression}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [environment_clause]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{query_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{environment_clause(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_query_expression]}, Parse::RecDescent::_tracefirst($text), q{query_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{select_expression, or flwr_expression, or path_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_query_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{query_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_query_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{query_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{_alternation_1_of_production_1_of_rule_query_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [environment_clause select_expression, or flwr_expression, or path_expression]<<}, Parse::RecDescent::_tracefirst($text), q{query_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{query_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{query_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{query_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{query_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::for_clause { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"for_clause"}; Parse::RecDescent::_trace(q{Trying rule: [for_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{for_clause}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'for'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['for' ]}, Parse::RecDescent::_tracefirst($_[1]), q{for_clause}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{for_clause}); %item = (__RULE__ => q{for_clause}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['for']}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Afor//) { $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 operator: []}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [variable_association]}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{variable_association})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::variable_association($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [variable_association]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{variable_association}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/,/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; pop @item; if (defined $1) {push @item, $item{'variable_association(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [variable_association]}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{variable_association})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::variable_association($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [variable_association]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{variable_association}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'variable_association(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[2]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['for' ]<<}, Parse::RecDescent::_tracefirst($text), q{for_clause}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{for_clause}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{for_clause}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{for_clause}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{for_clause}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::variable_association { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"variable_association"}; Parse::RecDescent::_trace(q{Trying rule: [variable_association]}, Parse::RecDescent::_tracefirst($_[1]), q{variable_association}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{variable}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [variable 'in' content]}, Parse::RecDescent::_tracefirst($_[1]), q{variable_association}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{variable_association}); %item = (__RULE__ => q{variable_association}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [variable]}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::variable($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [variable]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; $item{q{variable}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['in']}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'in'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ain//) { $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: [content]}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; $item{q{content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = [ $item[1]->nam => $item[3] ]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [variable 'in' content]<<}, Parse::RecDescent::_tracefirst($text), q{variable_association}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{variable_association}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{variable_association}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{variable_association}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{variable_association}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::boolean_expression_or { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"boolean_expression_or"}; Parse::RecDescent::_trace(q{Trying rule: [boolean_expression_or]}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $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{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{boolean_expression_or}); %item = (__RULE__ => q{boolean_expression_or}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: []}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [boolean_primitive]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_primitive})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_primitive($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_primitive]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_primitive}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/\\&/]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/\\&/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\&)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; pop @item; if (defined $1) {push @item, $item{'boolean_primitive(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [boolean_primitive]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_primitive})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_primitive($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_primitive]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_primitive}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'boolean_primitive(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = PEprs->new (arr => $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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{boolean_expression_or}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{boolean_expression_or}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{boolean_expression_or}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::uri { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"uri"}; Parse::RecDescent::_trace(q{Trying rule: [uri]}, Parse::RecDescent::_tracefirst($_[1]), q{uri}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{/(\\w+:[^\\"\\s)\\]\\>]+)/}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/(\\w+:[^\\"\\s)\\]\\>]+)/]}, Parse::RecDescent::_tracefirst($_[1]), q{uri}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{uri}); %item = (__RULE__ => q{uri}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/(\\w+:[^\\"\\s)\\]\\>]+)/]}, Parse::RecDescent::_tracefirst($text), q{uri}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(\w+:[^\"\s)\]\>]+))//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; Parse::RecDescent::_trace(q{>>Matched production: [/(\\w+:[^\\"\\s)\\]\\>]+)/]<<}, Parse::RecDescent::_tracefirst($text), q{uri}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{uri}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{uri}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{uri}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{uri}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::forall_clause { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"forall_clause"}; Parse::RecDescent::_trace(q{Trying rule: [forall_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'every'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['every' 'satisfies' boolean_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{forall_clause}); %item = (__RULE__ => q{forall_clause}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['every']}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aevery//) { $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 operator: []}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [variable_association]}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{variable_association})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::variable_association($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [variable_association]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{variable_association}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/,/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; pop @item; if (defined $1) {push @item, $item{'variable_association(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [variable_association]}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{variable_association})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::variable_association($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [variable_association]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{variable_association}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'variable_association(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying terminal: ['satisfies']}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'satisfies'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Asatisfies//) { $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: [boolean_expression]}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { # forall A satisfies B = !some A satisfy not B $return = TM::QL::PE::mk_prs (_invert_if ($item[4])); # negate boolean expression $return = TM::QL::PE::unshift_vars ($item[2], $return); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['every' 'satisfies' boolean_expression]<<}, Parse::RecDescent::_tracefirst($text), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{forall_clause}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{forall_clause}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{forall_clause}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{forall_clause}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_function_invocation { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_function_invocation"}; Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_function_invocation]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{tuple_expression, or roles}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [tuple_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_function_invocation}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function_invocation}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [tuple_expression]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::tuple_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [tuple_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; $item{q{tuple_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [tuple_expression]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [roles]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_function_invocation}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function_invocation}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [roles]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::roles($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [roles]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; $item{q{roles}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [roles]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{_alternation_1_of_production_1_of_rule_function_invocation}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::role { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"role"}; Parse::RecDescent::_trace(q{Trying rule: [role]}, Parse::RecDescent::_tracefirst($_[1]), q{role}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{role_type}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [role_type ':' player]}, Parse::RecDescent::_tracefirst($_[1]), q{role}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{role}); %item = (__RULE__ => q{role}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [role_type]}, Parse::RecDescent::_tracefirst($text), q{role}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::role_type($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{role}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [role_type]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{role}, $tracelevel) if defined $::RD_TRACE; $item{q{role_type}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [':']}, Parse::RecDescent::_tracefirst($text), q{role}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{':'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\://) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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: [player]}, Parse::RecDescent::_tracefirst($text), q{role}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{player})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::player($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{role}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [player]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{role}, $tracelevel) if defined $::RD_TRACE; $item{q{player}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [role_type ':' player]<<}, Parse::RecDescent::_tracefirst($text), q{role}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{role}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{role}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{role}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{role}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::item_reference { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"item_reference"}; Parse::RecDescent::_trace(q{Trying rule: [item_reference]}, Parse::RecDescent::_tracefirst($_[1]), q{item_reference}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{uri, or identifier, or '~~~item_reference_1~~~', or '~~~item_reference_op_1~~~'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [uri]}, Parse::RecDescent::_tracefirst($_[1]), q{item_reference}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{item_reference}); %item = (__RULE__ => q{item_reference}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [uri]}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::uri($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [uri]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $item{q{uri}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [uri]<<}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [identifier]}, Parse::RecDescent::_tracefirst($_[1]), q{item_reference}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{item_reference}); %item = (__RULE__ => q{item_reference}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [identifier]}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $item{q{identifier}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [identifier]<<}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~item_reference_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{item_reference}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{item_reference}); %item = (__RULE__ => q{item_reference}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~item_reference_1~~~']}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~item_reference_1\~\~\~//) { $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{>>Matched production: ['~~~item_reference_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~item_reference_op_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{item_reference}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{item_reference}); %item = (__RULE__ => q{item_reference}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~item_reference_op_1~~~']}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~item_reference_op_1\~\~\~//) { $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 action}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = [ '~~~item_reference_op_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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['~~~item_reference_op_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{item_reference}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{item_reference}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{item_reference}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{item_reference}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{item_reference}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::content_l1 { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"content_l1"}; Parse::RecDescent::_trace(q{Trying rule: [content_l1]}, Parse::RecDescent::_tracefirst($_[1]), q{content_l1}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $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{content_l1}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{content_l1}); %item = (__RULE__ => q{content_l1}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: []}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [content_l2]}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content_l2})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content_l2($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content_l2]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; $item{q{content_l2}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/(==)/]}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/(==)/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(==))//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; pop @item; if (defined $1) {push @item, $item{'content_l2(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [content_l2]}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content_l2})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content_l2($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content_l2]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; $item{q{content_l2}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'content_l2(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{content_l1}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{content_l1}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{content_l1}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{content_l1}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{content_l1}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::variable { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"variable"}; Parse::RecDescent::_trace(q{Trying rule: [variable]}, Parse::RecDescent::_tracefirst($_[1]), q{variable}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'%_', or '@_', or '$_', or /(\\$\\d+)/, or /[%@\\$][\\w\\#\\_][\\w\\-\\.]*/, or '~~~variable_1~~~'}); $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{variable}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{variable}); %item = (__RULE__ => q{variable}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['%_']}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\%_//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEall; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['%_']<<}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['@_']}, Parse::RecDescent::_tracefirst($_[1]), q{variable}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{variable}); %item = (__RULE__ => q{variable}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['@_']}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\@_//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEvar (nam => $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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['@_']<<}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['$_']}, Parse::RecDescent::_tracefirst($_[1]), q{variable}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{variable}); %item = (__RULE__ => q{variable}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['$_']}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\$_//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEvar (nam => $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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['$_']<<}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/(\\$\\d+)/]}, Parse::RecDescent::_tracefirst($_[1]), q{variable}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{variable}); %item = (__RULE__ => q{variable}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/(\\$\\d+)/]}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(\$\d+))//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if 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{variable}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEvar (nam => $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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [/(\\$\\d+)/]<<}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/[%@\\$][\\w\\#\\_][\\w\\-\\.]*/]}, Parse::RecDescent::_tracefirst($_[1]), q{variable}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[4]; $text = $_[1]; my $_savetext; @item = (q{variable}); %item = (__RULE__ => q{variable}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/[%@\\$][\\w\\#\\_][\\w\\-\\.]*/]}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[%@\$][\w\#\_][\w\-\.]*)//) { $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{variable}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEvar (nam => $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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [/[%@\\$][\\w\\#\\_][\\w\\-\\.]*/]<<}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~variable_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{variable}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[5]; $text = $_[1]; my $_savetext; @item = (q{variable}); %item = (__RULE__ => q{variable}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~variable_1~~~']}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~variable_1\~\~\~//) { $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{>>Matched production: ['~~~variable_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{variable}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{variable}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{variable}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{variable}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{variable}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::function_invocation { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"function_invocation"}; Parse::RecDescent::_trace(q{Trying rule: [function_invocation]}, Parse::RecDescent::_tracefirst($_[1]), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{item_reference}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [item_reference tuple_expression, or roles]}, Parse::RecDescent::_tracefirst($_[1]), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{function_invocation}); %item = (__RULE__ => q{function_invocation}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [item_reference]}, Parse::RecDescent::_tracefirst($text), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::item_reference($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [item_reference]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; $item{q{item_reference}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_function_invocation]}, Parse::RecDescent::_tracefirst($text), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{tuple_expression, or roles})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_function_invocation($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_function_invocation]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; $item{q{_alternation_1_of_production_1_of_rule_function_invocation}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [item_reference tuple_expression, or roles]<<}, Parse::RecDescent::_tracefirst($text), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{function_invocation}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{function_invocation}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{function_invocation}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{function_invocation}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::select_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"select_expression"}; Parse::RecDescent::_trace(q{Trying rule: [select_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{select_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{select_clause}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [select_clause from_clause where_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{select_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{select_expression}); %item = (__RULE__ => q{select_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [select_clause]}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::select_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [select_clause]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{select_clause}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [from_clause]}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{from_clause})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::from_clause, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [from_clause]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{from_clause(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [where_clause]}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{where_clause})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::where_clause, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [where_clause]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{where_clause(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[1]; my $where = $item[3]->[0] || TM::QL::PE::mk_prs ( _mk_if() ); # get an 'if', default is 'true' my @frees = TM::QL::PE::find_free_vars ($where); # find _free_ vars in where $return = TM::QL::PE::unshift_vars ([['@_' => $where]], $return); $return = TM::QL::PE::unshift_vars ([ map { # and keep these assignments [ $_ => TM::QL::PE::mk_prs (new PEall) ] # create pairs var => %_ all of them } @frees ], $return); # and push them }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [select_clause from_clause where_clause]<<}, Parse::RecDescent::_tracefirst($text), q{select_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{select_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{select_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{select_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{select_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::projection_postfix { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"projection_postfix"}; Parse::RecDescent::_trace(q{Trying rule: [projection_postfix]}, Parse::RecDescent::_tracefirst($_[1]), q{projection_postfix}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{tuple_expression}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [tuple_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{projection_postfix}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{projection_postfix}); %item = (__RULE__ => q{projection_postfix}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [tuple_expression]}, Parse::RecDescent::_tracefirst($text), q{projection_postfix}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::tuple_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{projection_postfix}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [tuple_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{projection_postfix}, $tracelevel) if defined $::RD_TRACE; $item{q{tuple_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [tuple_expression]<<}, Parse::RecDescent::_tracefirst($text), q{projection_postfix}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{projection_postfix}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{projection_postfix}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{projection_postfix}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{projection_postfix}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_2_of_rule_content_l2 { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_content_l2"}; Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_content_l2]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'else'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['else' content]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_2_of_rule_content_l2}); %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_content_l2}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['else']}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aelse//) { $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: [content]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; $item{q{content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: ['else' content]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{_alternation_1_of_production_2_of_rule_content_l2}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::xml_segment { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"xml_segment"}; Parse::RecDescent::_trace(q{Trying rule: [xml_segment]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{xml_element, or xml_fragment}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [xml_element]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{xml_segment}); %item = (__RULE__ => q{xml_segment}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [xml_element]}, Parse::RecDescent::_tracefirst($text), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::xml_element($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [xml_element]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_element}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [xml_element]<<}, Parse::RecDescent::_tracefirst($text), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [xml_fragment]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{xml_segment}); %item = (__RULE__ => q{xml_segment}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [xml_fragment]}, Parse::RecDescent::_tracefirst($text), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::xml_fragment($thisparser,$text,$repeating,$_noactions,sub { return ['[^<{]+'] }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [xml_fragment]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_fragment}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [xml_fragment]<<}, Parse::RecDescent::_tracefirst($text), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{xml_segment}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{xml_segment}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{xml_segment}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{xml_segment}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::boolean { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"boolean"}; Parse::RecDescent::_trace(q{Trying rule: [boolean]}, Parse::RecDescent::_tracefirst($_[1]), q{boolean}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'true', or 'false'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['true']}, Parse::RecDescent::_tracefirst($_[1]), q{boolean}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{boolean}); %item = (__RULE__ => q{boolean}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['true']}, Parse::RecDescent::_tracefirst($text), q{boolean}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Atrue//) { $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{>>Matched production: ['true']<<}, Parse::RecDescent::_tracefirst($text), q{boolean}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['false']}, Parse::RecDescent::_tracefirst($_[1]), q{boolean}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{boolean}); %item = (__RULE__ => q{boolean}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['false']}, Parse::RecDescent::_tracefirst($text), q{boolean}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Afalse//) { $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{>>Matched production: ['false']<<}, Parse::RecDescent::_tracefirst($text), q{boolean}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{boolean}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{boolean}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{boolean}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{boolean}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::xml_attribute { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"xml_attribute"}; Parse::RecDescent::_trace(q{Trying rule: [xml_attribute]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { local $skip = defined($skip) ? $skip : $Parse::RecDescent::skip; Parse::RecDescent::_trace(q{Trying production: [ xml_id '=' /[\\'\\"]/ xml_fragment /[\\'\\"]/]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{xml_attribute}); %item = (__RULE__ => q{xml_attribute}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $_tok = do { my $oldskip = $skip; $skip='\s*'; $oldskip }; 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 subrule: [xml_id]}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{xml_id})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::xml_id($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [xml_id]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_id}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['=']}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'='})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\=//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{Trying terminal: [/[\\'\\"]/]}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/[\\'\\"]/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[\'\"])//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if 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 directive: []}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $_tok = do { my $oldskip = $skip; $skip=""; $oldskip }; 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{__DIRECTIVE2__}=$_tok; Parse::RecDescent::_trace(q{Trying repeated subrule: [xml_fragment]}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{xml_fragment})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::xml_fragment, 1, 100000000, $_noactions,$expectation,sub { return ['[^\"\'{]+'] }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [xml_fragment]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_fragment(s)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [/[\\'\\"]/]}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/[\\'\\"]/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[\'\"])//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN2__}=$&; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = [ $item[2], $item[6] ]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ xml_id '=' /[\\'\\"]/ xml_fragment /[\\'\\"]/]<<}, Parse::RecDescent::_tracefirst($text), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{xml_attribute}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{xml_attribute}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{xml_attribute}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::xml_rest { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"xml_rest"}; Parse::RecDescent::_trace(q{Trying rule: [xml_rest]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'/>', or '>'}); $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{xml_rest}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{xml_rest}); %item = (__RULE__ => q{xml_rest}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['/>']}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\/\>//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{>>Matched production: ['/>']<<}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { local $skip = defined($skip) ? $skip : $Parse::RecDescent::skip; Parse::RecDescent::_trace(q{Trying production: ['>' xml_segment ' xml_id '>']}, Parse::RecDescent::_tracefirst($_[1]), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{xml_rest}); %item = (__RULE__ => q{xml_rest}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['>']}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\>//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $_tok = do { my $oldskip = $skip; $skip=""; $oldskip }; 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: [xml_segment]}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{xml_segment})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::xml_segment, 0, 100000000, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [xml_segment]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_segment(s?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: ['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 directive: []}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $_tok = do { my $oldskip = $skip; $skip='\s*'; $oldskip }; 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{__DIRECTIVE2__}=$_tok; Parse::RecDescent::_trace(q{Trying subrule: [xml_id]}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{xml_id})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::xml_id($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [xml_id]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_id}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['>']}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'>'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\>//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{xml_rest}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = [ $item[3], $item[5] ]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['>' xml_segment ' xml_id '>']<<}, Parse::RecDescent::_tracefirst($text), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{xml_rest}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{xml_rest}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{xml_rest}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{xml_rest}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::tuple_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"tuple_expression"}; Parse::RecDescent::_trace(q{Trying rule: [tuple_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'('}); $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{tuple_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{tuple_expression}); %item = (__RULE__ => q{tuple_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['(']}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\(//) { $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 operator: []}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [value_expression]}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_expression}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/,/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//) { $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__}=$&; pop @item; if (defined $1) {push @item, $item{'value_expression(s?)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [value_expression]}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_expression}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; $_tok = [ @item ]; last; } unless ($repcount>=0) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'value_expression(s?)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying terminal: [')']}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{')'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\)//) { $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{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEpr (arr => [ map { [[[ $_ ]]] } @{$item[2]} ]); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['(' ')']<<}, Parse::RecDescent::_tracefirst($text), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{tuple_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{tuple_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{tuple_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_path_l0_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_path_l0_expression"}; Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_path_l0_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{tuple_expression, or simple_content}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [tuple_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_path_l0_expression}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_path_l0_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [tuple_expression]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::tuple_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [tuple_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{tuple_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [tuple_expression]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [simple_content]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_path_l0_expression}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_path_l0_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [simple_content]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::simple_content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [simple_content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{simple_content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [simple_content]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{_alternation_1_of_production_1_of_rule_path_l0_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::xml_content { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"xml_content"}; Parse::RecDescent::_trace(q{Trying rule: [xml_content]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_content}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { local $skip = defined($skip) ? $skip : $Parse::RecDescent::skip; Parse::RecDescent::_trace(q{Trying production: [ /\\s*/ xml_element /\\s*/]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_content}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{xml_content}); %item = (__RULE__ => q{xml_content}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{xml_content}, $tracelevel) if defined $::RD_TRACE; $_tok = do { my $oldskip = $skip; $skip=""; $oldskip }; 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 terminal: [/\\s*/]}, Parse::RecDescent::_tracefirst($text), q{xml_content}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/\\s*/})->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{Trying repeated subrule: [xml_element]}, Parse::RecDescent::_tracefirst($text), q{xml_content}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{xml_element})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::xml_element, 1, 100000000, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_content}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [xml_element]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{xml_content}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_element(s)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying terminal: [/\\s*/]}, Parse::RecDescent::_tracefirst($text), q{xml_content}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/\\s*/})->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{__PATTERN2__}=$&; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{xml_content}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = TM::QL::PE::mk_prs ( new PExml (con => [ new TM::Literal ($item[2]), @{$item[3]}, new TM::Literal ($item[4]) ]) ); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [ /\\s*/ xml_element /\\s*/]<<}, Parse::RecDescent::_tracefirst($text), q{xml_content}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{xml_content}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{xml_content}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{xml_content}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{xml_content}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::xml_fragment { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"xml_fragment"}; Parse::RecDescent::_trace(q{Trying rule: [xml_fragment]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{xml_text, or '\{'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [xml_text]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{xml_fragment}); %item = (__RULE__ => q{xml_fragment}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [xml_text]}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::xml_text($thisparser,$text,$repeating,$_noactions,sub { return [$arg[0]] }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [xml_text]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_text}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [xml_text]<<}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { local $skip = defined($skip) ? $skip : $Parse::RecDescent::skip; Parse::RecDescent::_trace(q{Trying production: ['\{' query_expression '\}']}, Parse::RecDescent::_tracefirst($_[1]), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{xml_fragment}); %item = (__RULE__ => q{xml_fragment}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['\{']}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $_tok = do { my $oldskip = $skip; $skip='\s*'; $oldskip }; 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 subrule: [query_expression]}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{query_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::query_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [query_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $item{q{query_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['\}']}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'\}'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[3]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['\{' query_expression '\}']<<}, Parse::RecDescent::_tracefirst($text), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{xml_fragment}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{xml_fragment}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{xml_fragment}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::boolean_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"boolean_expression"}; Parse::RecDescent::_trace(q{Trying rule: [boolean_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $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{boolean_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{boolean_expression}); %item = (__RULE__ => q{boolean_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: []}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [boolean_expression_or]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_expression_or})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_expression_or($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_expression_or]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_expression_or}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/\\|/]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/\\|/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\|)//) { $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__}=$&; pop @item; if (defined $1) {push @item, $item{'boolean_expression_or(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [boolean_expression_or]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_expression_or})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_expression_or($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_expression_or]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_expression_or}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'boolean_expression_or(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my @ors = map { [ $_ ] } @{$item[1]}; # every list element is a PEprs @ors = ( $ors[0], # wrap it with [] for === map { ('++', $_) } @ors[1..$#ors] ); # and squeeze in ++ before every element $return = _mk_if (TM::QL::PE::mk_prs ([ \@ors ])); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{boolean_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{boolean_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{boolean_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::path_l0_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"path_l0_expression"}; Parse::RecDescent::_trace(q{Trying rule: [path_l0_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{tuple_expression, or simple_content, or '~~~path_l0_expression_1~~~'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [tuple_expression, or simple_content postfix]}, Parse::RecDescent::_tracefirst($_[1]), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{path_l0_expression}); %item = (__RULE__ => q{path_l0_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_path_l0_expression]}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_path_l0_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_path_l0_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{_alternation_1_of_production_1_of_rule_path_l0_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [postfix]}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{postfix})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::postfix, 0, 100000000, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [postfix]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{postfix(s?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my @PRs = map { TM::QL::PE::mk_prs ($_) } ($item[1], @{ $item[2] }); $return = pop @PRs; while (my $q = pop @PRs) { # start from the and and $return = TM::QL::PE::unshift_vars ([['@_' => $q]], $return); # unshift } $return; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [tuple_expression, or simple_content postfix]<<}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~path_l0_expression_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{path_l0_expression}); %item = (__RULE__ => q{path_l0_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~path_l0_expression_1~~~']}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~path_l0_expression_1\~\~\~//) { $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{>>Matched production: ['~~~path_l0_expression_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{path_l0_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{path_l0_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{path_l0_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::wuri { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"wuri"}; Parse::RecDescent::_trace(q{Trying rule: [wuri]}, Parse::RecDescent::_tracefirst($_[1]), q{wuri}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'<'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['<' iri '>']}, Parse::RecDescent::_tracefirst($_[1]), q{wuri}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{wuri}); %item = (__RULE__ => q{wuri}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['<']}, Parse::RecDescent::_tracefirst($text), q{wuri}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\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: [iri]}, Parse::RecDescent::_tracefirst($text), q{wuri}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{iri})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::iri($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{wuri}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [iri]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{wuri}, $tracelevel) if defined $::RD_TRACE; $item{q{iri}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['>']}, Parse::RecDescent::_tracefirst($text), q{wuri}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'>'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\>//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{wuri}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $item[2] }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['<' iri '>']<<}, Parse::RecDescent::_tracefirst($text), q{wuri}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{wuri}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{wuri}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{wuri}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{wuri}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::constant { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"constant"}; Parse::RecDescent::_trace(q{Trying rule: [constant]}, Parse::RecDescent::_tracefirst($_[1]), q{constant}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{literal, or item_reference, or '~~~constant_1~~~'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [literal]}, Parse::RecDescent::_tracefirst($_[1]), q{constant}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{constant}); %item = (__RULE__ => q{constant}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [literal]}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::literal($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [literal]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $item{q{literal}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [literal]<<}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [item_reference]}, Parse::RecDescent::_tracefirst($_[1]), q{constant}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{constant}); %item = (__RULE__ => q{constant}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [item_reference]}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::item_reference($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [item_reference]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $item{q{item_reference}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEti (tid => $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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [item_reference]<<}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~constant_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{constant}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{constant}); %item = (__RULE__ => q{constant}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~constant_1~~~']}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~constant_1\~\~\~//) { $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{>>Matched production: ['~~~constant_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{constant}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{constant}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{constant}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{constant}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{constant}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::environment_clause { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"environment_clause"}; Parse::RecDescent::_trace(q{Trying rule: [environment_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{environment_clause}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{tm_content}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [tm_content]}, Parse::RecDescent::_tracefirst($_[1]), q{environment_clause}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{environment_clause}); %item = (__RULE__ => q{environment_clause}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [tm_content]}, Parse::RecDescent::_tracefirst($text), q{environment_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::tm_content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{environment_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [tm_content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{environment_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{tm_content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [tm_content]<<}, Parse::RecDescent::_tracefirst($text), q{environment_clause}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{environment_clause}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{environment_clause}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{environment_clause}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{environment_clause}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::value_l3_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"value_l3_expression"}; Parse::RecDescent::_trace(q{Trying rule: [value_l3_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{value_l3_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{content}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [content]}, Parse::RecDescent::_tracefirst($_[1]), q{value_l3_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{value_l3_expression}); %item = (__RULE__ => q{value_l3_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [content]}, Parse::RecDescent::_tracefirst($text), q{value_l3_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_l3_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l3_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [content]<<}, Parse::RecDescent::_tracefirst($text), q{value_l3_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{value_l3_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{value_l3_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{value_l3_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{value_l3_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::value_l1_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"value_l1_expression"}; Parse::RecDescent::_trace(q{Trying rule: [value_l1_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{, or /-/}); $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{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{value_l1_expression}); %item = (__RULE__ => q{value_l1_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: []}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [value_l2_expression]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_l2_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_l2_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_l2_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_l2_expression}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/([+-])/]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/([+-])/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:([+-]))//) { $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__}=$&; pop @item; if (defined $1) {push @item, $item{'value_l2_expression(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [value_l2_expression]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_l2_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_l2_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_l2_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_l2_expression}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'value_l2_expression(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = _mk_fun_tree (@item); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/-/ value_l2_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{value_l1_expression}); %item = (__RULE__ => q{value_l1_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/-/]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:-)//) { $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 subrule: [value_l2_expression]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_l2_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_l2_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_l2_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_l2_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEfun (fun => 'tmql:unary-minus', args => [ $item[2] ], uri => undef); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [/-/ value_l2_expression]<<}, Parse::RecDescent::_tracefirst($text), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{value_l1_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{value_l1_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{value_l1_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_string { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_string"}; Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_string]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'^^'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['^^' iri]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_string}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_string}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['^^']}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\^\^//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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: [iri]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{iri})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::iri($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [iri]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $item{q{iri}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: ['^^' iri]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{_alternation_1_of_production_1_of_rule_string}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{_alternation_1_of_production_1_of_rule_string}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::decimal { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"decimal"}; Parse::RecDescent::_trace(q{Trying rule: [decimal]}, Parse::RecDescent::_tracefirst($_[1]), q{decimal}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{/-?\\d+\\.\\d+/}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/-?\\d+\\.\\d+/]}, Parse::RecDescent::_tracefirst($_[1]), q{decimal}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{decimal}); %item = (__RULE__ => q{decimal}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/-?\\d+\\.\\d+/]}, Parse::RecDescent::_tracefirst($text), q{decimal}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:-?\d+\.\d+)//) { $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: [/-?\\d+\\.\\d+/]<<}, Parse::RecDescent::_tracefirst($text), q{decimal}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{decimal}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{decimal}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{decimal}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{decimal}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::ellipsis { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"ellipsis"}; Parse::RecDescent::_trace(q{Trying rule: [ellipsis]}, Parse::RecDescent::_tracefirst($_[1]), q{ellipsis}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{','}); $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{ellipsis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{ellipsis}); %item = (__RULE__ => q{ellipsis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [',']}, Parse::RecDescent::_tracefirst($text), q{ellipsis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\,//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{Trying terminal: ['...']}, Parse::RecDescent::_tracefirst($text), q{ellipsis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'...'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\.\.\.//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{>>Matched production: [',' '...']<<}, Parse::RecDescent::_tracefirst($text), q{ellipsis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{ellipsis}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{ellipsis}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{ellipsis}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{ellipsis}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::predicate_postfix { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"predicate_postfix"}; Parse::RecDescent::_trace(q{Trying rule: [predicate_postfix]}, Parse::RecDescent::_tracefirst($_[1]), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'['}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['[' boolean_primitive ']']}, Parse::RecDescent::_tracefirst($_[1]), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{predicate_postfix}); %item = (__RULE__ => q{predicate_postfix}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['[']}, Parse::RecDescent::_tracefirst($text), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\[//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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: [boolean_primitive]}, Parse::RecDescent::_tracefirst($text), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_primitive})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_primitive($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_primitive]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_primitive}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: [']']}, Parse::RecDescent::_tracefirst($text), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{']'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\]//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[2]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['[' boolean_primitive ']']<<}, Parse::RecDescent::_tracefirst($text), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{predicate_postfix}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{predicate_postfix}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{predicate_postfix}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::axis { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"axis"}; Parse::RecDescent::_trace(q{Trying rule: [axis]}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'epsilon', or 'classes', or 'superclasses', or 'players', or 'roles', or 'characteristics', or 'scope', or 'reifier', or 'atomify', or 'locators', or 'indicators'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['epsilon']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['epsilon']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aepsilon//) { $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{>>Matched production: ['epsilon']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['classes']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['classes']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aclasses//) { $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{>>Matched production: ['classes']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['superclasses']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['superclasses']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Asuperclasses//) { $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{>>Matched production: ['superclasses']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['players']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['players']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aplayers//) { $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{>>Matched production: ['players']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['roles']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[4]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['roles']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aroles//) { $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{>>Matched production: ['roles']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['characteristics']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[5]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['characteristics']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acharacteristics//) { $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{>>Matched production: ['characteristics']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['scope']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[6]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['scope']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ascope//) { $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{>>Matched production: ['scope']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['reifier']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[7]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['reifier']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Areifier//) { $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{>>Matched production: ['reifier']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['atomify']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[8]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['atomify']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aatomify//) { $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{>>Matched production: ['atomify']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['locators']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[9]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['locators']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Alocators//) { $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{>>Matched production: ['locators']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['indicators']}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[10]; $text = $_[1]; my $_savetext; @item = (q{axis}); %item = (__RULE__ => q{axis}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['indicators']}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aindicators//) { $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{>>Matched production: ['indicators']<<}, Parse::RecDescent::_tracefirst($text), q{axis}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{axis}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{axis}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{axis}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{axis}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::xml_id { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"xml_id"}; Parse::RecDescent::_trace(q{Trying rule: [xml_id]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_id}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{/[:\\w]+/}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/[:\\w]+/]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_id}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{xml_id}); %item = (__RULE__ => q{xml_id}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/[:\\w]+/]}, Parse::RecDescent::_tracefirst($text), q{xml_id}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[:\w]+)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; Parse::RecDescent::_trace(q{>>Matched production: [/[:\\w]+/]<<}, Parse::RecDescent::_tracefirst($text), q{xml_id}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{xml_id}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{xml_id}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{xml_id}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{xml_id}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::literal { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"literal"}; Parse::RecDescent::_trace(q{Trying rule: [literal]}, Parse::RecDescent::_tracefirst($_[1]), q{literal}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{decimal, or integer, or boolean, or wuri, or string}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [decimal]}, Parse::RecDescent::_tracefirst($_[1]), q{literal}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{literal}); %item = (__RULE__ => q{literal}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [decimal]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::decimal($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [decimal]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $item{q{decimal}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new TM::Literal ($item[1], TM::Literal->DECIMAL); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [decimal]<<}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [integer]}, Parse::RecDescent::_tracefirst($_[1]), q{literal}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{literal}); %item = (__RULE__ => q{literal}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [integer]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::integer($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [integer]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $item{q{integer}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new TM::Literal ($item[1], TM::Literal->INTEGER); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [integer]<<}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [boolean]}, Parse::RecDescent::_tracefirst($_[1]), q{literal}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{literal}); %item = (__RULE__ => q{literal}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [boolean]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new TM::Literal ($item[1], TM::Literal->BOOLEAN); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [boolean]<<}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [wuri]}, Parse::RecDescent::_tracefirst($_[1]), q{literal}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{literal}); %item = (__RULE__ => q{literal}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [wuri]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::wuri($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [wuri]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $item{q{wuri}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new TM::Literal ($item[1], TM::Literal->URI); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [wuri]<<}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [string]}, Parse::RecDescent::_tracefirst($_[1]), q{literal}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[4]; $text = $_[1]; my $_savetext; @item = (q{literal}); %item = (__RULE__ => q{literal}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [string]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::string($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [string]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $item{q{string}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [string]<<}, Parse::RecDescent::_tracefirst($text), q{literal}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{literal}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{literal}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{literal}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{literal}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::postfix { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"postfix"}; Parse::RecDescent::_trace(q{Trying rule: [postfix]}, Parse::RecDescent::_tracefirst($_[1]), q{postfix}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{predicate_postfix, or projection_postfix}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [predicate_postfix]}, Parse::RecDescent::_tracefirst($_[1]), q{postfix}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{postfix}); %item = (__RULE__ => q{postfix}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [predicate_postfix]}, Parse::RecDescent::_tracefirst($text), q{postfix}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::predicate_postfix($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{postfix}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [predicate_postfix]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{postfix}, $tracelevel) if defined $::RD_TRACE; $item{q{predicate_postfix}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [predicate_postfix]<<}, Parse::RecDescent::_tracefirst($text), q{postfix}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [projection_postfix]}, Parse::RecDescent::_tracefirst($_[1]), q{postfix}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{postfix}); %item = (__RULE__ => q{postfix}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [projection_postfix]}, Parse::RecDescent::_tracefirst($text), q{postfix}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::projection_postfix($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{postfix}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [projection_postfix]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{postfix}, $tracelevel) if defined $::RD_TRACE; $item{q{projection_postfix}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [projection_postfix]<<}, Parse::RecDescent::_tracefirst($text), q{postfix}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{postfix}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{postfix}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{postfix}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{postfix}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::step { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"step"}; Parse::RecDescent::_trace(q{Trying rule: [step]}, Parse::RecDescent::_tracefirst($_[1]), q{step}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'<<', or '>>'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['<<', or '>>' axis item_reference]}, Parse::RecDescent::_tracefirst($_[1]), q{step}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{step}); %item = (__RULE__ => q{step}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_step]}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_step($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_step]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; $item{q{_alternation_1_of_production_1_of_rule_step}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying subrule: [axis]}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{axis})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::axis($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [axis]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; $item{q{axis}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [item_reference]}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{item_reference})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::item_reference, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [item_reference]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; $item{q{item_reference(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = new PEna (axi => $item[2], # build the navigation dir => $item[1] eq '>>', tid => $item[3]->[0] ? $item[3]->[0] : undef); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['<<', or '>>' axis item_reference]<<}, Parse::RecDescent::_tracefirst($text), q{step}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{step}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{step}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{step}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{step}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::identifier { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"identifier"}; Parse::RecDescent::_trace(q{Trying rule: [identifier]}, Parse::RecDescent::_tracefirst($_[1]), q{identifier}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{/([\\w\\#\\_][\\w\\-\\.]*)/, or '*'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/([\\w\\#\\_][\\w\\-\\.]*)/]}, Parse::RecDescent::_tracefirst($_[1]), q{identifier}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{identifier}); %item = (__RULE__ => q{identifier}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/([\\w\\#\\_][\\w\\-\\.]*)/]}, Parse::RecDescent::_tracefirst($text), q{identifier}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:([\w\#\_][\w\-\.]*))//) { $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: [/([\\w\\#\\_][\\w\\-\\.]*)/]<<}, Parse::RecDescent::_tracefirst($text), q{identifier}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['*']}, Parse::RecDescent::_tracefirst($_[1]), q{identifier}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{identifier}); %item = (__RULE__ => q{identifier}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['*']}, Parse::RecDescent::_tracefirst($text), q{identifier}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\*//) { $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 action}, Parse::RecDescent::_tracefirst($text), q{identifier}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = 'thing'; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['*']<<}, Parse::RecDescent::_tracefirst($text), q{identifier}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{identifier}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{identifier}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{identifier}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{identifier}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::integer { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"integer"}; Parse::RecDescent::_trace(q{Trying rule: [integer]}, Parse::RecDescent::_tracefirst($_[1]), q{integer}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'~~~integer_1~~~', or /-?\\d+/}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~integer_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{integer}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{integer}); %item = (__RULE__ => q{integer}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~integer_1~~~']}, Parse::RecDescent::_tracefirst($text), q{integer}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~integer_1\~\~\~//) { $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{>>Matched production: ['~~~integer_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{integer}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/-?\\d+/]}, Parse::RecDescent::_tracefirst($_[1]), q{integer}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{integer}); %item = (__RULE__ => q{integer}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/-?\\d+/]}, Parse::RecDescent::_tracefirst($text), q{integer}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:-?\d+)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; Parse::RecDescent::_trace(q{>>Matched production: [/-?\\d+/]<<}, Parse::RecDescent::_tracefirst($text), q{integer}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{integer}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{integer}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{integer}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{integer}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::from_clause { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"from_clause"}; Parse::RecDescent::_trace(q{Trying rule: [from_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{from_clause}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'from'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['from' '%_']}, Parse::RecDescent::_tracefirst($_[1]), q{from_clause}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{from_clause}); %item = (__RULE__ => q{from_clause}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['from']}, Parse::RecDescent::_tracefirst($text), q{from_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Afrom//) { $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: ['%_']}, Parse::RecDescent::_tracefirst($text), q{from_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'%_'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\%_//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{>>Matched production: ['from' '%_']<<}, Parse::RecDescent::_tracefirst($text), q{from_clause}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{from_clause}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{from_clause}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{from_clause}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{from_clause}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::startrule { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"startrule"}; Parse::RecDescent::_trace(q{Trying rule: [startrule]}, Parse::RecDescent::_tracefirst($_[1]), q{startrule}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{query_expression}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [query_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{startrule}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{startrule}); %item = (__RULE__ => q{startrule}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [query_expression]}, Parse::RecDescent::_tracefirst($text), q{startrule}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::query_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{startrule}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [query_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{startrule}, $tracelevel) if defined $::RD_TRACE; $item{q{query_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [query_expression]<<}, Parse::RecDescent::_tracefirst($text), q{startrule}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{startrule}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{startrule}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{startrule}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{startrule}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_2_of_rule_string { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_string"}; Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_string]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'^^'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['^^' iri]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_2_of_rule_string}); %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_string}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['^^']}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\^\^//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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: [iri]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{iri})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::iri($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [iri]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $item{q{iri}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: ['^^' iri]<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{_alternation_1_of_production_2_of_rule_string}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{_alternation_1_of_production_2_of_rule_string}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::roles { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"roles"}; Parse::RecDescent::_trace(q{Trying rule: [roles]}, Parse::RecDescent::_tracefirst($_[1]), q{roles}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $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{roles}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{roles}); %item = (__RULE__ => q{roles}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: []}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [role]}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{role})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::role($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [role]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; $item{q{role}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/,/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; pop @item; if (defined $1) {push @item, $item{'role(s?)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [role]}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{role})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::role($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [role]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; $item{q{role}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; $_tok = [ @item ]; last; } unless ($repcount>=0) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'role(s?)'}=$_tok||[]; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{roles}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{roles}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{roles}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{roles}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{roles}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::ctm_instance { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"ctm_instance"}; Parse::RecDescent::_trace(q{Trying rule: [ctm_instance]}, Parse::RecDescent::_tracefirst($_[1]), q{ctm_instance}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{astma_instance}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [astma_instance]}, Parse::RecDescent::_tracefirst($_[1]), q{ctm_instance}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{ctm_instance}); %item = (__RULE__ => q{ctm_instance}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [astma_instance]}, Parse::RecDescent::_tracefirst($text), q{ctm_instance}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::astma_instance($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{ctm_instance}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [astma_instance]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{ctm_instance}, $tracelevel) if defined $::RD_TRACE; $item{q{astma_instance}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [astma_instance]<<}, Parse::RecDescent::_tracefirst($text), q{ctm_instance}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{ctm_instance}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{ctm_instance}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{ctm_instance}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{ctm_instance}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::content_l2 { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"content_l2"}; Parse::RecDescent::_trace(q{Trying rule: [content_l2]}, Parse::RecDescent::_tracefirst($_[1]), q{content_l2}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'\{', or 'if', or tm_content, or xml_content}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['\{' query_expression '\}']}, Parse::RecDescent::_tracefirst($_[1]), q{content_l2}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{content_l2}); %item = (__RULE__ => q{content_l2}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['\{']}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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: [query_expression]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{query_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::query_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [query_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $item{q{query_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['\}']}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'\}'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if 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{content_l2}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = $item[2]; }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; $item{__ACTION1__}=$_tok; Parse::RecDescent::_trace(q{>>Matched production: ['\{' query_expression '\}']<<}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['if' path_expression 'then' content 'else']}, Parse::RecDescent::_tracefirst($_[1]), q{content_l2}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{content_l2}); %item = (__RULE__ => q{content_l2}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['if']}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aif//) { $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: [path_expression]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{path_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::path_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [path_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $item{q{path_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying terminal: ['then']}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{'then'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Athen//) { $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: [content]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $item{q{content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: ['else']}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{'else'})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_2_of_rule_content_l2, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_2_of_rule_content_l2]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $item{q{_alternation_1_of_production_2_of_rule_content_l2(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = TM::QL::PE::mk_prs (new PEif (con => $item[2], then => $item[4], else => $item[5]->[0] ? $item[5]->[0] : TM::QL::PE::mk_prs ())); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['if' path_expression 'then' content 'else']<<}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [tm_content]}, Parse::RecDescent::_tracefirst($_[1]), q{content_l2}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{content_l2}); %item = (__RULE__ => q{content_l2}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [tm_content]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::tm_content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [tm_content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $item{q{tm_content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [tm_content]<<}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [xml_content]}, Parse::RecDescent::_tracefirst($_[1]), q{content_l2}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{content_l2}); %item = (__RULE__ => q{content_l2}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [xml_content]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::xml_content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [xml_content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [xml_content]<<}, Parse::RecDescent::_tracefirst($text), q{content_l2}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{content_l2}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{content_l2}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{content_l2}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{content_l2}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::path_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"path_expression"}; Parse::RecDescent::_trace(q{Trying rule: [path_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{path_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{association_predicate, or path_l0_expression, or '~~~path_expression_1~~~', or '~~~path_expression_2~~~'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [association_predicate]}, Parse::RecDescent::_tracefirst($_[1]), q{path_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{path_expression}); %item = (__RULE__ => q{path_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [association_predicate]}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::association_predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [association_predicate]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{association_predicate}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [association_predicate]<<}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [path_l0_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{path_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{path_expression}); %item = (__RULE__ => q{path_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [path_l0_expression]}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::path_l0_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [path_l0_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{path_l0_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [path_l0_expression]<<}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~path_expression_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{path_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[2]; $text = $_[1]; my $_savetext; @item = (q{path_expression}); %item = (__RULE__ => q{path_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~path_expression_1~~~']}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~path_expression_1\~\~\~//) { $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{>>Matched production: ['~~~path_expression_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~path_expression_2~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{path_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[3]; $text = $_[1]; my $_savetext; @item = (q{path_expression}); %item = (__RULE__ => q{path_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~path_expression_2~~~']}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~path_expression_2\~\~\~//) { $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{>>Matched production: ['~~~path_expression_2~~~']<<}, Parse::RecDescent::_tracefirst($text), q{path_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{path_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{path_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{path_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{path_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::where_clause { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"where_clause"}; Parse::RecDescent::_trace(q{Trying rule: [where_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{where_clause}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'where'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['where' boolean_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{where_clause}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{where_clause}); %item = (__RULE__ => q{where_clause}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['where']}, Parse::RecDescent::_tracefirst($text), q{where_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Awhere//) { $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: [boolean_expression]}, Parse::RecDescent::_tracefirst($text), q{where_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{boolean_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::boolean_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{where_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [boolean_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{where_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{boolean_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{where_clause}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = TM::QL::PE::mk_prs ($item[2]); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['where' boolean_expression]<<}, Parse::RecDescent::_tracefirst($text), q{where_clause}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{where_clause}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{where_clause}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{where_clause}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{where_clause}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::xml_element { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"xml_element"}; Parse::RecDescent::_trace(q{Trying rule: [xml_element]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_element}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'<'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { local $skip = defined($skip) ? $skip : $Parse::RecDescent::skip; Parse::RecDescent::_trace(q{Trying production: ['<' xml_id xml_attribute xml_rest]}, Parse::RecDescent::_tracefirst($_[1]), q{xml_element}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{xml_element}); %item = (__RULE__ => q{xml_element}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['<']}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\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: [xml_id]}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{xml_id})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::xml_id($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [xml_id]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_id}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [xml_attribute]}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{xml_attribute})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::xml_attribute, 0, 100000000, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [xml_attribute]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_attribute(s?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying directive: []}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $_tok = do { my $oldskip = $skip; $skip='\s*'; $oldskip }; 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 subrule: [xml_rest]}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{xml_rest})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::xml_rest($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [xml_rest]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $item{q{xml_rest}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { if ($item[5] eq '/>') { # no end tag $return = new PExml (sta => $item[2], ats => $item[3]); } else { $return = new PExml (sta => $item[2], ats => $item[3], end => $item[5]->[1], con => $item[5]->[0]); } }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['<' xml_id xml_attribute xml_rest]<<}, Parse::RecDescent::_tracefirst($text), q{xml_element}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{xml_element}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{xml_element}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{xml_element}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{xml_element}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::value_l0_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"value_l0_expression"}; Parse::RecDescent::_trace(q{Trying rule: [value_l0_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{|>)/ value_l1_expression>}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [|>)/ value_l1_expression>]}, Parse::RecDescent::_tracefirst($_[1]), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{value_l0_expression}); %item = (__RULE__ => q{value_l0_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: [|>)/ value_l1_expression>]}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [value_l1_expression]}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_l1_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_l1_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_l1_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_l1_expression}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/(<|<=|=>|>)/]}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/(<|<=|=>|>)/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(<|<=|=>|>))//) { $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__}=$&; pop @item; if (defined $1) {push @item, $item{'value_l1_expression(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [value_l1_expression]}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_l1_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_l1_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_l1_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_l1_expression}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<|>)/ value_l1_expression>]>>}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: [|>)/ value_l1_expression>]<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'value_l1_expression(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = _mk_fun_tree (@item); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [|>)/ value_l1_expression>]<<}, Parse::RecDescent::_tracefirst($text), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{value_l0_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{value_l0_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{value_l0_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::return_clause { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"return_clause"}; Parse::RecDescent::_trace(q{Trying rule: [return_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{return_clause}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'return'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['return' content]}, Parse::RecDescent::_tracefirst($_[1]), q{return_clause}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{return_clause}); %item = (__RULE__ => q{return_clause}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['return']}, Parse::RecDescent::_tracefirst($text), q{return_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Areturn//) { $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: [content]}, Parse::RecDescent::_tracefirst($text), q{return_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{return_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{return_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{content}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: ['return' content]<<}, Parse::RecDescent::_tracefirst($text), q{return_clause}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{return_clause}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{return_clause}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{return_clause}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{return_clause}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::value_l2_expression { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"value_l2_expression"}; Parse::RecDescent::_trace(q{Trying rule: [value_l2_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $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{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{value_l2_expression}); %item = (__RULE__ => q{value_l2_expression}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: []}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [value_l3_expression]}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_l3_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_l3_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_l3_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_l3_expression}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/(\\*|div|mod)/]}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/(\\*|div|mod)/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(\*|div|mod))//) { $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__}=$&; pop @item; if (defined $1) {push @item, $item{'value_l3_expression(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [value_l3_expression]}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_l3_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_l3_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_l3_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $item{q{value_l3_expression}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'value_l3_expression(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = _mk_fun_tree (@item); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{value_l2_expression}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{value_l2_expression}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{value_l2_expression}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::role_type { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"role_type"}; Parse::RecDescent::_trace(q{Trying rule: [role_type]}, Parse::RecDescent::_tracefirst($_[1]), q{role_type}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{item_reference}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [item_reference]}, Parse::RecDescent::_tracefirst($_[1]), q{role_type}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{role_type}); %item = (__RULE__ => q{role_type}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [item_reference]}, Parse::RecDescent::_tracefirst($text), q{role_type}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::item_reference($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{role_type}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [item_reference]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{role_type}, $tracelevel) if defined $::RD_TRACE; $item{q{item_reference}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [item_reference]<<}, Parse::RecDescent::_tracefirst($text), q{role_type}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{role_type}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{role_type}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{role_type}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{role_type}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::select_clause { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"select_clause"}; Parse::RecDescent::_trace(q{Trying rule: [select_clause]}, Parse::RecDescent::_tracefirst($_[1]), q{select_clause}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'select'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['select' ]}, Parse::RecDescent::_tracefirst($_[1]), q{select_clause}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{select_clause}); %item = (__RULE__ => q{select_clause}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['select']}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aselect//) { $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 operator: []}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [value_expression]}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{value_expression}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/,/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:,)//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; pop @item; if (defined $1) {push @item, $item{'value_expression(s?)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [value_expression]}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{value_expression})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::value_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [value_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $item{q{value_expression}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; $_tok = [ @item ]; last; } unless ($repcount>=0) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'value_expression(s?)'}=$_tok||[]; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = TM::QL::PE::mk_prs (new PEpr (arr => [ map { [[[ $_ ]]] } @{$item[2]} ]) ); }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['select' ]<<}, Parse::RecDescent::_tracefirst($text), q{select_clause}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{select_clause}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{select_clause}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{select_clause}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{select_clause}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::player { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"player"}; Parse::RecDescent::_trace(q{Trying rule: [player]}, Parse::RecDescent::_tracefirst($_[1]), q{player}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{path_expression}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [path_expression]}, Parse::RecDescent::_tracefirst($_[1]), q{player}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{player}); %item = (__RULE__ => q{player}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [path_expression]}, Parse::RecDescent::_tracefirst($text), q{player}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::path_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{player}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [path_expression]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{player}, $tracelevel) if defined $::RD_TRACE; $item{q{path_expression}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{>>Matched production: [path_expression]<<}, Parse::RecDescent::_tracefirst($text), q{player}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{player}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{player}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{player}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{player}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::content_l0 { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"content_l0"}; Parse::RecDescent::_trace(q{Trying rule: [content_l0]}, Parse::RecDescent::_tracefirst($_[1]), q{content_l0}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{}); $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{content_l0}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{content_l0}); %item = (__RULE__ => q{content_l0}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying operator: []}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{})->at($text); $_tok = undef; OPLOOP: while (1) { $repcount = 0; my @item; # MATCH LEFTARG Parse::RecDescent::_trace(q{Trying subrule: [content_l1]}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content_l1})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content_l1($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content_l1]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; $item{q{content_l1}} = $_tok; push @item, $_tok; } $repcount++; my $savetext = $text; my $backtrack; # MATCH (OP RIGHTARG)(s) while ($repcount < 100000000) { $backtrack = 0; Parse::RecDescent::_trace(q{Trying terminal: [/(\\+\\+)/]}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{/(\\+\\+)/})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:(\+\+))//) { $expectation->failed(); Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__PATTERN1__}=$&; pop @item; if (defined $1) {push @item, $item{'content_l1(s)'}=$1; $backtrack=1;} Parse::RecDescent::_trace(q{Trying subrule: [content_l1]}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{content_l1})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::content_l1($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [content_l1]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; $item{q{content_l1}} = $_tok; push @item, $_tok; } $savetext = $text; $repcount++; } $text = $savetext; pop @item if $backtrack; unless (@item) { undef $_tok; last } $_tok = [ @item ]; last; } unless ($repcount>=1) { Parse::RecDescent::_trace(q{<]>>}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [} . qq{@{$_tok||[]}} . q{]}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; push @item, $item{'content_l1(s)'}=$_tok||[]; Parse::RecDescent::_trace(q{>>Matched production: []<<}, Parse::RecDescent::_tracefirst($text), q{content_l0}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{content_l0}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{content_l0}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{content_l0}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{content_l0}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::navigation { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"navigation"}; Parse::RecDescent::_trace(q{Trying rule: [navigation]}, Parse::RecDescent::_tracefirst($_[1]), q{navigation}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{step, or '~~~navigation_op_1~~~'}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [step navigation]}, Parse::RecDescent::_tracefirst($_[1]), q{navigation}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{navigation}); %item = (__RULE__ => q{navigation}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying subrule: [step]}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; if (1) { no strict qw{refs}; $expectation->is(q{})->at($text); unless (defined ($_tok = Parse::RecDescent::TM::QL::CParser::step($thisparser,$text,$repeating,$_noactions,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $expectation->failed(); last; } Parse::RecDescent::_trace(q{>>Matched subrule: [step]<< (return value: [} . $_tok . q{]}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $item{q{step}} = $_tok; push @item, $_tok; } Parse::RecDescent::_trace(q{Trying repeated subrule: [navigation]}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $expectation->is(q{navigation})->at($text); unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::TM::QL::CParser::navigation, 0, 1, $_noactions,$expectation,sub { \@arg }))) { Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched repeated subrule: [navigation]<< (} . @$_tok . q{ times)}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $item{q{navigation(?)}} = $_tok; push @item, $_tok; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = [ $item[1], $item[2]->[0] ? @{$item[2]->[0]} : () ];}; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [step navigation]<<}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['~~~navigation_op_1~~~']}, Parse::RecDescent::_tracefirst($_[1]), q{navigation}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{navigation}); %item = (__RULE__ => q{navigation}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['~~~navigation_op_1~~~']}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\~\~\~navigation_op_1\~\~\~//) { $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 action}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { $return = [ '~~~navigation_op_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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: ['~~~navigation_op_1~~~']<<}, Parse::RecDescent::_tracefirst($text), q{navigation}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{navigation}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{navigation}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{navigation}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{navigation}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::_alternation_1_of_production_1_of_rule_step { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_step"}; Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_step]}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{'<<', or '>>'}); $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{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_step}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_step}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['<<']}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\<\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{>>Matched production: ['<<']<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: ['>>']}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[1]; $text = $_[1]; my $_savetext; @item = (q{_alternation_1_of_production_1_of_rule_step}); %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_step}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: ['>>']}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\>\>//) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{>>Matched production: ['>>']<<}, Parse::RecDescent::_tracefirst($text), q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{_alternation_1_of_production_1_of_rule_step}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{_alternation_1_of_production_1_of_rule_step}, $tracelevel) } $_[1] = $text; return $return; } # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args) sub Parse::RecDescent::TM::QL::CParser::prefix { my $thisparser = $_[0]; use vars q{$tracelevel}; local $tracelevel = ($tracelevel||0)+1; $ERRORS = 0; my $thisrule = $thisparser->{"rules"}{"prefix"}; Parse::RecDescent::_trace(q{Trying rule: [prefix]}, Parse::RecDescent::_tracefirst($_[1]), q{prefix}, $tracelevel) if defined $::RD_TRACE; my $err_at = @{$thisparser->{errors}}; my $score; my $score_return; my $_tok; my $return = undef; my $_matched=0; my $commit=0; my @item = (); my %item = (); my $repeating = defined($_[2]) && $_[2]; my $_noactions = defined($_[3]) && $_[3]; my @arg = defined $_[4] ? @{ &{$_[4]} } : (); my %arg = ($#arg & 01) ? @arg : (@arg, undef); my $text; my $lastsep=""; my $expectation = new Parse::RecDescent::Expectation(q{/\\w+/}); $expectation->at($_[1]); my $thisline; tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser; while (!$_matched && !$commit) { Parse::RecDescent::_trace(q{Trying production: [/\\w+/ ':']}, Parse::RecDescent::_tracefirst($_[1]), q{prefix}, $tracelevel) if defined $::RD_TRACE; my $thisprod = $thisrule->{"prods"}[0]; $text = $_[1]; my $_savetext; @item = (q{prefix}); %item = (__RULE__ => q{prefix}); my $repcount = 0; Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text), q{prefix}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:\w+)//) { $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 terminal: [':']}, Parse::RecDescent::_tracefirst($text), q{prefix}, $tracelevel) if defined $::RD_TRACE; $lastsep = ""; $expectation->is(q{':'})->at($text); unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\://) { $expectation->failed(); Parse::RecDescent::_trace(qq{<>}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; last; } Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [} . $& . q{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $item{__STRING1__}=$&; Parse::RecDescent::_trace(q{Trying action}, Parse::RecDescent::_tracefirst($text), q{prefix}, $tracelevel) if defined $::RD_TRACE; $_tok = ($_noactions) ? 0 : do { my @prefixes; ## TODO prefixes $return = undef; # pessimism rules this planet foreach my $prefix (@prefixes) { if ($prefix->{$item[1]}) { $return = $prefix->{$item[1]}->[1]; # URI for prefix last; } } 1; # parsing is ok otherwise }; 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{])}, Parse::RecDescent::_tracefirst($text)) if defined $::RD_TRACE; push @item, $_tok; Parse::RecDescent::_trace(q{>>Matched production: [/\\w+/ ':']<<}, Parse::RecDescent::_tracefirst($text), q{prefix}, $tracelevel) if defined $::RD_TRACE; $_matched = 1; last; } unless ( $_matched || defined($score) ) { $_[1] = $text; # NOT SURE THIS IS NEEDED Parse::RecDescent::_trace(q{<>}, Parse::RecDescent::_tracefirst($_[1]), q{prefix}, $tracelevel) if defined $::RD_TRACE; return undef; } if (!defined($return) && defined($score)) { Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "", q{prefix}, $tracelevel) if defined $::RD_TRACE; $return = $score_return; } splice @{$thisparser->{errors}}, $err_at; $return = $item[$#item] unless defined $return; if (defined $::RD_TRACE) { Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} . $return . q{])}, "", q{prefix}, $tracelevel); Parse::RecDescent::_trace(q{(consumed: [} . Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])}, Parse::RecDescent::_tracefirst($text), , q{prefix}, $tracelevel) } $_[1] = $text; return $return; } } package TM::QL::CParser; sub new { my $self = bless( { '_AUTOTREE' => undef, 'localvars' => '', 'startcode' => '', '_check' => { 'thisoffset' => '', 'itempos' => '', 'prevoffset' => '', 'prevline' => '', 'prevcolumn' => '', 'thiscolumn' => '' }, 'namespace' => 'Parse::RecDescent::TM::QL::CParser', '_AUTOACTION' => undef, 'rules' => { 'astma_instance' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'xxx', 'hashname' => '__STRING1__', 'description' => '\'xxx\'', 'lookahead' => 0, 'line' => -96 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'astma_instance', 'vars' => '', 'line' => -98 }, 'Parse::RecDescent::Rule' ), 'uri_or_qname' => bless( { 'impcount' => 0, 'calls' => [ 'prefix', 'identifier' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'prefix', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -117 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'identifier', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -117 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -117, 'code' => '{ $return = $item[1]->[0] ? $item[1]->[0] . $item[2] : $item[2]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'uri_or_qname', 'vars' => '', 'line' => -119 }, 'Parse::RecDescent::Rule' ), 'xml_text' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '$arg[0]', 'hashname' => '__PATTERN1__', 'description' => '/$arg[0]/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -56, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -56, 'code' => '{ $return = new TM::Literal ($item[1]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'xml_text', 'vars' => '', 'line' => -56 }, 'Parse::RecDescent::Rule' ), 'association_predicate' => bless( { 'impcount' => 0, 'calls' => [ 'item_reference', 'roles', 'ellipsis' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -192, 'code' => '{ undef; }' }, 'Parse::RecDescent::Action' ), bless( { 'subrule' => 'item_reference', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -192 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => -192 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'roles', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -192 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'ellipsis', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -192 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ')', 'hashname' => '__STRING2__', 'description' => '\')\'', 'lookahead' => 0, 'line' => -192 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'association_predicate', 'vars' => '', 'line' => -194 }, 'Parse::RecDescent::Rule' ), 'content' => bless( { 'impcount' => 0, 'calls' => [ 'content_l0' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'expected' => '', 'min' => 1, 'name' => '\'content_l0(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'content_l0', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 39 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'content_l0', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 39 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => '(--)', 'hashname' => '__PATTERN1__', 'description' => '/(--)/', 'lookahead' => 0, 'rdelim' => '/', 'line' => 39, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 39, 'code' => '{ $return = TM::QL::PE::mk_prs ($item[1]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~content_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~content_1~~~\'', 'lookahead' => 0, 'line' => -45 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'content', 'vars' => '', 'line' => 37 }, 'Parse::RecDescent::Rule' ), 'string' => bless( { 'impcount' => 1, 'calls' => [ '_alternation_1_of_production_1_of_rule_string', '_alternation_1_of_production_2_of_rule_string' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '\\"{3}(.*?)\\"{3}', 'hashname' => '__PATTERN1__', 'description' => '/\\\\"\\{3\\}(.*?)\\\\"\\{3\\}/s', 'lookahead' => 0, 'rdelim' => '/', 'line' => -24, 'mod' => 's', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'subrule' => '_alternation_1_of_production_1_of_rule_string', 'expected' => '\'^^\'', 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -24 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -24, 'code' => '{ $return = new TM::Literal ($1, $item[2]->[0] || TM::Literal->STRING); }' }, '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( { 'pattern' => '\\"([^\\n]*?)\\"', 'hashname' => '__PATTERN1__', 'description' => '/\\\\"([^\\\\n]*?)\\\\"/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -23, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'subrule' => '_alternation_1_of_production_2_of_rule_string', 'expected' => '\'^^\'', 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -23 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -23, 'code' => '{ $return = new TM::Literal ($1, $item[2]->[0] || TM::Literal->STRING); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -23 }, 'Parse::RecDescent::Production' ) ], 'name' => 'string', 'vars' => '', 'line' => -26 }, 'Parse::RecDescent::Rule' ), 'flwr_expression' => bless( { 'impcount' => 0, 'calls' => [ 'for_clause', 'where_clause', 'return_clause' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'for_clause', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => -290 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'where_clause', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -289 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'return_clause', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -288 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -287, 'code' => '{ $return = $item[3]; # first collect the return clause $return = TM::QL::PE::unshift_vars ([[\'@_\' => $item[2]->[0]]], $return) # merge it in if $item[2]->[0]; # if there is a where clause, my %vars; # registers seen variables my @fors = reverse # outest variable first map { ($_->[0] = $vars{ $_->[0] } ? \'$_\' : $_->[0]) # if variable is seen inside => $_ and ++$vars{ $_->[0] } # mark variable as seen and $_ } # and forward the whole pair reverse # start from the end map { @$_ } # unwrap double nested list @{$item[1]}; # take the var-assocs [[ $a => ...],[ $b => ..] ] $return = TM::QL::PE::unshift_vars (\\@fors, $return); # and push them }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'flwr_expression', 'vars' => '', 'line' => -292 }, 'Parse::RecDescent::Rule' ), '_alternation_1_of_production_1_of_rule_query_expression' => bless( { 'impcount' => 0, 'calls' => [ 'select_expression', 'flwr_expression', 'path_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'select_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'flwr_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 2 }, 'Parse::RecDescent::Subrule' ) ], 'line' => 2 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'path_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 3 }, 'Parse::RecDescent::Subrule' ) ], 'line' => 3 }, 'Parse::RecDescent::Production' ) ], 'name' => '_alternation_1_of_production_1_of_rule_query_expression', 'vars' => '', 'line' => 1 }, 'Parse::RecDescent::Rule' ), 'simple_content' => bless( { 'impcount' => 0, 'calls' => [ 'anchor', 'navigation' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'anchor', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -214 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'navigation', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -214 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -214, 'code' => '{ $return = new PEpr (arr => [ [[[ new PEpe (val => $item[1], mos => $item[2]->[0] || []) ]]]]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'simple_content', 'vars' => '', 'line' => -214 }, 'Parse::RecDescent::Rule' ), 'boolean_primitive' => bless( { 'impcount' => 0, 'calls' => [ 'boolean_primitive', 'boolean_expression', 'forall_clause', 'exists_clause' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => 'not', 'hashname' => '__STRING1__', 'description' => '\'not\'', 'lookahead' => 0, 'line' => -253 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'boolean_primitive', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -253 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -253, 'code' => '{ $return = _invert_if ($item[2]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => 'false', 'hashname' => '__STRING1__', 'description' => '\'false\'', 'lookahead' => 0, 'line' => -252 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -252, 'code' => '{ $return = _mk_if (TM::QL::PE::mk_prs ()); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -252 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => -251 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'boolean_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -251 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ')', 'hashname' => '__STRING2__', 'description' => '\')\'', 'lookahead' => 0, 'line' => -251 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -251, 'code' => '{ $return = $item[2]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => -251 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'forall_clause', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -250 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -250, 'code' => '{ $return = _invert_if (_mk_if ($item[1])); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -250 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '4', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'exists_clause', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -249 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -249, 'code' => '{ $return = _mk_if ($item[1]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -250 }, 'Parse::RecDescent::Production' ) ], 'name' => 'boolean_primitive', 'vars' => '', 'line' => -253 }, 'Parse::RecDescent::Rule' ), 'exists_clause' => bless( { 'impcount' => 0, 'calls' => [ 'variable_association', 'boolean_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => 'some', 'hashname' => '__STRING1__', 'description' => '\'some\'', 'lookahead' => 0, 'line' => -247 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'variable_association', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => -247 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => 'satisfies', 'hashname' => '__STRING2__', 'description' => '\'satisfies\'', 'lookahead' => 0, 'line' => -246 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'boolean_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -246 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -246, 'code' => '{ $return = TM::QL::PE::mk_prs ($item[4]); # build prototype $return = TM::QL::PE::unshift_vars ($item[2], $return); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'exists_clause', 'vars' => '', 'line' => -247 }, 'Parse::RecDescent::Rule' ), 'anchor' => bless( { 'impcount' => 0, 'calls' => [ 'constant', 'variable' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'constant', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -137 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'variable', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -136 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -136 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~anchor_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~anchor_1~~~\'', 'lookahead' => 0, 'line' => -44 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'anchor', 'vars' => '', 'line' => -139 }, 'Parse::RecDescent::Rule' ), 'tm_content' => bless( { 'impcount' => 0, 'calls' => [ 'ctm_instance' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '"""', 'hashname' => '__STRING1__', 'description' => '\'"""\'', 'lookahead' => 0, 'line' => -100 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'ctm_instance', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -100 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '"""', 'hashname' => '__STRING2__', 'description' => '\'"""\'', 'lookahead' => 0, 'line' => -100 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -100, 'code' => '{ $return = $item[2]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'tm_content', 'vars' => '', 'line' => -102 }, 'Parse::RecDescent::Rule' ), 'value_expression' => bless( { 'impcount' => 0, 'calls' => [ 'value_l0_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'value_l0_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -174 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'value_expression', 'vars' => '', 'line' => -174 }, 'Parse::RecDescent::Rule' ), 'iri' => bless( { 'impcount' => 0, 'calls' => [ 'qname' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '\\w[\\w\\d\\+\\-\\.]+:\\/([^\\.\\s:;]|\\.(?!\\s)|:(?!\\s)|;(?!\\s))+', 'hashname' => '__PATTERN1__', 'description' => '/\\\\w[\\\\w\\\\d\\\\+\\\\-\\\\.]+:\\\\/([^\\\\.\\\\s:;]|\\\\.(?!\\\\s)|:(?!\\\\s)|;(?!\\\\s))+/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -7, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'qname', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -5 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -6 }, 'Parse::RecDescent::Production' ) ], 'name' => 'iri', 'vars' => '', 'line' => -7 }, 'Parse::RecDescent::Rule' ), 'query_expression' => bless( { 'impcount' => 1, 'calls' => [ 'environment_clause', '_alternation_1_of_production_1_of_rule_query_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'environment_clause', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -331 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => '_alternation_1_of_production_1_of_rule_query_expression', 'matchrule' => 0, 'implicit' => 'select_expression, or flwr_expression, or path_expression', 'argcode' => undef, 'lookahead' => 0, 'line' => -328 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'query_expression', 'vars' => '', 'line' => -333 }, 'Parse::RecDescent::Rule' ), 'for_clause' => bless( { 'impcount' => 0, 'calls' => [ 'variable_association' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'pattern' => 'for', 'hashname' => '__STRING1__', 'description' => '\'for\'', 'lookahead' => 0, 'line' => -271 }, 'Parse::RecDescent::Literal' ), bless( { 'expected' => '', 'min' => 1, 'name' => '\'variable_association(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'variable_association', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -271 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'variable_association', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -271 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => ',', 'hashname' => '__PATTERN1__', 'description' => '/,/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -271, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -271, 'code' => '{ $return = $item[2]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'for_clause', 'vars' => '', 'line' => -271 }, 'Parse::RecDescent::Rule' ), 'variable_association' => bless( { 'impcount' => 0, 'calls' => [ 'variable', 'content' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'variable', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -268 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => 'in', 'hashname' => '__STRING1__', 'description' => '\'in\'', 'lookahead' => 0, 'line' => -268 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -268 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -268, 'code' => '{ $return = [ $item[1]->nam => $item[3] ]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'variable_association', 'vars' => '', 'line' => -269 }, 'Parse::RecDescent::Rule' ), 'boolean_expression_or' => bless( { 'impcount' => 0, 'calls' => [ 'boolean_primitive' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'expected' => '', 'min' => 1, 'name' => '\'boolean_primitive(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'boolean_primitive', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -254 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'boolean_primitive', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -254 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => '\\&', 'hashname' => '__PATTERN1__', 'description' => '/\\\\&/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -254, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -254, 'code' => '{ $return = PEprs->new (arr => $item[1]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'boolean_expression_or', 'vars' => '', 'line' => -254 }, 'Parse::RecDescent::Rule' ), 'uri' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '(\\w+:[^\\"\\s)\\]\\>]+)', 'hashname' => '__PATTERN1__', 'description' => '/(\\\\w+:[^\\\\"\\\\s)\\\\]\\\\>]+)/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -9, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'uri', 'vars' => '', 'line' => -9 }, 'Parse::RecDescent::Rule' ), 'forall_clause' => bless( { 'impcount' => 0, 'calls' => [ 'variable_association', 'boolean_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'pattern' => 'every', 'hashname' => '__STRING1__', 'description' => '\'every\'', 'lookahead' => 0, 'line' => -242 }, 'Parse::RecDescent::Literal' ), bless( { 'expected' => '', 'min' => 1, 'name' => '\'variable_association(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'variable_association', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -242 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'variable_association', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -242 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => ',', 'hashname' => '__PATTERN1__', 'description' => '/,/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -242, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'pattern' => 'satisfies', 'hashname' => '__STRING2__', 'description' => '\'satisfies\'', 'lookahead' => 0, 'line' => -241 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'boolean_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -241 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -241, 'code' => '{ # forall A satisfies B = !some A satisfy not B $return = TM::QL::PE::mk_prs (_invert_if ($item[4])); # negate boolean expression $return = TM::QL::PE::unshift_vars ($item[2], $return); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'forall_clause', 'vars' => '', 'line' => -242 }, 'Parse::RecDescent::Rule' ), '_alternation_1_of_production_1_of_rule_function_invocation' => bless( { 'impcount' => 0, 'calls' => [ 'tuple_expression', 'roles' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'tuple_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'roles', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Subrule' ) ], 'line' => 1 }, 'Parse::RecDescent::Production' ) ], 'name' => '_alternation_1_of_production_1_of_rule_function_invocation', 'vars' => '', 'line' => 1 }, 'Parse::RecDescent::Rule' ), 'role' => bless( { 'impcount' => 0, 'calls' => [ 'role_type', 'player' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'role_type', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -186 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ':', 'hashname' => '__STRING1__', 'description' => '\':\'', 'lookahead' => 0, 'line' => -186 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'player', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -186 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'role', 'vars' => '', 'line' => -186 }, 'Parse::RecDescent::Rule' ), 'item_reference' => bless( { 'impcount' => 0, 'calls' => [ 'uri', 'identifier' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'uri', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -131 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -131, 'code' => '{ $return = \\ $item[1]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'identifier', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -130 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -130 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~item_reference_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~item_reference_1~~~\'', 'lookahead' => 0, 'line' => -50 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '~~~item_reference_op_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~item_reference_op_1~~~\'', 'lookahead' => 0, 'line' => -49 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -49, 'code' => '{ $return = [ \'~~~item_reference_op_1~~~\' ]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => -49 }, 'Parse::RecDescent::Production' ) ], 'name' => 'item_reference', 'vars' => '', 'line' => -131 }, 'Parse::RecDescent::Rule' ), 'content_l1' => bless( { 'impcount' => 0, 'calls' => [ 'content_l2' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'op' => [], 'items' => [ bless( { 'expected' => '', 'min' => 1, 'name' => '\'content_l2(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'content_l2', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 43 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'content_l2', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 43 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => '(==)', 'hashname' => '__PATTERN1__', 'description' => '/(==)/', 'lookahead' => 0, 'rdelim' => '/', 'line' => 43, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'content_l1', 'vars' => '', 'line' => 43 }, 'Parse::RecDescent::Rule' ), 'variable' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '%_', 'hashname' => '__STRING1__', 'description' => '\'%_\'', 'lookahead' => 0, 'line' => -146 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -146, 'code' => '{ $return = new PEall; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '@_', 'hashname' => '__STRING1__', 'description' => '\'@_\'', 'lookahead' => 0, 'line' => -145 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -145, 'code' => '{ $return = new PEvar (nam => $item[1]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -145 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '$_', 'hashname' => '__STRING1__', 'description' => '\'$_\'', 'lookahead' => 0, 'line' => -144 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -144, 'code' => '{ $return = new PEvar (nam => $item[1]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -144 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '(\\$\\d+)', 'hashname' => '__PATTERN1__', 'description' => '/(\\\\$\\\\d+)/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -143, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -143, 'code' => '{ $return = new PEvar (nam => $1); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -143 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '4', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '[%@\\$][\\w\\#\\_][\\w\\-\\.]*', 'hashname' => '__PATTERN1__', 'description' => '/[%@\\\\$][\\\\w\\\\#\\\\_][\\\\w\\\\-\\\\.]*/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -142, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -142, 'code' => '{ $return = new PEvar (nam => $item[1]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -142 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '5', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~variable_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~variable_1~~~\'', 'lookahead' => 0, 'line' => -48 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'variable', 'vars' => '', 'line' => -148 }, 'Parse::RecDescent::Rule' ), 'function_invocation' => bless( { 'impcount' => 1, 'calls' => [ 'item_reference', '_alternation_1_of_production_1_of_rule_function_invocation' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'item_reference', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -151 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => '_alternation_1_of_production_1_of_rule_function_invocation', 'matchrule' => 0, 'implicit' => 'tuple_expression, or roles', 'argcode' => undef, 'lookahead' => 0, 'line' => -151 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'function_invocation', 'vars' => '', 'line' => -153 }, 'Parse::RecDescent::Rule' ), 'select_expression' => bless( { 'impcount' => 0, 'calls' => [ 'select_clause', 'from_clause', 'where_clause' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'select_clause', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -322 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'from_clause', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -321 }, 'Parse::RecDescent::Repetition' ), bless( { 'subrule' => 'where_clause', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -320 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -320, 'code' => '{ $return = $item[1]; my $where = $item[3]->[0] || TM::QL::PE::mk_prs ( _mk_if() ); # get an \'if\', default is \'true\' my @frees = TM::QL::PE::find_free_vars ($where); # find _free_ vars in where $return = TM::QL::PE::unshift_vars ([[\'@_\' => $where]], $return); $return = TM::QL::PE::unshift_vars ([ map { # and keep these assignments [ $_ => TM::QL::PE::mk_prs (new PEall) ] # create pairs var => %_ all of them } @frees ], $return); # and push them }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'select_expression', 'vars' => '', 'line' => -324 }, 'Parse::RecDescent::Rule' ), 'projection_postfix' => bless( { 'impcount' => 0, 'calls' => [ 'tuple_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'tuple_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -216 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'projection_postfix', 'vars' => '', 'line' => -218 }, 'Parse::RecDescent::Rule' ), '_alternation_1_of_production_2_of_rule_content_l2' => bless( { 'impcount' => 0, 'calls' => [ 'content' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'else', 'hashname' => '__STRING1__', 'description' => '\'else\'', 'lookahead' => 0, 'line' => 388 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 388 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => '_alternation_1_of_production_2_of_rule_content_l2', 'vars' => '', 'line' => 388 }, 'Parse::RecDescent::Rule' ), 'xml_segment' => bless( { 'impcount' => 0, 'calls' => [ 'xml_element', 'xml_fragment' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'xml_element', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -62 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'xml_fragment', 'matchrule' => 0, 'implicit' => undef, 'argcode' => '[\'[^<{]+\']', 'lookahead' => 0, 'line' => -62 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -62 }, 'Parse::RecDescent::Production' ) ], 'name' => 'xml_segment', 'vars' => '', 'line' => -62 }, 'Parse::RecDescent::Rule' ), 'boolean' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'true', 'hashname' => '__STRING1__', 'description' => '\'true\'', 'lookahead' => 0, 'line' => -13 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'false', 'hashname' => '__STRING1__', 'description' => '\'false\'', 'lookahead' => 0, 'line' => -13 }, 'Parse::RecDescent::Literal' ) ], 'line' => -13 }, 'Parse::RecDescent::Production' ) ], 'name' => 'boolean', 'vars' => '', 'line' => -16 }, 'Parse::RecDescent::Rule' ), 'xml_attribute' => bless( { 'impcount' => 0, 'calls' => [ 'xml_id', 'xml_fragment' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 2, 'uncommit' => undef, 'error' => undef, 'patcount' => 2, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => -69, 'code' => 'my $oldskip = $skip; $skip=\'\\s*\'; $oldskip' }, 'Parse::RecDescent::Directive' ), bless( { 'subrule' => 'xml_id', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -69 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '=', 'hashname' => '__STRING1__', 'description' => '\'=\'', 'lookahead' => 0, 'line' => -69 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => '[\\\'\\"]', 'hashname' => '__PATTERN1__', 'description' => '/[\\\\\'\\\\"]/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -69, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => -69, 'code' => 'my $oldskip = $skip; $skip=""; $oldskip' }, 'Parse::RecDescent::Directive' ), bless( { 'subrule' => 'xml_fragment', 'expected' => undef, 'min' => 1, 'argcode' => '[\'[^\\"\\\'{]+\']', 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => -69 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => '[\\\'\\"]', 'hashname' => '__PATTERN2__', 'description' => '/[\\\\\'\\\\"]/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -69, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -68, 'code' => '{ $return = [ $item[2], $item[6] ]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'xml_attribute', 'vars' => '', 'line' => -69 }, 'Parse::RecDescent::Rule' ), 'xml_rest' => bless( { 'impcount' => 0, 'calls' => [ 'xml_segment', 'xml_id' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '/>', 'hashname' => '__STRING1__', 'description' => '\'/>\'', 'lookahead' => 0, 'line' => -66 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 3, 'dircount' => 2, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '>', 'hashname' => '__STRING1__', 'description' => '\'>\'', 'lookahead' => 0, 'line' => -65 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => -65, 'code' => 'my $oldskip = $skip; $skip=""; $oldskip' }, 'Parse::RecDescent::Directive' ), bless( { 'subrule' => 'xml_segment', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => -65 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => ' '__STRING2__', 'description' => '\' 0, 'line' => -65 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE2__', 'name' => '', 'lookahead' => 0, 'line' => -65, 'code' => 'my $oldskip = $skip; $skip=\'\\s*\'; $oldskip' }, 'Parse::RecDescent::Directive' ), bless( { 'subrule' => 'xml_id', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -65 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '>', 'hashname' => '__STRING3__', 'description' => '\'>\'', 'lookahead' => 0, 'line' => -65 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -64, 'code' => '{ $return = [ $item[3], $item[5] ]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => -65 }, 'Parse::RecDescent::Production' ) ], 'name' => 'xml_rest', 'vars' => '', 'line' => -66 }, 'Parse::RecDescent::Rule' ), 'tuple_expression' => bless( { 'impcount' => 0, 'calls' => [ 'value_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'pattern' => '(', 'hashname' => '__STRING1__', 'description' => '\'(\'', 'lookahead' => 0, 'line' => -176 }, 'Parse::RecDescent::Literal' ), bless( { 'expected' => '', 'min' => 0, 'name' => '\'value_expression(s?)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'value_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -176 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'value_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -176 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => ',', 'hashname' => '__PATTERN1__', 'description' => '/,/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -176, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'pattern' => ')', 'hashname' => '__STRING2__', 'description' => '\')\'', 'lookahead' => 0, 'line' => -176 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -176, 'code' => '{ $return = new PEpr (arr => [ map { [[[ $_ ]]] } @{$item[2]} ]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'tuple_expression', 'vars' => '', 'line' => -178 }, 'Parse::RecDescent::Rule' ), '_alternation_1_of_production_1_of_rule_path_l0_expression' => bless( { 'impcount' => 0, 'calls' => [ 'tuple_expression', 'simple_content' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'tuple_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'simple_content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Subrule' ) ], 'line' => 1 }, 'Parse::RecDescent::Production' ) ], 'name' => '_alternation_1_of_production_1_of_rule_path_l0_expression', 'vars' => '', 'line' => 1 }, 'Parse::RecDescent::Rule' ), 'xml_content' => bless( { 'impcount' => 0, 'calls' => [ 'xml_element' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 2, 'actcount' => 1, 'items' => [ bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => -92, 'code' => 'my $oldskip = $skip; $skip=""; $oldskip' }, 'Parse::RecDescent::Directive' ), bless( { 'pattern' => '\\s*', 'hashname' => '__PATTERN1__', 'description' => '/\\\\s*/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -92, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'subrule' => 'xml_element', 'expected' => undef, 'min' => 1, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's', 'lookahead' => 0, 'line' => -92 }, 'Parse::RecDescent::Repetition' ), bless( { 'pattern' => '\\s*', 'hashname' => '__PATTERN2__', 'description' => '/\\\\s*/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -92, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -92, 'code' => '{ $return = TM::QL::PE::mk_prs ( new PExml (con => [ new TM::Literal ($item[2]), @{$item[3]}, new TM::Literal ($item[4]) ]) ); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'xml_content', 'vars' => '', 'line' => -94 }, 'Parse::RecDescent::Rule' ), 'xml_fragment' => bless( { 'impcount' => 0, 'calls' => [ 'xml_text', 'query_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'xml_text', 'matchrule' => 0, 'implicit' => undef, 'argcode' => '[$arg[0]]', 'lookahead' => 0, 'line' => -59 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 2, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '{', 'hashname' => '__STRING1__', 'description' => '\'\\{\'', 'lookahead' => 0, 'line' => -58 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => -58, 'code' => 'my $oldskip = $skip; $skip=\'\\s*\'; $oldskip' }, 'Parse::RecDescent::Directive' ), bless( { 'subrule' => 'query_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -58 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '}', 'hashname' => '__STRING2__', 'description' => '\'\\}\'', 'lookahead' => 0, 'line' => -58 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -58, 'code' => '{ $return = $item[3]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => -58 }, 'Parse::RecDescent::Production' ) ], 'name' => 'xml_fragment', 'vars' => '', 'line' => -59 }, 'Parse::RecDescent::Rule' ), 'boolean_expression' => bless( { 'impcount' => 0, 'calls' => [ 'boolean_expression_or' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'expected' => '', 'min' => 1, 'name' => '\'boolean_expression_or(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'boolean_expression_or', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -260 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'boolean_expression_or', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -260 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => '\\|', 'hashname' => '__PATTERN1__', 'description' => '/\\\\|/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -260, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -260, 'code' => '{ my @ors = map { [ $_ ] } @{$item[1]}; # every list element is a PEprs @ors = ( $ors[0], # wrap it with [] for === map { (\'++\', $_) } @ors[1..$#ors] ); # and squeeze in ++ before every element $return = _mk_if (TM::QL::PE::mk_prs ([ \\@ors ])); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'boolean_expression', 'vars' => '', 'line' => -262 }, 'Parse::RecDescent::Rule' ), 'path_l0_expression' => bless( { 'impcount' => 0, 'calls' => [ '_alternation_1_of_production_1_of_rule_path_l0_expression', 'postfix' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => '_alternation_1_of_production_1_of_rule_path_l0_expression', 'matchrule' => 0, 'implicit' => 'tuple_expression, or simple_content', 'argcode' => undef, 'lookahead' => 0, 'line' => -230 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'postfix', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => -229 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -229, 'code' => '{ my @PRs = map { TM::QL::PE::mk_prs ($_) } ($item[1], @{ $item[2] }); $return = pop @PRs; while (my $q = pop @PRs) { # start from the and and $return = TM::QL::PE::unshift_vars ([[\'@_\' => $q]], $return); # unshift } $return; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~path_l0_expression_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~path_l0_expression_1~~~\'', 'lookahead' => 0, 'line' => -42 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'path_l0_expression', 'vars' => '', 'line' => -230 }, 'Parse::RecDescent::Rule' ), 'wuri' => bless( { 'impcount' => 0, 'calls' => [ 'iri' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '<', 'hashname' => '__STRING1__', 'description' => '\'<\'', 'lookahead' => 0, 'line' => -11 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'iri', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -11 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '>', 'hashname' => '__STRING2__', 'description' => '\'>\'', 'lookahead' => 0, 'line' => -11 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -11, 'code' => '{ $item[2] }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'wuri', 'vars' => '', 'line' => -11 }, 'Parse::RecDescent::Rule' ), 'constant' => bless( { 'impcount' => 0, 'calls' => [ 'literal', 'item_reference' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'literal', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -134 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'item_reference', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -133 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -133, 'code' => '{ $return = new PEti (tid => $item[1]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -133 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~constant_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~constant_1~~~\'', 'lookahead' => 0, 'line' => -47 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'constant', 'vars' => '', 'line' => -134 }, 'Parse::RecDescent::Rule' ), 'environment_clause' => bless( { 'impcount' => 0, 'calls' => [ 'tm_content' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'tm_content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -326 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'environment_clause', 'vars' => '', 'line' => -326 }, 'Parse::RecDescent::Rule' ), 'value_l3_expression' => bless( { 'impcount' => 0, 'calls' => [ 'content' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -157 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'value_l3_expression', 'vars' => '', 'line' => -157 }, 'Parse::RecDescent::Rule' ), 'value_l1_expression' => bless( { 'impcount' => 0, 'calls' => [ 'value_l2_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'expected' => '', 'min' => 1, 'name' => '\'value_l2_expression(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'value_l2_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -168 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'value_l2_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -168 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => '([+-])', 'hashname' => '__PATTERN1__', 'description' => '/([+-])/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -168, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -168, 'code' => '{ $return = _mk_fun_tree (@item); }' }, '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( { 'pattern' => '-', 'hashname' => '__PATTERN1__', 'description' => '/-/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -165, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'subrule' => 'value_l2_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -165 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -165, 'code' => '{ $return = new PEfun (fun => \'tmql:unary-minus\', args => [ $item[2] ], uri => undef); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -166 }, 'Parse::RecDescent::Production' ) ], 'name' => 'value_l1_expression', 'vars' => '', 'line' => -168 }, 'Parse::RecDescent::Rule' ), '_alternation_1_of_production_1_of_rule_string' => bless( { 'impcount' => 0, 'calls' => [ 'iri' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '^^', 'hashname' => '__STRING1__', 'description' => '\'^^\'', 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'iri', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => '_alternation_1_of_production_1_of_rule_string', 'vars' => '', 'line' => 1 }, 'Parse::RecDescent::Rule' ), 'decimal' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '-?\\d+\\.\\d+', 'hashname' => '__PATTERN1__', 'description' => '/-?\\\\d+\\\\.\\\\d+/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -27, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'decimal', 'vars' => '', 'line' => -27 }, 'Parse::RecDescent::Rule' ), 'ellipsis' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => ',', 'hashname' => '__STRING1__', 'description' => '\',\'', 'lookahead' => 0, 'line' => -180 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => '...', 'hashname' => '__STRING2__', 'description' => '\'...\'', 'lookahead' => 0, 'line' => -180 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'ellipsis', 'vars' => '', 'line' => -180 }, 'Parse::RecDescent::Rule' ), 'predicate_postfix' => bless( { 'impcount' => 0, 'calls' => [ 'boolean_primitive' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '[', 'hashname' => '__STRING1__', 'description' => '\'[\'', 'lookahead' => 0, 'line' => -218 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'boolean_primitive', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -218 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => ']', 'hashname' => '__STRING2__', 'description' => '\']\'', 'lookahead' => 0, 'line' => -218 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -218, 'code' => '{ $return = $item[2]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'predicate_postfix', 'vars' => '', 'line' => -218 }, 'Parse::RecDescent::Rule' ), 'axis' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'epsilon', 'hashname' => '__STRING1__', 'description' => '\'epsilon\'', 'lookahead' => 0, 'line' => -206 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'classes', 'hashname' => '__STRING1__', 'description' => '\'classes\'', 'lookahead' => 0, 'line' => -205 }, 'Parse::RecDescent::Literal' ) ], 'line' => -205 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'superclasses', 'hashname' => '__STRING1__', 'description' => '\'superclasses\'', 'lookahead' => 0, 'line' => -204 }, 'Parse::RecDescent::Literal' ) ], 'line' => -204 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'players', 'hashname' => '__STRING1__', 'description' => '\'players\'', 'lookahead' => 0, 'line' => -203 }, 'Parse::RecDescent::Literal' ) ], 'line' => -203 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '4', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'roles', 'hashname' => '__STRING1__', 'description' => '\'roles\'', 'lookahead' => 0, 'line' => -202 }, 'Parse::RecDescent::Literal' ) ], 'line' => -202 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '5', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'characteristics', 'hashname' => '__STRING1__', 'description' => '\'characteristics\'', 'lookahead' => 0, 'line' => -201 }, 'Parse::RecDescent::Literal' ) ], 'line' => -201 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '6', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'scope', 'hashname' => '__STRING1__', 'description' => '\'scope\'', 'lookahead' => 0, 'line' => -200 }, 'Parse::RecDescent::Literal' ) ], 'line' => -200 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '7', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'reifier', 'hashname' => '__STRING1__', 'description' => '\'reifier\'', 'lookahead' => 0, 'line' => -199 }, 'Parse::RecDescent::Literal' ) ], 'line' => -199 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '8', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'atomify', 'hashname' => '__STRING1__', 'description' => '\'atomify\'', 'lookahead' => 0, 'line' => -198 }, 'Parse::RecDescent::Literal' ) ], 'line' => -198 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '9', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'locators', 'hashname' => '__STRING1__', 'description' => '\'locators\'', 'lookahead' => 0, 'line' => -197 }, 'Parse::RecDescent::Literal' ) ], 'line' => -197 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '10', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'indicators', 'hashname' => '__STRING1__', 'description' => '\'indicators\'', 'lookahead' => 0, 'line' => -196 }, 'Parse::RecDescent::Literal' ) ], 'line' => -196 }, 'Parse::RecDescent::Production' ) ], 'name' => 'axis', 'vars' => '', 'line' => -206 }, 'Parse::RecDescent::Rule' ), 'xml_id' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '[:\\w]+', 'hashname' => '__PATTERN1__', 'description' => '/[:\\\\w]+/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -71, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'xml_id', 'vars' => '', 'line' => -71 }, 'Parse::RecDescent::Rule' ), 'literal' => bless( { 'impcount' => 0, 'calls' => [ 'decimal', 'integer', 'boolean', 'wuri', 'string' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'decimal', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -36 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -36, 'code' => '{ $return = new TM::Literal ($item[1], TM::Literal->DECIMAL); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'integer', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -35 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -35, 'code' => '{ $return = new TM::Literal ($item[1], TM::Literal->INTEGER); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -35 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'boolean', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -34 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -34, 'code' => '{ $return = new TM::Literal ($item[1], TM::Literal->BOOLEAN); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -34 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'wuri', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -33 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -33, 'code' => '{ $return = new TM::Literal ($item[1], TM::Literal->URI); }' }, 'Parse::RecDescent::Action' ) ], 'line' => -33 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '4', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'string', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -32 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -32 }, 'Parse::RecDescent::Production' ) ], 'name' => 'literal', 'vars' => '', 'line' => -39 }, 'Parse::RecDescent::Rule' ), 'postfix' => bless( { 'impcount' => 0, 'calls' => [ 'predicate_postfix', 'projection_postfix' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'predicate_postfix', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -221 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'projection_postfix', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -220 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -220 }, 'Parse::RecDescent::Production' ) ], 'name' => 'postfix', 'vars' => '', 'line' => -221 }, 'Parse::RecDescent::Rule' ), 'step' => bless( { 'impcount' => 1, 'calls' => [ '_alternation_1_of_production_1_of_rule_step', 'axis', 'item_reference' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => '_alternation_1_of_production_1_of_rule_step', 'matchrule' => 0, 'implicit' => '\'<<\', or \'>>\'', 'argcode' => undef, 'lookahead' => 0, 'line' => -210 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'axis', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -210 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'item_reference', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -210 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -210, 'code' => '{ $return = new PEna (axi => $item[2], # build the navigation dir => $item[1] eq \'>>\', tid => $item[3]->[0] ? $item[3]->[0] : undef); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'step', 'vars' => '', 'line' => -212 }, 'Parse::RecDescent::Rule' ), 'identifier' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '([\\w\\#\\_][\\w\\-\\.]*)', 'hashname' => '__PATTERN1__', 'description' => '/([\\\\w\\\\#\\\\_][\\\\w\\\\-\\\\.]*)/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -128, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '*', 'hashname' => '__STRING1__', 'description' => '\'*\'', 'lookahead' => 0, 'line' => -127 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -127, 'code' => '{ $return = \'thing\'; }' }, 'Parse::RecDescent::Action' ) ], 'line' => -127 }, 'Parse::RecDescent::Production' ) ], 'name' => 'identifier', 'vars' => '', 'line' => -128 }, 'Parse::RecDescent::Rule' ), 'integer' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~integer_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~integer_1~~~\'', 'lookahead' => 0, 'line' => -46 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '-?\\d+', 'hashname' => '__PATTERN1__', 'description' => '/-?\\\\d+/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -29, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'integer', 'vars' => '', 'line' => -46 }, 'Parse::RecDescent::Rule' ), 'from_clause' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'from', 'hashname' => '__STRING1__', 'description' => '\'from\'', 'lookahead' => 0, 'line' => -303 }, 'Parse::RecDescent::Literal' ), bless( { 'pattern' => '%_', 'hashname' => '__STRING2__', 'description' => '\'%_\'', 'lookahead' => 0, 'line' => -303 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'from_clause', 'vars' => '', 'line' => -303 }, 'Parse::RecDescent::Rule' ), 'startrule' => bless( { 'impcount' => 0, 'calls' => [ 'query_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'query_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 35 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'startrule', 'vars' => '', 'line' => 35 }, 'Parse::RecDescent::Rule' ), '_alternation_1_of_production_2_of_rule_string' => bless( { 'impcount' => 0, 'calls' => [ 'iri' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '^^', 'hashname' => '__STRING1__', 'description' => '\'^^\'', 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'iri', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => '_alternation_1_of_production_2_of_rule_string', 'vars' => '', 'line' => 1 }, 'Parse::RecDescent::Rule' ), 'roles' => bless( { 'impcount' => 0, 'calls' => [ 'role' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'op' => [], 'items' => [ bless( { 'expected' => '', 'min' => 0, 'name' => '\'role(s?)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'role', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -188 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'role', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -188 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => ',', 'hashname' => '__PATTERN1__', 'description' => '/,/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -188, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'roles', 'vars' => '', 'line' => -190 }, 'Parse::RecDescent::Rule' ), 'ctm_instance' => bless( { 'impcount' => 0, 'calls' => [ 'astma_instance' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'astma_instance', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -98 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'ctm_instance', 'vars' => '', 'line' => -100 }, 'Parse::RecDescent::Rule' ), 'content_l2' => bless( { 'impcount' => 0, 'calls' => [ 'query_expression', 'path_expression', 'content', '_alternation_1_of_production_2_of_rule_content_l2', 'tm_content', 'xml_content' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '{', 'hashname' => '__STRING1__', 'description' => '\'\\{\'', 'lookahead' => 0, 'line' => 45 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'query_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 45 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => '}', 'hashname' => '__STRING2__', 'description' => '\'\\}\'', 'lookahead' => 0, 'line' => 45 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => 45, 'code' => '{ $return = $item[2]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 2, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => 'if', 'hashname' => '__STRING1__', 'description' => '\'if\'', 'lookahead' => 0, 'line' => 46 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'path_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 46 }, 'Parse::RecDescent::Subrule' ), bless( { 'pattern' => 'then', 'hashname' => '__STRING2__', 'description' => '\'then\'', 'lookahead' => 0, 'line' => 46 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 47 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => '_alternation_1_of_production_2_of_rule_content_l2', 'expected' => '\'else\'', 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -339 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -339, 'code' => '{ $return = TM::QL::PE::mk_prs (new PEif (con => $item[2], then => $item[4], else => $item[5]->[0] ? $item[5]->[0] : TM::QL::PE::mk_prs ())); }' }, 'Parse::RecDescent::Action' ) ], 'line' => 45 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'tm_content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -335 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -335 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'xml_content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -334 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -334 }, 'Parse::RecDescent::Production' ) ], 'name' => 'content_l2', 'vars' => '', 'line' => 45 }, 'Parse::RecDescent::Rule' ), 'path_expression' => bless( { 'impcount' => 0, 'calls' => [ 'association_predicate', 'path_l0_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'association_predicate', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -233 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'path_l0_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -232 }, 'Parse::RecDescent::Subrule' ) ], 'line' => -232 }, 'Parse::RecDescent::Production' ), bless( { 'number' => '2', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~path_expression_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~path_expression_1~~~\'', 'lookahead' => 0, 'line' => -43 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '3', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '~~~path_expression_2~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~path_expression_2~~~\'', 'lookahead' => 0, 'line' => -43 }, 'Parse::RecDescent::Literal' ) ], 'line' => -43 }, 'Parse::RecDescent::Production' ) ], 'name' => 'path_expression', 'vars' => '', 'line' => -235 }, 'Parse::RecDescent::Rule' ), 'where_clause' => bless( { 'impcount' => 0, 'calls' => [ 'boolean_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => 'where', 'hashname' => '__STRING1__', 'description' => '\'where\'', 'lookahead' => 0, 'line' => -262 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'boolean_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -262 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -262, 'code' => '{ $return = TM::QL::PE::mk_prs ($item[2]); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'where_clause', 'vars' => '', 'line' => -264 }, 'Parse::RecDescent::Rule' ), 'xml_element' => bless( { 'impcount' => 0, 'calls' => [ 'xml_id', 'xml_attribute', 'xml_rest' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '<', 'hashname' => '__STRING1__', 'description' => '\'<\'', 'lookahead' => 0, 'line' => -83 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'xml_id', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -83 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'xml_attribute', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 100000000, 'matchrule' => 0, 'repspec' => 's?', 'lookahead' => 0, 'line' => -83 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__DIRECTIVE1__', 'name' => '', 'lookahead' => 0, 'line' => -83, 'code' => 'my $oldskip = $skip; $skip=\'\\s*\'; $oldskip' }, 'Parse::RecDescent::Directive' ), bless( { 'subrule' => 'xml_rest', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -83 }, 'Parse::RecDescent::Subrule' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -82, 'code' => '{ if ($item[5] eq \'/>\') { # no end tag $return = new PExml (sta => $item[2], ats => $item[3]); } else { $return = new PExml (sta => $item[2], ats => $item[3], end => $item[5]->[1], con => $item[5]->[0]); } }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'xml_element', 'vars' => '', 'line' => -83 }, 'Parse::RecDescent::Rule' ), 'value_l0_expression' => bless( { 'impcount' => 0, 'calls' => [ 'value_l1_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'expected' => '|>)/ value_l1_expression>', 'min' => 1, 'name' => '\'value_l1_expression(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'value_l1_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -170 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'value_l1_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -170 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => '(<|<=|=>|>)', 'hashname' => '__PATTERN1__', 'description' => '/(<|<=|=>|>)/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -170, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -170, 'code' => '{ $return = _mk_fun_tree (@item); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'value_l0_expression', 'vars' => '', 'line' => -172 }, 'Parse::RecDescent::Rule' ), 'return_clause' => bless( { 'impcount' => 0, 'calls' => [ 'content' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => 'return', 'hashname' => '__STRING1__', 'description' => '\'return\'', 'lookahead' => 0, 'line' => -266 }, 'Parse::RecDescent::Literal' ), bless( { 'subrule' => 'content', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -266 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'return_clause', 'vars' => '', 'line' => -266 }, 'Parse::RecDescent::Rule' ), 'value_l2_expression' => bless( { 'impcount' => 0, 'calls' => [ 'value_l3_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'expected' => '', 'min' => 1, 'name' => '\'value_l3_expression(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'value_l3_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -159 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'value_l3_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -159 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => '(\\*|div|mod)', 'hashname' => '__PATTERN1__', 'description' => '/(\\\\*|div|mod)/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -159, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -159, 'code' => '{ $return = _mk_fun_tree (@item); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'value_l2_expression', 'vars' => '', 'line' => -159 }, 'Parse::RecDescent::Rule' ), 'role_type' => bless( { 'impcount' => 0, 'calls' => [ 'item_reference' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'item_reference', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -184 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'role_type', 'vars' => '', 'line' => -184 }, 'Parse::RecDescent::Rule' ), 'select_clause' => bless( { 'impcount' => 0, 'calls' => [ 'value_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'op' => [], 'items' => [ bless( { 'pattern' => 'select', 'hashname' => '__STRING1__', 'description' => '\'select\'', 'lookahead' => 0, 'line' => -305 }, 'Parse::RecDescent::Literal' ), bless( { 'expected' => '', 'min' => 0, 'name' => '\'value_expression(s?)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'value_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -305 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'value_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -305 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => ',', 'hashname' => '__PATTERN1__', 'description' => '/,/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -305, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -305, 'code' => '{ $return = TM::QL::PE::mk_prs (new PEpr (arr => [ map { [[[ $_ ]]] } @{$item[2]} ]) ); }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'select_clause', 'vars' => '', 'line' => -307 }, 'Parse::RecDescent::Rule' ), 'player' => bless( { 'impcount' => 0, 'calls' => [ 'path_expression' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'subrule' => 'path_expression', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -182 }, 'Parse::RecDescent::Subrule' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'player', 'vars' => '', 'line' => -182 }, 'Parse::RecDescent::Rule' ), 'content_l0' => bless( { 'impcount' => 0, 'calls' => [ 'content_l1' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 1, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 0, 'op' => [], 'items' => [ bless( { 'expected' => '', 'min' => 1, 'name' => '\'content_l1(s)\'', 'max' => 100000000, 'leftarg' => bless( { 'subrule' => 'content_l1', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 41 }, 'Parse::RecDescent::Subrule' ), 'rightarg' => bless( { 'subrule' => 'content_l1', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => 41 }, 'Parse::RecDescent::Subrule' ), 'hashname' => '__DIRECTIVE1__', 'type' => 'leftop', 'op' => bless( { 'pattern' => '(\\+\\+)', 'hashname' => '__PATTERN1__', 'description' => '/(\\\\+\\\\+)/', 'lookahead' => 0, 'rdelim' => '/', 'line' => 41, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ) }, 'Parse::RecDescent::Operator' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'content_l0', 'vars' => '', 'line' => 41 }, 'Parse::RecDescent::Rule' ), 'navigation' => bless( { 'impcount' => 0, 'calls' => [ 'step', 'navigation' ], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 0, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'subrule' => 'step', 'matchrule' => 0, 'implicit' => undef, 'argcode' => undef, 'lookahead' => 0, 'line' => -212 }, 'Parse::RecDescent::Subrule' ), bless( { 'subrule' => 'navigation', 'expected' => undef, 'min' => 0, 'argcode' => undef, 'max' => 1, 'matchrule' => 0, 'repspec' => '?', 'lookahead' => 0, 'line' => -212 }, 'Parse::RecDescent::Repetition' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -212, 'code' => '{ $return = [ $item[1], $item[2]->[0] ? @{$item[2]->[0]} : () ];}' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '~~~navigation_op_1~~~', 'hashname' => '__STRING1__', 'description' => '\'~~~navigation_op_1~~~\'', 'lookahead' => 0, 'line' => -41 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -41, 'code' => '{ $return = [ \'~~~navigation_op_1~~~\' ]; }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'navigation', 'vars' => '', 'line' => -212 }, 'Parse::RecDescent::Rule' ), '_alternation_1_of_production_1_of_rule_step' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '<<', 'hashname' => '__STRING1__', 'description' => '\'<<\'', 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Literal' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ), bless( { 'number' => '1', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 0, 'actcount' => 0, 'items' => [ bless( { 'pattern' => '>>', 'hashname' => '__STRING1__', 'description' => '\'>>\'', 'lookahead' => 0, 'line' => 1 }, 'Parse::RecDescent::Literal' ) ], 'line' => 1 }, 'Parse::RecDescent::Production' ) ], 'name' => '_alternation_1_of_production_1_of_rule_step', 'vars' => '', 'line' => 1 }, 'Parse::RecDescent::Rule' ), 'prefix' => bless( { 'impcount' => 0, 'calls' => [], 'changed' => 0, 'opcount' => 0, 'prods' => [ bless( { 'number' => '0', 'strcount' => 1, 'dircount' => 0, 'uncommit' => undef, 'error' => undef, 'patcount' => 1, 'actcount' => 1, 'items' => [ bless( { 'pattern' => '\\w+', 'hashname' => '__PATTERN1__', 'description' => '/\\\\w+/', 'lookahead' => 0, 'rdelim' => '/', 'line' => -114, 'mod' => '', 'ldelim' => '/' }, 'Parse::RecDescent::Token' ), bless( { 'pattern' => ':', 'hashname' => '__STRING1__', 'description' => '\':\'', 'lookahead' => 0, 'line' => -114 }, 'Parse::RecDescent::Literal' ), bless( { 'hashname' => '__ACTION1__', 'lookahead' => 0, 'line' => -114, 'code' => '{ my @prefixes; ## TODO prefixes $return = undef; # pessimism rules this planet foreach my $prefix (@prefixes) { if ($prefix->{$item[1]}) { $return = $prefix->{$item[1]}->[1]; # URI for prefix last; } } 1; # parsing is ok otherwise }' }, 'Parse::RecDescent::Action' ) ], 'line' => undef }, 'Parse::RecDescent::Production' ) ], 'name' => 'prefix', 'vars' => '', 'line' => -116 }, 'Parse::RecDescent::Rule' ) } }, 'Parse::RecDescent' ); }