File Coverage

blib/lib/HTML/Transmorgify/Conditionals.pm
Criterion Covered Total %
statement 2757 3980 69.2
branch 711 2170 32.7
condition 260 783 33.2
subroutine 175 197 88.8
pod 0 1 0.0
total 3903 7131 54.7


line stmt bran cond sub pod time code
1             package HTML::Transmorgify::Conditionals;
2 4     4   11494 use Parse::RecDescent;
  4         263659  
  4         37  
3              
4             { my $ERRORS;
5              
6              
7             package Parse::RecDescent::HTML::Transmorgify::Conditionals;
8 4     4   274 use strict;
  4         9  
  4         198  
9 4     4   22 use vars qw($skip $AUTOLOAD );
  4         8  
  4         293  
10             @Parse::RecDescent::HTML::Transmorgify::Conditionals::ISA = ();
11             $skip = '\s*';
12              
13 4     4   26 use Carp qw(confess);
  4         7  
  4         2738  
14              
15             our @rtmp;
16              
17             sub db
18             {
19 0     0   0 require Data::Dumper;
20 0         0 print Data::Dumper::Dumper((caller(1))[3], @_);
21             }
22              
23             my $allowed_funcs = \%HTML::Transmorgify::allowed_functions;
24             sub run
25             {
26 31 100   31   571 return $_[0] unless ref $_[0];
27 8         19 return $_[0]->();
28             }
29              
30             sub binary
31             {
32            
33 0     0   0 my ($t1, $op, $t2) = @_;
34 0 0       0 confess if ref $op;
35 0         0 my $eval = "sub { \$_[0] $op \$_[1] }";
36 0 0 0     0 $allowed_funcs->{$op} ||= eval $eval or die "eval $eval: $@";
37             return sub {
38 0     0   0 $allowed_funcs->{$op}->(run($t1), run($t2));
39 0         0 };
40             }
41              
42             sub unary
43             {
44            
45 6     6   14 my ($op, $t1) = @_;
46 6 50       55 confess if ref $op;
47 6         25 my $eval = "sub { $op \$_[0] }";
48 6 50 66     223 $allowed_funcs->{$op} ||= eval $eval or die "eval $eval: $@";
49             return sub {
50 5     5   17 $allowed_funcs->{$op}->(run($t1));
51 6         46 };
52             }
53            
54             sub assoc
55             {
56            
57 457     457   859 my ($r, @ops) = @_;
58 457         1416 while (my ($op, $term) = splice(@ops, 0, 2)) {
59 20 50       66 confess if ref $op;
60 20         63 my $eval = "sub { \$_[0] $op \$_[1] }";
61 20 50 66     813 $allowed_funcs->{$op} ||= eval $eval or die "eval $eval: $@";
62 20         30 my $left = $r;
63             $r = sub {
64 11     11   29 $allowed_funcs->{$op}->(run($left), run($term));
65 20         185 };
66             }
67 457         1161 return $r;
68             }
69              
70             sub left
71             {
72            
73 457     457   495 assoc(@{$_[1]});
  457         1208  
74             }
75              
76             sub right
77             {
78            
79 0     0   0 assoc(reverse @{$_[1]});
  0         0  
80             }
81              
82             sub nonassoc
83             {
84            
85 72 50   72   73 die if @{$_[1]} > 3;
  72         213  
86 72         201 left(@_);
87             }
88             ;
89              
90              
91             {
92             local $SIG{__WARN__} = sub {0};
93             # PRETEND TO BE IN Parse::RecDescent NAMESPACE
94             *Parse::RecDescent::HTML::Transmorgify::Conditionals::AUTOLOAD = sub
95             {
96 4     4   27 no strict 'refs';
  4         11  
  4         983  
97 0     0   0 $AUTOLOAD =~ s/^Parse::RecDescent::HTML::Transmorgify::Conditionals/Parse::RecDescent/;
98 0         0 goto &{$AUTOLOAD};
  0         0  
99             }
100             }
101              
102             push @Parse::RecDescent::HTML::Transmorgify::Conditionals::ISA, 'Parse::RecDescent';
103             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
104             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr2
105             {
106 13     13   32 my $thisparser = $_[0];
107 4     4   24 use vars q{$tracelevel};
  4         8  
  4         1915  
108 13   50     43 local $tracelevel = ($tracelevel||0)+1;
109 13         19 $ERRORS = 0;
110 13         37 my $thisrule = $thisparser->{"rules"}{"expr2"};
111            
112 13 50       42 Parse::RecDescent::_trace(q{Trying rule: [expr2]},
113             Parse::RecDescent::_tracefirst($_[1]),
114             q{expr2},
115             $tracelevel)
116             if defined $::RD_TRACE;
117              
118            
119 13         17 my $err_at = @{$thisparser->{errors}};
  13         28  
120              
121 13         24 my $score;
122             my $score_return;
123 0         0 my $_tok;
124 13         24 my $return = undef;
125 13         23 my $_matched=0;
126 13         21 my $commit=0;
127 13         24 my @item = ();
128 13         21 my %item = ();
129 13   33     57 my $repeating = defined($_[2]) && $_[2];
130 13   33     49 my $_noactions = defined($_[3]) && $_[3];
131 13 50       31 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  13         16  
  13         30  
132 13 50       46 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
133 13         16 my $text;
134 13         25 my $lastsep="";
135 13         18 my $current_match;
136 13         62 my $expectation = new Parse::RecDescent::Expectation(q{});
137 13         139 $expectation->at($_[1]);
138            
139 13         56 my $thisline;
140 13         65 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
141              
142            
143              
144 13   33     153 while (!$_matched && !$commit)
145             {
146            
147 13 50       40 Parse::RecDescent::_trace(q{Trying production: []},
148             Parse::RecDescent::_tracefirst($_[1]),
149             q{expr2},
150             $tracelevel)
151             if defined $::RD_TRACE;
152 13         44 my $thisprod = $thisrule->{"prods"}[0];
153 13         19 $text = $_[1];
154 13         17 my $_savetext;
155 13         35 @item = (q{expr2});
156 13         41 %item = (__RULE__ => q{expr2});
157 13         23 my $repcount = 0;
158              
159              
160 13 50       42 Parse::RecDescent::_trace(q{Trying operator: []},
161             Parse::RecDescent::_tracefirst($text),
162             q{expr2},
163             $tracelevel)
164             if defined $::RD_TRACE;
165 13         42 $expectation->is(q{})->at($text);
166              
167 13         96 $_tok = undef;
168 13         18 OPLOOP: while (1)
169             {
170 13         21 $repcount = 0;
171 13         23 my @item;
172            
173             # MATCH LEFTARG
174            
175 13 50       39 Parse::RecDescent::_trace(q{Trying subrule: [expr5]},
176             Parse::RecDescent::_tracefirst($text),
177             q{expr2},
178             $tracelevel)
179             if defined $::RD_TRACE;
180 4     4   33 if (1) { no strict qw{refs};
  4         8  
  4         1084  
  13         23  
181 13         41 $expectation->is(q{expr5})->at($text);
182 13 50   13   164 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr5($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  13         34  
183             {
184            
185 0 0       0 Parse::RecDescent::_trace(q{<>},
186             Parse::RecDescent::_tracefirst($text),
187             q{expr2},
188             $tracelevel)
189             if defined $::RD_TRACE;
190 0         0 $expectation->failed();
191 0         0 last;
192             }
193 13 50       81 Parse::RecDescent::_trace(q{>>Matched subrule: [expr5]<< (return value: [}
194             . $_tok . q{]},
195            
196             Parse::RecDescent::_tracefirst($text),
197             q{expr2},
198             $tracelevel)
199             if defined $::RD_TRACE;
200 13         37 $item{q{expr5}} = $_tok;
201 13         33 push @item, $_tok;
202            
203             }
204              
205              
206 13         23 $repcount++;
207              
208 13         26 my $savetext = $text;
209 13         19 my $backtrack;
210              
211             # MATCH (OP RIGHTARG)(s)
212 13         41 while ($repcount < 100000000)
213             {
214 13         19 $backtrack = 0;
215            
216 13 50       32 Parse::RecDescent::_trace(q{Trying subrule: [expr2op]},
217             Parse::RecDescent::_tracefirst($text),
218             q{expr2},
219             $tracelevel)
220             if defined $::RD_TRACE;
221 4     4   23 if (1) { no strict qw{refs};
  4         8  
  4         892  
  13         21  
222 13         62 $expectation->is(q{expr2op})->at($text);
223 13 50   13   200 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr2op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  13         34  
224             {
225            
226 13 50       40 Parse::RecDescent::_trace(q{<>},
227             Parse::RecDescent::_tracefirst($text),
228             q{expr2},
229             $tracelevel)
230             if defined $::RD_TRACE;
231 13         42 $expectation->failed();
232 13         117 last;
233             }
234 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr2op]<< (return value: [}
235             . $_tok . q{]},
236            
237             Parse::RecDescent::_tracefirst($text),
238             q{expr2},
239             $tracelevel)
240             if defined $::RD_TRACE;
241 0         0 $item{q{expr2op}} = $_tok;
242 0         0 push @item, $_tok;
243            
244             }
245              
246 0         0 $backtrack=1;
247            
248            
249 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr5]},
250             Parse::RecDescent::_tracefirst($text),
251             q{expr2},
252             $tracelevel)
253             if defined $::RD_TRACE;
254 4     4   24 if (1) { no strict qw{refs};
  4         7  
  4         3822  
  0         0  
255 0         0 $expectation->is(q{expr5})->at($text);
256 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr5($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
257             {
258            
259 0 0       0 Parse::RecDescent::_trace(q{<>},
260             Parse::RecDescent::_tracefirst($text),
261             q{expr2},
262             $tracelevel)
263             if defined $::RD_TRACE;
264 0         0 $expectation->failed();
265 0         0 last;
266             }
267 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr5]<< (return value: [}
268             . $_tok . q{]},
269            
270             Parse::RecDescent::_tracefirst($text),
271             q{expr2},
272             $tracelevel)
273             if defined $::RD_TRACE;
274 0         0 $item{q{expr5}} = $_tok;
275 0         0 push @item, $_tok;
276            
277             }
278              
279 0         0 $savetext = $text;
280 0         0 $repcount++;
281             }
282 13         44 $text = $savetext;
283 13 50       35 pop @item if $backtrack;
284              
285 13 50       31 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
286 13         41 $_tok = [ @item ];
287 13         34 last;
288             }
289              
290 13 50       36 unless ($repcount>=1)
291             {
292 0 0       0 Parse::RecDescent::_trace(q{<]>>},
293             Parse::RecDescent::_tracefirst($text),
294             q{expr2},
295             $tracelevel)
296             if defined $::RD_TRACE;
297 0         0 $expectation->failed();
298 0         0 last;
299             }
300 13 50       33 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
301 0 0       0 . qq{@{$_tok||[]}} . q{]},
302             Parse::RecDescent::_tracefirst($text),
303             q{expr2},
304             $tracelevel)
305             if defined $::RD_TRACE;
306              
307 13   50     50 push @item, $item{__DIRECTIVE1__}=$_tok||[];
308              
309              
310 13 50       34 Parse::RecDescent::_trace(q{Trying action},
311             Parse::RecDescent::_tracefirst($text),
312             q{expr2},
313             $tracelevel)
314             if defined $::RD_TRACE;
315            
316              
317 13 50       32 $_tok = ($_noactions) ? 0 : do { left(@item) };
  13         26  
318 13 50       80 unless (defined $_tok)
319             {
320 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
321             if defined $::RD_TRACE;
322 0         0 last;
323             }
324 13 50       41 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
325             . $_tok . q{])},
326             Parse::RecDescent::_tracefirst($text))
327             if defined $::RD_TRACE;
328 13         20 push @item, $_tok;
329 13         30 $item{__ACTION1__}=$_tok;
330            
331              
332              
333 13 50       30 Parse::RecDescent::_trace(q{>>Matched production: []<<},
334             Parse::RecDescent::_tracefirst($text),
335             q{expr2},
336             $tracelevel)
337             if defined $::RD_TRACE;
338 13         21 $_matched = 1;
339 13         23 last;
340             }
341              
342              
343 13 50 33     84 unless ( $_matched || defined($score) )
344             {
345            
346              
347 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
348 0 0       0 Parse::RecDescent::_trace(q{<>},
349             Parse::RecDescent::_tracefirst($_[1]),
350             q{expr2},
351             $tracelevel)
352             if defined $::RD_TRACE;
353 0         0 return undef;
354             }
355 13 50 33     65 if (!defined($return) && defined($score))
356             {
357 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
358             q{expr2},
359             $tracelevel)
360             if defined $::RD_TRACE;
361 0         0 $return = $score_return;
362             }
363 13         22 splice @{$thisparser->{errors}}, $err_at;
  13         36  
364 13 50       40 $return = $item[$#item] unless defined $return;
365 13 50       34 if (defined $::RD_TRACE)
366             {
367 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
368             $return . q{])}, "",
369             q{expr2},
370             $tracelevel);
371 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
372             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
373             Parse::RecDescent::_tracefirst($text),
374             , q{expr2},
375             $tracelevel)
376             }
377 13         34 $_[1] = $text;
378 13         152 return $return;
379             }
380              
381             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
382             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr15op
383             {
384 50     50   85 my $thisparser = $_[0];
385 4     4   32 use vars q{$tracelevel};
  4         10  
  4         4489  
386 50   50     154 local $tracelevel = ($tracelevel||0)+1;
387 50         60 $ERRORS = 0;
388 50         129 my $thisrule = $thisparser->{"rules"}{"expr15op"};
389            
390 50 50       120 Parse::RecDescent::_trace(q{Trying rule: [expr15op]},
391             Parse::RecDescent::_tracefirst($_[1]),
392             q{expr15op},
393             $tracelevel)
394             if defined $::RD_TRACE;
395              
396            
397 50         62 my $err_at = @{$thisparser->{errors}};
  50         96  
398              
399 50         82 my $score;
400             my $score_return;
401 0         0 my $_tok;
402 50         58 my $return = undef;
403 50         68 my $_matched=0;
404 50         76 my $commit=0;
405 50         89 my @item = ();
406 50         75 my %item = ();
407 50   33     172 my $repeating = defined($_[2]) && $_[2];
408 50   33     216 my $_noactions = defined($_[3]) && $_[3];
409 50 50       119 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  50         136  
  50         110  
410 50 50       146 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
411 50         72 my $text;
412 50         71 my $lastsep="";
413 50         49 my $current_match;
414 50         185 my $expectation = new Parse::RecDescent::Expectation(q{/(\\*|\\/|%|x)/});
415 50         439 $expectation->at($_[1]);
416            
417 50         202 my $thisline;
418 50         234 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
419              
420            
421              
422 50   33     530 while (!$_matched && !$commit)
423             {
424            
425 50 50       112 Parse::RecDescent::_trace(q{Trying production: [/(\\*|\\/|%|x)/]},
426             Parse::RecDescent::_tracefirst($_[1]),
427             q{expr15op},
428             $tracelevel)
429             if defined $::RD_TRACE;
430 50         146 my $thisprod = $thisrule->{"prods"}[0];
431 50         90 $text = $_[1];
432 50         68 my $_savetext;
433 50         106 @item = (q{expr15op});
434 50         126 %item = (__RULE__ => q{expr15op});
435 50         76 my $repcount = 0;
436              
437              
438 50 50       113 Parse::RecDescent::_trace(q{Trying terminal: [/(\\*|\\/|%|x)/]}, Parse::RecDescent::_tracefirst($text),
439             q{expr15op},
440             $tracelevel)
441             if defined $::RD_TRACE;
442 50         78 $lastsep = "";
443 50         140 $expectation->is(q{})->at($text);
444            
445              
446 50 100 66     621 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(\*|\/|%|x))/)
  50 100       546  
447             {
448            
449 45         142 $expectation->failed();
450 45 50       230 Parse::RecDescent::_trace(q{<>},
451             Parse::RecDescent::_tracefirst($text))
452             if defined $::RD_TRACE;
453              
454 45         115 last;
455             }
456 5         29 $current_match = substr($text, $-[0], $+[0] - $-[0]);
457 5         17 substr($text,0,length($current_match),q{});
458 5 50       14 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
459             . $current_match . q{])},
460             Parse::RecDescent::_tracefirst($text))
461             if defined $::RD_TRACE;
462 5         13 push @item, $item{__PATTERN1__}=$current_match;
463            
464              
465 5 50       15 Parse::RecDescent::_trace(q{Trying action},
466             Parse::RecDescent::_tracefirst($text),
467             q{expr15op},
468             $tracelevel)
469             if defined $::RD_TRACE;
470            
471              
472 5 50       12 $_tok = ($_noactions) ? 0 : do { $item[1] };
  5         11  
473 5 50       12 unless (defined $_tok)
474             {
475 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
476             if defined $::RD_TRACE;
477 0         0 last;
478             }
479 5 50       13 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
480             . $_tok . q{])},
481             Parse::RecDescent::_tracefirst($text))
482             if defined $::RD_TRACE;
483 5         10 push @item, $_tok;
484 5         10 $item{__ACTION1__}=$_tok;
485            
486              
487              
488 5 50       13 Parse::RecDescent::_trace(q{>>Matched production: [/(\\*|\\/|%|x)/]<<},
489             Parse::RecDescent::_tracefirst($text),
490             q{expr15op},
491             $tracelevel)
492             if defined $::RD_TRACE;
493 5         8 $_matched = 1;
494 5         9 last;
495             }
496              
497              
498 50 100 66     265 unless ( $_matched || defined($score) )
499             {
500            
501              
502 45         94 $_[1] = $text; # NOT SURE THIS IS NEEDED
503 45 50       106 Parse::RecDescent::_trace(q{<>},
504             Parse::RecDescent::_tracefirst($_[1]),
505             q{expr15op},
506             $tracelevel)
507             if defined $::RD_TRACE;
508 45         388 return undef;
509             }
510 5 50 33     25 if (!defined($return) && defined($score))
511             {
512 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
513             q{expr15op},
514             $tracelevel)
515             if defined $::RD_TRACE;
516 0         0 $return = $score_return;
517             }
518 5         6 splice @{$thisparser->{errors}}, $err_at;
  5         15  
519 5 50       15 $return = $item[$#item] unless defined $return;
520 5 50       20 if (defined $::RD_TRACE)
521             {
522 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
523             $return . q{])}, "",
524             q{expr15op},
525             $tracelevel);
526 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
527             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
528             Parse::RecDescent::_tracefirst($text),
529             , q{expr15op},
530             $tracelevel)
531             }
532 5         10 $_[1] = $text;
533 5         44 return $return;
534             }
535              
536             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
537             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr15a
538             {
539 50     50   85 my $thisparser = $_[0];
540 4     4   32 use vars q{$tracelevel};
  4         11  
  4         2659  
541 50   50     160 local $tracelevel = ($tracelevel||0)+1;
542 50         69 $ERRORS = 0;
543 50         122 my $thisrule = $thisparser->{"rules"}{"expr15a"};
544            
545 50 50       124 Parse::RecDescent::_trace(q{Trying rule: [expr15a]},
546             Parse::RecDescent::_tracefirst($_[1]),
547             q{expr15a},
548             $tracelevel)
549             if defined $::RD_TRACE;
550              
551            
552 50         69 my $err_at = @{$thisparser->{errors}};
  50         116  
553              
554 50         64 my $score;
555             my $score_return;
556 0         0 my $_tok;
557 50         66 my $return = undef;
558 50         64 my $_matched=0;
559 50         72 my $commit=0;
560 50         72 my @item = ();
561 50         81 my %item = ();
562 50   33     174 my $repeating = defined($_[2]) && $_[2];
563 50   33     196 my $_noactions = defined($_[3]) && $_[3];
564 50 50       137 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  50         60  
  50         142  
565 50 50       177 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
566 50         86 my $text;
567 50         70 my $lastsep="";
568 50         56 my $current_match;
569 50         211 my $expectation = new Parse::RecDescent::Expectation(q{'-', or expr16});
570 50         441 $expectation->at($_[1]);
571            
572 50         210 my $thisline;
573 50         228 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
574              
575            
576              
577 50   33     492 while (!$_matched && !$commit)
578             {
579            
580 50 50       113 Parse::RecDescent::_trace(q{Trying production: ['-' expr16]},
581             Parse::RecDescent::_tracefirst($_[1]),
582             q{expr15a},
583             $tracelevel)
584             if defined $::RD_TRACE;
585 50         124 my $thisprod = $thisrule->{"prods"}[0];
586 50         70 $text = $_[1];
587 50         63 my $_savetext;
588 50         106 @item = (q{expr15a});
589 50         109 %item = (__RULE__ => q{expr15a});
590 50         58 my $repcount = 0;
591              
592              
593 50 50       106 Parse::RecDescent::_trace(q{Trying terminal: ['-']},
594             Parse::RecDescent::_tracefirst($text),
595             q{expr15a},
596             $tracelevel)
597             if defined $::RD_TRACE;
598 50         78 $lastsep = "";
599 50         134 $expectation->is(q{})->at($text);
600            
601              
602 50 100 33     680 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\-/)
  50 50       580  
603             {
604            
605 50         156 $expectation->failed();
606 50 50       246 Parse::RecDescent::_trace(qq{<>},
607             Parse::RecDescent::_tracefirst($text))
608             if defined $::RD_TRACE;
609 50         124 last;
610             }
611 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
612 0         0 substr($text,0,length($current_match),q{});
613 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
614             . $current_match . q{])},
615             Parse::RecDescent::_tracefirst($text))
616             if defined $::RD_TRACE;
617 0         0 push @item, $item{__STRING1__}=$current_match;
618            
619              
620 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr16]},
621             Parse::RecDescent::_tracefirst($text),
622             q{expr15a},
623             $tracelevel)
624             if defined $::RD_TRACE;
625 4     4   28 if (1) { no strict qw{refs};
  4         23  
  4         2134  
  0         0  
626 0         0 $expectation->is(q{expr16})->at($text);
627 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr16($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
628             {
629            
630 0 0       0 Parse::RecDescent::_trace(q{<>},
631             Parse::RecDescent::_tracefirst($text),
632             q{expr15a},
633             $tracelevel)
634             if defined $::RD_TRACE;
635 0         0 $expectation->failed();
636 0         0 last;
637             }
638 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr16]<< (return value: [}
639             . $_tok . q{]},
640            
641             Parse::RecDescent::_tracefirst($text),
642             q{expr15a},
643             $tracelevel)
644             if defined $::RD_TRACE;
645 0         0 $item{q{expr16}} = $_tok;
646 0         0 push @item, $_tok;
647            
648             }
649              
650 0 0       0 Parse::RecDescent::_trace(q{Trying action},
651             Parse::RecDescent::_tracefirst($text),
652             q{expr15a},
653             $tracelevel)
654             if defined $::RD_TRACE;
655            
656              
657 0 0       0 $_tok = ($_noactions) ? 0 : do { binary(0, '-', $item[1]) };
  0         0  
658 0 0       0 unless (defined $_tok)
659             {
660 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
661             if defined $::RD_TRACE;
662 0         0 last;
663             }
664 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
665             . $_tok . q{])},
666             Parse::RecDescent::_tracefirst($text))
667             if defined $::RD_TRACE;
668 0         0 push @item, $_tok;
669 0         0 $item{__ACTION1__}=$_tok;
670            
671              
672              
673 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['-' expr16]<<},
674             Parse::RecDescent::_tracefirst($text),
675             q{expr15a},
676             $tracelevel)
677             if defined $::RD_TRACE;
678 0         0 $_matched = 1;
679 0         0 last;
680             }
681              
682              
683 50   33     204 while (!$_matched && !$commit)
684             {
685            
686 50 50       116 Parse::RecDescent::_trace(q{Trying production: [expr16]},
687             Parse::RecDescent::_tracefirst($_[1]),
688             q{expr15a},
689             $tracelevel)
690             if defined $::RD_TRACE;
691 50         107 my $thisprod = $thisrule->{"prods"}[1];
692 50         83 $text = $_[1];
693 50         75 my $_savetext;
694 50         101 @item = (q{expr15a});
695 50         120 %item = (__RULE__ => q{expr15a});
696 50         61 my $repcount = 0;
697              
698              
699 50 50       138 Parse::RecDescent::_trace(q{Trying subrule: [expr16]},
700             Parse::RecDescent::_tracefirst($text),
701             q{expr15a},
702             $tracelevel)
703             if defined $::RD_TRACE;
704 4     4   25 if (1) { no strict qw{refs};
  4         7  
  4         2792  
  50         64  
705 50         167 $expectation->is(q{})->at($text);
706 50 50   50   578 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr16($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  50         129  
707             {
708            
709 0 0       0 Parse::RecDescent::_trace(q{<>},
710             Parse::RecDescent::_tracefirst($text),
711             q{expr15a},
712             $tracelevel)
713             if defined $::RD_TRACE;
714 0         0 $expectation->failed();
715 0         0 last;
716             }
717 50 50       214 Parse::RecDescent::_trace(q{>>Matched subrule: [expr16]<< (return value: [}
718             . $_tok . q{]},
719            
720             Parse::RecDescent::_tracefirst($text),
721             q{expr15a},
722             $tracelevel)
723             if defined $::RD_TRACE;
724 50         126 $item{q{expr16}} = $_tok;
725 50         111 push @item, $_tok;
726            
727             }
728              
729 50 50       116 Parse::RecDescent::_trace(q{Trying action},
730             Parse::RecDescent::_tracefirst($text),
731             q{expr15a},
732             $tracelevel)
733             if defined $::RD_TRACE;
734            
735              
736 50 50       95 $_tok = ($_noactions) ? 0 : do { $item[1] };
  50         112  
737 50 50       126 unless (defined $_tok)
738             {
739 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
740             if defined $::RD_TRACE;
741 0         0 last;
742             }
743 50 50       115 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
744             . $_tok . q{])},
745             Parse::RecDescent::_tracefirst($text))
746             if defined $::RD_TRACE;
747 50         101 push @item, $_tok;
748 50         99 $item{__ACTION1__}=$_tok;
749            
750              
751              
752 50 50       112 Parse::RecDescent::_trace(q{>>Matched production: [expr16]<<},
753             Parse::RecDescent::_tracefirst($text),
754             q{expr15a},
755             $tracelevel)
756             if defined $::RD_TRACE;
757 50         68 $_matched = 1;
758 50         75 last;
759             }
760              
761              
762 50 50 33     148 unless ( $_matched || defined($score) )
763             {
764            
765              
766 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
767 0 0       0 Parse::RecDescent::_trace(q{<>},
768             Parse::RecDescent::_tracefirst($_[1]),
769             q{expr15a},
770             $tracelevel)
771             if defined $::RD_TRACE;
772 0         0 return undef;
773             }
774 50 50 33     236 if (!defined($return) && defined($score))
775             {
776 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
777             q{expr15a},
778             $tracelevel)
779             if defined $::RD_TRACE;
780 0         0 $return = $score_return;
781             }
782 50         61 splice @{$thisparser->{errors}}, $err_at;
  50         110  
783 50 50       135 $return = $item[$#item] unless defined $return;
784 50 50       114 if (defined $::RD_TRACE)
785             {
786 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
787             $return . q{])}, "",
788             q{expr15a},
789             $tracelevel);
790 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
791             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
792             Parse::RecDescent::_tracefirst($text),
793             , q{expr15a},
794             $tracelevel)
795             }
796 50         115 $_[1] = $text;
797 50         462 return $return;
798             }
799              
800             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
801             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr10
802             {
803 32     32   60 my $thisparser = $_[0];
804 4     4   24 use vars q{$tracelevel};
  4         7  
  4         1800  
805 32   50     89 local $tracelevel = ($tracelevel||0)+1;
806 32         55 $ERRORS = 0;
807 32         105 my $thisrule = $thisparser->{"rules"}{"expr10"};
808            
809 32 50       85 Parse::RecDescent::_trace(q{Trying rule: [expr10]},
810             Parse::RecDescent::_tracefirst($_[1]),
811             q{expr10},
812             $tracelevel)
813             if defined $::RD_TRACE;
814              
815            
816 32         45 my $err_at = @{$thisparser->{errors}};
  32         83  
817              
818 32         52 my $score;
819             my $score_return;
820 0         0 my $_tok;
821 32         43 my $return = undef;
822 32         52 my $_matched=0;
823 32         40 my $commit=0;
824 32         59 my @item = ();
825 32         51 my %item = ();
826 32   33     122 my $repeating = defined($_[2]) && $_[2];
827 32   33     93 my $_noactions = defined($_[3]) && $_[3];
828 32 50       78 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         39  
  32         69  
829 32 50       88 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
830 32         45 my $text;
831 32         58 my $lastsep="";
832 32         32 my $current_match;
833 32         107 my $expectation = new Parse::RecDescent::Expectation(q{});
834 32         297 $expectation->at($_[1]);
835            
836 32         138 my $thisline;
837 32         136 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
838              
839            
840              
841 32   33     336 while (!$_matched && !$commit)
842             {
843            
844 32 50       77 Parse::RecDescent::_trace(q{Trying production: []},
845             Parse::RecDescent::_tracefirst($_[1]),
846             q{expr10},
847             $tracelevel)
848             if defined $::RD_TRACE;
849 32         102 my $thisprod = $thisrule->{"prods"}[0];
850 32         44 $text = $_[1];
851 32         46 my $_savetext;
852 32         117 @item = (q{expr10});
853 32         83 %item = (__RULE__ => q{expr10});
854 32         61 my $repcount = 0;
855              
856              
857 32 50       74 Parse::RecDescent::_trace(q{Trying operator: []},
858             Parse::RecDescent::_tracefirst($text),
859             q{expr10},
860             $tracelevel)
861             if defined $::RD_TRACE;
862 32         114 $expectation->is(q{})->at($text);
863              
864 32         199 $_tok = undef;
865 32         47 OPLOOP: while (1)
866             {
867 32         47 $repcount = 0;
868 32         41 my @item;
869            
870             # MATCH LEFTARG
871            
872 32 50       74 Parse::RecDescent::_trace(q{Trying subrule: [expr11]},
873             Parse::RecDescent::_tracefirst($text),
874             q{expr10},
875             $tracelevel)
876             if defined $::RD_TRACE;
877 4     4   24 if (1) { no strict qw{refs};
  4         8  
  4         981  
  32         39  
878 32         98 $expectation->is(q{expr11})->at($text);
879 32 50   32   361 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr11($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         83  
880             {
881            
882 0 0       0 Parse::RecDescent::_trace(q{<>},
883             Parse::RecDescent::_tracefirst($text),
884             q{expr10},
885             $tracelevel)
886             if defined $::RD_TRACE;
887 0         0 $expectation->failed();
888 0         0 last;
889             }
890 32 50       161 Parse::RecDescent::_trace(q{>>Matched subrule: [expr11]<< (return value: [}
891             . $_tok . q{]},
892            
893             Parse::RecDescent::_tracefirst($text),
894             q{expr10},
895             $tracelevel)
896             if defined $::RD_TRACE;
897 32         80 $item{q{expr11}} = $_tok;
898 32         76 push @item, $_tok;
899            
900             }
901              
902              
903 32         44 $repcount++;
904              
905 32         55 my $savetext = $text;
906 32         53 my $backtrack;
907              
908             # MATCH (OP RIGHTARG)(s)
909 32         86 while ($repcount < 100000000)
910             {
911 32         52 $backtrack = 0;
912            
913 32 50       72 Parse::RecDescent::_trace(q{Trying subrule: [expr10op]},
914             Parse::RecDescent::_tracefirst($text),
915             q{expr10},
916             $tracelevel)
917             if defined $::RD_TRACE;
918 4     4   26 if (1) { no strict qw{refs};
  4         21  
  4         834  
  32         40  
919 32         120 $expectation->is(q{expr10op})->at($text);
920 32 50   32   421 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr10op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         137  
921             {
922            
923 32 50       89 Parse::RecDescent::_trace(q{<>},
924             Parse::RecDescent::_tracefirst($text),
925             q{expr10},
926             $tracelevel)
927             if defined $::RD_TRACE;
928 32         100 $expectation->failed();
929 32         293 last;
930             }
931 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr10op]<< (return value: [}
932             . $_tok . q{]},
933            
934             Parse::RecDescent::_tracefirst($text),
935             q{expr10},
936             $tracelevel)
937             if defined $::RD_TRACE;
938 0         0 $item{q{expr10op}} = $_tok;
939 0         0 push @item, $_tok;
940            
941             }
942              
943 0         0 $backtrack=1;
944            
945            
946 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr11]},
947             Parse::RecDescent::_tracefirst($text),
948             q{expr10},
949             $tracelevel)
950             if defined $::RD_TRACE;
951 4     4   20 if (1) { no strict qw{refs};
  4         18  
  4         3232  
  0         0  
952 0         0 $expectation->is(q{expr11})->at($text);
953 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr11($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
954             {
955            
956 0 0       0 Parse::RecDescent::_trace(q{<>},
957             Parse::RecDescent::_tracefirst($text),
958             q{expr10},
959             $tracelevel)
960             if defined $::RD_TRACE;
961 0         0 $expectation->failed();
962 0         0 last;
963             }
964 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr11]<< (return value: [}
965             . $_tok . q{]},
966            
967             Parse::RecDescent::_tracefirst($text),
968             q{expr10},
969             $tracelevel)
970             if defined $::RD_TRACE;
971 0         0 $item{q{expr11}} = $_tok;
972 0         0 push @item, $_tok;
973            
974             }
975              
976 0         0 $savetext = $text;
977 0         0 $repcount++;
978             }
979 32         108 $text = $savetext;
980 32 50       84 pop @item if $backtrack;
981              
982 32 50       69 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
983 32         92 $_tok = [ @item ];
984 32         70 last;
985             }
986              
987 32 50       98 unless ($repcount>=1)
988             {
989 0 0       0 Parse::RecDescent::_trace(q{<]>>},
990             Parse::RecDescent::_tracefirst($text),
991             q{expr10},
992             $tracelevel)
993             if defined $::RD_TRACE;
994 0         0 $expectation->failed();
995 0         0 last;
996             }
997 32 50       89 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
998 0 0       0 . qq{@{$_tok||[]}} . q{]},
999             Parse::RecDescent::_tracefirst($text),
1000             q{expr10},
1001             $tracelevel)
1002             if defined $::RD_TRACE;
1003              
1004 32   50     117 push @item, $item{__DIRECTIVE1__}=$_tok||[];
1005              
1006              
1007 32 50       98 Parse::RecDescent::_trace(q{Trying action},
1008             Parse::RecDescent::_tracefirst($text),
1009             q{expr10},
1010             $tracelevel)
1011             if defined $::RD_TRACE;
1012            
1013              
1014 32 50       78 $_tok = ($_noactions) ? 0 : do { left(@item) };
  32         65  
1015 32 50       108 unless (defined $_tok)
1016             {
1017 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1018             if defined $::RD_TRACE;
1019 0         0 last;
1020             }
1021 32 50       95 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1022             . $_tok . q{])},
1023             Parse::RecDescent::_tracefirst($text))
1024             if defined $::RD_TRACE;
1025 32         83 push @item, $_tok;
1026 32         75 $item{__ACTION1__}=$_tok;
1027            
1028              
1029              
1030 32 50       83 Parse::RecDescent::_trace(q{>>Matched production: []<<},
1031             Parse::RecDescent::_tracefirst($text),
1032             q{expr10},
1033             $tracelevel)
1034             if defined $::RD_TRACE;
1035 32         45 $_matched = 1;
1036 32         69 last;
1037             }
1038              
1039              
1040 32 50 33     104 unless ( $_matched || defined($score) )
1041             {
1042            
1043              
1044 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1045 0 0       0 Parse::RecDescent::_trace(q{<>},
1046             Parse::RecDescent::_tracefirst($_[1]),
1047             q{expr10},
1048             $tracelevel)
1049             if defined $::RD_TRACE;
1050 0         0 return undef;
1051             }
1052 32 50 33     155 if (!defined($return) && defined($score))
1053             {
1054 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1055             q{expr10},
1056             $tracelevel)
1057             if defined $::RD_TRACE;
1058 0         0 $return = $score_return;
1059             }
1060 32         52 splice @{$thisparser->{errors}}, $err_at;
  32         86  
1061 32 50       122 $return = $item[$#item] unless defined $return;
1062 32 50       91 if (defined $::RD_TRACE)
1063             {
1064 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1065             $return . q{])}, "",
1066             q{expr10},
1067             $tracelevel);
1068 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1069             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1070             Parse::RecDescent::_tracefirst($text),
1071             , q{expr10},
1072             $tracelevel)
1073             }
1074 32         58 $_[1] = $text;
1075 32         342 return $return;
1076             }
1077              
1078             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1079             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr15
1080             {
1081 45     45   75 my $thisparser = $_[0];
1082 4     4   23 use vars q{$tracelevel};
  4         10  
  4         1785  
1083 45   50     140 local $tracelevel = ($tracelevel||0)+1;
1084 45         62 $ERRORS = 0;
1085 45         117 my $thisrule = $thisparser->{"rules"}{"expr15"};
1086            
1087 45 50       120 Parse::RecDescent::_trace(q{Trying rule: [expr15]},
1088             Parse::RecDescent::_tracefirst($_[1]),
1089             q{expr15},
1090             $tracelevel)
1091             if defined $::RD_TRACE;
1092              
1093            
1094 45         53 my $err_at = @{$thisparser->{errors}};
  45         99  
1095              
1096 45         66 my $score;
1097             my $score_return;
1098 0         0 my $_tok;
1099 45         72 my $return = undef;
1100 45         44 my $_matched=0;
1101 45         59 my $commit=0;
1102 45         75 my @item = ();
1103 45         67 my %item = ();
1104 45   33     198 my $repeating = defined($_[2]) && $_[2];
1105 45   33     151 my $_noactions = defined($_[3]) && $_[3];
1106 45 50       107 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  45         74  
  45         105  
1107 45 50       134 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1108 45         59 my $text;
1109 45         65 my $lastsep="";
1110 45         48 my $current_match;
1111 45         175 my $expectation = new Parse::RecDescent::Expectation(q{});
1112 45         463 $expectation->at($_[1]);
1113            
1114 45         204 my $thisline;
1115 45         198 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1116              
1117            
1118              
1119 45   33     490 while (!$_matched && !$commit)
1120             {
1121            
1122 45 50       110 Parse::RecDescent::_trace(q{Trying production: []},
1123             Parse::RecDescent::_tracefirst($_[1]),
1124             q{expr15},
1125             $tracelevel)
1126             if defined $::RD_TRACE;
1127 45         125 my $thisprod = $thisrule->{"prods"}[0];
1128 45         80 $text = $_[1];
1129 45         57 my $_savetext;
1130 45         99 @item = (q{expr15});
1131 45         105 %item = (__RULE__ => q{expr15});
1132 45         63 my $repcount = 0;
1133              
1134              
1135 45 50       94 Parse::RecDescent::_trace(q{Trying operator: []},
1136             Parse::RecDescent::_tracefirst($text),
1137             q{expr15},
1138             $tracelevel)
1139             if defined $::RD_TRACE;
1140 45         134 $expectation->is(q{})->at($text);
1141              
1142 45         295 $_tok = undef;
1143 45         75 OPLOOP: while (1)
1144             {
1145 45         54 $repcount = 0;
1146 45         55 my @item;
1147            
1148             # MATCH LEFTARG
1149            
1150 45 50       108 Parse::RecDescent::_trace(q{Trying subrule: [expr15a]},
1151             Parse::RecDescent::_tracefirst($text),
1152             q{expr15},
1153             $tracelevel)
1154             if defined $::RD_TRACE;
1155 4     4   45 if (1) { no strict qw{refs};
  4         8  
  4         1048  
  45         63  
1156 45         137 $expectation->is(q{expr15a})->at($text);
1157 45 50   45   516 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr15a($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  45         97  
1158             {
1159            
1160 0 0       0 Parse::RecDescent::_trace(q{<>},
1161             Parse::RecDescent::_tracefirst($text),
1162             q{expr15},
1163             $tracelevel)
1164             if defined $::RD_TRACE;
1165 0         0 $expectation->failed();
1166 0         0 last;
1167             }
1168 45 50       197 Parse::RecDescent::_trace(q{>>Matched subrule: [expr15a]<< (return value: [}
1169             . $_tok . q{]},
1170            
1171             Parse::RecDescent::_tracefirst($text),
1172             q{expr15},
1173             $tracelevel)
1174             if defined $::RD_TRACE;
1175 45         100 $item{q{expr15a}} = $_tok;
1176 45         94 push @item, $_tok;
1177            
1178             }
1179              
1180              
1181 45         60 $repcount++;
1182              
1183 45         65 my $savetext = $text;
1184 45         57 my $backtrack;
1185              
1186             # MATCH (OP RIGHTARG)(s)
1187 45         122 while ($repcount < 100000000)
1188             {
1189 50         66 $backtrack = 0;
1190            
1191 50 50       116 Parse::RecDescent::_trace(q{Trying subrule: [expr15op]},
1192             Parse::RecDescent::_tracefirst($text),
1193             q{expr15},
1194             $tracelevel)
1195             if defined $::RD_TRACE;
1196 4     4   23 if (1) { no strict qw{refs};
  4         9  
  4         897  
  50         59  
1197 50         201 $expectation->is(q{expr15op})->at($text);
1198 50 100   50   620 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr15op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  50         110  
1199             {
1200            
1201 45 50       114 Parse::RecDescent::_trace(q{<>},
1202             Parse::RecDescent::_tracefirst($text),
1203             q{expr15},
1204             $tracelevel)
1205             if defined $::RD_TRACE;
1206 45         118 $expectation->failed();
1207 45         409 last;
1208             }
1209 5 50       22 Parse::RecDescent::_trace(q{>>Matched subrule: [expr15op]<< (return value: [}
1210             . $_tok . q{]},
1211            
1212             Parse::RecDescent::_tracefirst($text),
1213             q{expr15},
1214             $tracelevel)
1215             if defined $::RD_TRACE;
1216 5         10 $item{q{expr15op}} = $_tok;
1217 5         12 push @item, $_tok;
1218            
1219             }
1220              
1221 5         8 $backtrack=1;
1222            
1223            
1224 5 50       15 Parse::RecDescent::_trace(q{Trying subrule: [expr15a]},
1225             Parse::RecDescent::_tracefirst($text),
1226             q{expr15},
1227             $tracelevel)
1228             if defined $::RD_TRACE;
1229 4     4   24 if (1) { no strict qw{refs};
  4         14  
  4         3569  
  5         7  
1230 5         18 $expectation->is(q{expr15a})->at($text);
1231 5 50   5   56 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr15a($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  5         13  
1232             {
1233            
1234 0 0       0 Parse::RecDescent::_trace(q{<>},
1235             Parse::RecDescent::_tracefirst($text),
1236             q{expr15},
1237             $tracelevel)
1238             if defined $::RD_TRACE;
1239 0         0 $expectation->failed();
1240 0         0 last;
1241             }
1242 5 50       28 Parse::RecDescent::_trace(q{>>Matched subrule: [expr15a]<< (return value: [}
1243             . $_tok . q{]},
1244            
1245             Parse::RecDescent::_tracefirst($text),
1246             q{expr15},
1247             $tracelevel)
1248             if defined $::RD_TRACE;
1249 5         11 $item{q{expr15a}} = $_tok;
1250 5         8 push @item, $_tok;
1251            
1252             }
1253              
1254 5         8 $savetext = $text;
1255 5         16 $repcount++;
1256             }
1257 45         144 $text = $savetext;
1258 45 50       125 pop @item if $backtrack;
1259              
1260 45 50       108 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
1261 45         102 $_tok = [ @item ];
1262 45         88 last;
1263             }
1264              
1265 45 50       118 unless ($repcount>=1)
1266             {
1267 0 0       0 Parse::RecDescent::_trace(q{<]>>},
1268             Parse::RecDescent::_tracefirst($text),
1269             q{expr15},
1270             $tracelevel)
1271             if defined $::RD_TRACE;
1272 0         0 $expectation->failed();
1273 0         0 last;
1274             }
1275 45 50       94 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
1276 0 0       0 . qq{@{$_tok||[]}} . q{]},
1277             Parse::RecDescent::_tracefirst($text),
1278             q{expr15},
1279             $tracelevel)
1280             if defined $::RD_TRACE;
1281              
1282 45   50     137 push @item, $item{__DIRECTIVE1__}=$_tok||[];
1283              
1284              
1285 45 50       110 Parse::RecDescent::_trace(q{Trying action},
1286             Parse::RecDescent::_tracefirst($text),
1287             q{expr15},
1288             $tracelevel)
1289             if defined $::RD_TRACE;
1290            
1291              
1292 45 50       85 $_tok = ($_noactions) ? 0 : do { left(@item) };
  45         89  
1293 45 50       137 unless (defined $_tok)
1294             {
1295 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1296             if defined $::RD_TRACE;
1297 0         0 last;
1298             }
1299 45 50       94 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1300             . $_tok . q{])},
1301             Parse::RecDescent::_tracefirst($text))
1302             if defined $::RD_TRACE;
1303 45         70 push @item, $_tok;
1304 45         101 $item{__ACTION1__}=$_tok;
1305            
1306              
1307              
1308 45 50       124 Parse::RecDescent::_trace(q{>>Matched production: []<<},
1309             Parse::RecDescent::_tracefirst($text),
1310             q{expr15},
1311             $tracelevel)
1312             if defined $::RD_TRACE;
1313 45         55 $_matched = 1;
1314 45         77 last;
1315             }
1316              
1317              
1318 45 50 33     125 unless ( $_matched || defined($score) )
1319             {
1320            
1321              
1322 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1323 0 0       0 Parse::RecDescent::_trace(q{<>},
1324             Parse::RecDescent::_tracefirst($_[1]),
1325             q{expr15},
1326             $tracelevel)
1327             if defined $::RD_TRACE;
1328 0         0 return undef;
1329             }
1330 45 50 33     193 if (!defined($return) && defined($score))
1331             {
1332 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1333             q{expr15},
1334             $tracelevel)
1335             if defined $::RD_TRACE;
1336 0         0 $return = $score_return;
1337             }
1338 45         59 splice @{$thisparser->{errors}}, $err_at;
  45         118  
1339 45 50       138 $return = $item[$#item] unless defined $return;
1340 45 50       115 if (defined $::RD_TRACE)
1341             {
1342 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1343             $return . q{])}, "",
1344             q{expr15},
1345             $tracelevel);
1346 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1347             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1348             Parse::RecDescent::_tracefirst($text),
1349             , q{expr15},
1350             $tracelevel)
1351             }
1352 45         72 $_[1] = $text;
1353 45         395 return $return;
1354             }
1355              
1356             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1357             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr11
1358             {
1359 32     32   66 my $thisparser = $_[0];
1360 4     4   27 use vars q{$tracelevel};
  4         14  
  4         1867  
1361 32   50     105 local $tracelevel = ($tracelevel||0)+1;
1362 32         43 $ERRORS = 0;
1363 32         103 my $thisrule = $thisparser->{"rules"}{"expr11"};
1364            
1365 32 50       81 Parse::RecDescent::_trace(q{Trying rule: [expr11]},
1366             Parse::RecDescent::_tracefirst($_[1]),
1367             q{expr11},
1368             $tracelevel)
1369             if defined $::RD_TRACE;
1370              
1371            
1372 32         49 my $err_at = @{$thisparser->{errors}};
  32         71  
1373              
1374 32         51 my $score;
1375             my $score_return;
1376 0         0 my $_tok;
1377 32         46 my $return = undef;
1378 32         60 my $_matched=0;
1379 32         41 my $commit=0;
1380 32         56 my @item = ();
1381 32         65 my %item = ();
1382 32   33     129 my $repeating = defined($_[2]) && $_[2];
1383 32   33     94 my $_noactions = defined($_[3]) && $_[3];
1384 32 50       85 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         41  
  32         70  
1385 32 50       103 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1386 32         59 my $text;
1387 32         39 my $lastsep="";
1388 32         37 my $current_match;
1389 32         106 my $expectation = new Parse::RecDescent::Expectation(q{});
1390 32         320 $expectation->at($_[1]);
1391            
1392 32         163 my $thisline;
1393 32         146 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1394              
1395            
1396              
1397 32   33     329 while (!$_matched && !$commit)
1398             {
1399            
1400 32 50       95 Parse::RecDescent::_trace(q{Trying production: []},
1401             Parse::RecDescent::_tracefirst($_[1]),
1402             q{expr11},
1403             $tracelevel)
1404             if defined $::RD_TRACE;
1405 32         96 my $thisprod = $thisrule->{"prods"}[0];
1406 32         64 $text = $_[1];
1407 32         41 my $_savetext;
1408 32         74 @item = (q{expr11});
1409 32         79 %item = (__RULE__ => q{expr11});
1410 32         39 my $repcount = 0;
1411              
1412              
1413 32 50       84 Parse::RecDescent::_trace(q{Trying operator: []},
1414             Parse::RecDescent::_tracefirst($text),
1415             q{expr11},
1416             $tracelevel)
1417             if defined $::RD_TRACE;
1418 32         113 $expectation->is(q{})->at($text);
1419              
1420 32         234 $_tok = undef;
1421 32         55 OPLOOP: while (1)
1422             {
1423 32         41 $repcount = 0;
1424 32         42 my @item;
1425            
1426             # MATCH LEFTARG
1427            
1428 32 50       92 Parse::RecDescent::_trace(q{Trying subrule: [expr12]},
1429             Parse::RecDescent::_tracefirst($text),
1430             q{expr11},
1431             $tracelevel)
1432             if defined $::RD_TRACE;
1433 4     4   74 if (1) { no strict qw{refs};
  4         9  
  4         1100  
  32         36  
1434 32         99 $expectation->is(q{expr12})->at($text);
1435 32 50   32   383 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr12($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         70  
1436             {
1437            
1438 0 0       0 Parse::RecDescent::_trace(q{<>},
1439             Parse::RecDescent::_tracefirst($text),
1440             q{expr11},
1441             $tracelevel)
1442             if defined $::RD_TRACE;
1443 0         0 $expectation->failed();
1444 0         0 last;
1445             }
1446 32 50       163 Parse::RecDescent::_trace(q{>>Matched subrule: [expr12]<< (return value: [}
1447             . $_tok . q{]},
1448            
1449             Parse::RecDescent::_tracefirst($text),
1450             q{expr11},
1451             $tracelevel)
1452             if defined $::RD_TRACE;
1453 32         95 $item{q{expr12}} = $_tok;
1454 32         69 push @item, $_tok;
1455            
1456             }
1457              
1458              
1459 32         48 $repcount++;
1460              
1461 32         54 my $savetext = $text;
1462 32         39 my $backtrack;
1463              
1464             # MATCH (OP RIGHTARG)(s)
1465 32         88 while ($repcount < 100000000)
1466             {
1467 40         53 $backtrack = 0;
1468            
1469 40 50       91 Parse::RecDescent::_trace(q{Trying subrule: [expr11op]},
1470             Parse::RecDescent::_tracefirst($text),
1471             q{expr11},
1472             $tracelevel)
1473             if defined $::RD_TRACE;
1474 4     4   23 if (1) { no strict qw{refs};
  4         13  
  4         947  
  40         54  
1475 40         138 $expectation->is(q{expr11op})->at($text);
1476 40 100   40   517 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr11op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  40         100  
1477             {
1478            
1479 32 50       62 Parse::RecDescent::_trace(q{<>},
1480             Parse::RecDescent::_tracefirst($text),
1481             q{expr11},
1482             $tracelevel)
1483             if defined $::RD_TRACE;
1484 32         103 $expectation->failed();
1485 32         286 last;
1486             }
1487 8 50       34 Parse::RecDescent::_trace(q{>>Matched subrule: [expr11op]<< (return value: [}
1488             . $_tok . q{]},
1489            
1490             Parse::RecDescent::_tracefirst($text),
1491             q{expr11},
1492             $tracelevel)
1493             if defined $::RD_TRACE;
1494 8         20 $item{q{expr11op}} = $_tok;
1495 8         21 push @item, $_tok;
1496            
1497             }
1498              
1499 8         12 $backtrack=1;
1500            
1501            
1502 8 50       19 Parse::RecDescent::_trace(q{Trying subrule: [expr12]},
1503             Parse::RecDescent::_tracefirst($text),
1504             q{expr11},
1505             $tracelevel)
1506             if defined $::RD_TRACE;
1507 4     4   23 if (1) { no strict qw{refs};
  4         9  
  4         3383  
  8         10  
1508 8         32 $expectation->is(q{expr12})->at($text);
1509 8 50   8   101 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr12($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  8         22  
1510             {
1511            
1512 0 0       0 Parse::RecDescent::_trace(q{<>},
1513             Parse::RecDescent::_tracefirst($text),
1514             q{expr11},
1515             $tracelevel)
1516             if defined $::RD_TRACE;
1517 0         0 $expectation->failed();
1518 0         0 last;
1519             }
1520 8 50       37 Parse::RecDescent::_trace(q{>>Matched subrule: [expr12]<< (return value: [}
1521             . $_tok . q{]},
1522            
1523             Parse::RecDescent::_tracefirst($text),
1524             q{expr11},
1525             $tracelevel)
1526             if defined $::RD_TRACE;
1527 8         23 $item{q{expr12}} = $_tok;
1528 8         15 push @item, $_tok;
1529            
1530             }
1531              
1532 8         14 $savetext = $text;
1533 8         23 $repcount++;
1534             }
1535 32         119 $text = $savetext;
1536 32 50       78 pop @item if $backtrack;
1537              
1538 32 50       90 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
1539 32         96 $_tok = [ @item ];
1540 32         71 last;
1541             }
1542              
1543 32 50       97 unless ($repcount>=1)
1544             {
1545 0 0       0 Parse::RecDescent::_trace(q{<]>>},
1546             Parse::RecDescent::_tracefirst($text),
1547             q{expr11},
1548             $tracelevel)
1549             if defined $::RD_TRACE;
1550 0         0 $expectation->failed();
1551 0         0 last;
1552             }
1553 32 50       80 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
1554 0 0       0 . qq{@{$_tok||[]}} . q{]},
1555             Parse::RecDescent::_tracefirst($text),
1556             q{expr11},
1557             $tracelevel)
1558             if defined $::RD_TRACE;
1559              
1560 32   50     147 push @item, $item{__DIRECTIVE1__}=$_tok||[];
1561              
1562              
1563 32 50       84 Parse::RecDescent::_trace(q{Trying action},
1564             Parse::RecDescent::_tracefirst($text),
1565             q{expr11},
1566             $tracelevel)
1567             if defined $::RD_TRACE;
1568            
1569              
1570 32 50       72 $_tok = ($_noactions) ? 0 : do { nonassoc(@item) };
  32         68  
1571 32 50       78 unless (defined $_tok)
1572             {
1573 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1574             if defined $::RD_TRACE;
1575 0         0 last;
1576             }
1577 32 50       75 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1578             . $_tok . q{])},
1579             Parse::RecDescent::_tracefirst($text))
1580             if defined $::RD_TRACE;
1581 32         59 push @item, $_tok;
1582 32         75 $item{__ACTION1__}=$_tok;
1583            
1584              
1585              
1586 32 50       79 Parse::RecDescent::_trace(q{>>Matched production: []<<},
1587             Parse::RecDescent::_tracefirst($text),
1588             q{expr11},
1589             $tracelevel)
1590             if defined $::RD_TRACE;
1591 32         44 $_matched = 1;
1592 32         62 last;
1593             }
1594              
1595              
1596 32 50 33     92 unless ( $_matched || defined($score) )
1597             {
1598            
1599              
1600 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
1601 0 0       0 Parse::RecDescent::_trace(q{<>},
1602             Parse::RecDescent::_tracefirst($_[1]),
1603             q{expr11},
1604             $tracelevel)
1605             if defined $::RD_TRACE;
1606 0         0 return undef;
1607             }
1608 32 50 33     165 if (!defined($return) && defined($score))
1609             {
1610 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1611             q{expr11},
1612             $tracelevel)
1613             if defined $::RD_TRACE;
1614 0         0 $return = $score_return;
1615             }
1616 32         42 splice @{$thisparser->{errors}}, $err_at;
  32         85  
1617 32 50       108 $return = $item[$#item] unless defined $return;
1618 32 50       94 if (defined $::RD_TRACE)
1619             {
1620 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1621             $return . q{])}, "",
1622             q{expr11},
1623             $tracelevel);
1624 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1625             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1626             Parse::RecDescent::_tracefirst($text),
1627             , q{expr11},
1628             $tracelevel)
1629             }
1630 32         64 $_[1] = $text;
1631 32         330 return $return;
1632             }
1633              
1634             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1635             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr12op
1636             {
1637 43     43   75 my $thisparser = $_[0];
1638 4     4   102 use vars q{$tracelevel};
  4         8  
  4         28734  
1639 43   50     164 local $tracelevel = ($tracelevel||0)+1;
1640 43         75 $ERRORS = 0;
1641 43         170 my $thisrule = $thisparser->{"rules"}{"expr12op"};
1642            
1643 43 50       116 Parse::RecDescent::_trace(q{Trying rule: [expr12op]},
1644             Parse::RecDescent::_tracefirst($_[1]),
1645             q{expr12op},
1646             $tracelevel)
1647             if defined $::RD_TRACE;
1648              
1649            
1650 43         70 my $err_at = @{$thisparser->{errors}};
  43         96  
1651              
1652 43         69 my $score;
1653             my $score_return;
1654 0         0 my $_tok;
1655 43         91 my $return = undef;
1656 43         48 my $_matched=0;
1657 43         53 my $commit=0;
1658 43         101 my @item = ();
1659 43         74 my %item = ();
1660 43   33     190 my $repeating = defined($_[2]) && $_[2];
1661 43   33     201 my $_noactions = defined($_[3]) && $_[3];
1662 43 50       110 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  43         54  
  43         97  
1663 43 50       143 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1664 43         53 my $text;
1665 43         80 my $lastsep="";
1666 43         48 my $current_match;
1667 43         172 my $expectation = new Parse::RecDescent::Expectation(q{/(<|>|<=|>=|lt|gt|le|ge)/});
1668 43         413 $expectation->at($_[1]);
1669            
1670 43         182 my $thisline;
1671 43         210 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1672              
1673            
1674              
1675 43   33     441 while (!$_matched && !$commit)
1676             {
1677            
1678 43 50       110 Parse::RecDescent::_trace(q{Trying production: [/(<|>|<=|>=|lt|gt|le|ge)/]},
1679             Parse::RecDescent::_tracefirst($_[1]),
1680             q{expr12op},
1681             $tracelevel)
1682             if defined $::RD_TRACE;
1683 43         124 my $thisprod = $thisrule->{"prods"}[0];
1684 43         65 $text = $_[1];
1685 43         90 my $_savetext;
1686 43         84 @item = (q{expr12op});
1687 43         111 %item = (__RULE__ => q{expr12op});
1688 43         71 my $repcount = 0;
1689              
1690              
1691 43 50       89 Parse::RecDescent::_trace(q{Trying terminal: [/(<|>|<=|>=|lt|gt|le|ge)/]}, Parse::RecDescent::_tracefirst($text),
1692             q{expr12op},
1693             $tracelevel)
1694             if defined $::RD_TRACE;
1695 43         79 $lastsep = "";
1696 43         148 $expectation->is(q{})->at($text);
1697            
1698              
1699 43 100 66     512 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(<|>|<=|>=|lt|gt|le|ge))/)
  43 100       454  
1700             {
1701            
1702 40         132 $expectation->failed();
1703 40 50       226 Parse::RecDescent::_trace(q{<>},
1704             Parse::RecDescent::_tracefirst($text))
1705             if defined $::RD_TRACE;
1706              
1707 40         88 last;
1708             }
1709 3         26 $current_match = substr($text, $-[0], $+[0] - $-[0]);
1710 3         11 substr($text,0,length($current_match),q{});
1711 3 50       8 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1712             . $current_match . q{])},
1713             Parse::RecDescent::_tracefirst($text))
1714             if defined $::RD_TRACE;
1715 3         9 push @item, $item{__PATTERN1__}=$current_match;
1716            
1717              
1718 3 50       8 Parse::RecDescent::_trace(q{Trying action},
1719             Parse::RecDescent::_tracefirst($text),
1720             q{expr12op},
1721             $tracelevel)
1722             if defined $::RD_TRACE;
1723            
1724              
1725 3 50       14 $_tok = ($_noactions) ? 0 : do { $item[1] };
  3         8  
1726 3 50       9 unless (defined $_tok)
1727             {
1728 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
1729             if defined $::RD_TRACE;
1730 0         0 last;
1731             }
1732 3 50       8 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1733             . $_tok . q{])},
1734             Parse::RecDescent::_tracefirst($text))
1735             if defined $::RD_TRACE;
1736 3         6 push @item, $_tok;
1737 3         6 $item{__ACTION1__}=$_tok;
1738            
1739              
1740              
1741 3 50       8 Parse::RecDescent::_trace(q{>>Matched production: [/(<|>|<=|>=|lt|gt|le|ge)/]<<},
1742             Parse::RecDescent::_tracefirst($text),
1743             q{expr12op},
1744             $tracelevel)
1745             if defined $::RD_TRACE;
1746 3         5 $_matched = 1;
1747 3         6 last;
1748             }
1749              
1750              
1751 43 100 66     281 unless ( $_matched || defined($score) )
1752             {
1753            
1754              
1755 40         66 $_[1] = $text; # NOT SURE THIS IS NEEDED
1756 40 50       97 Parse::RecDescent::_trace(q{<>},
1757             Parse::RecDescent::_tracefirst($_[1]),
1758             q{expr12op},
1759             $tracelevel)
1760             if defined $::RD_TRACE;
1761 40         310 return undef;
1762             }
1763 3 50 33     19 if (!defined($return) && defined($score))
1764             {
1765 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1766             q{expr12op},
1767             $tracelevel)
1768             if defined $::RD_TRACE;
1769 0         0 $return = $score_return;
1770             }
1771 3         4 splice @{$thisparser->{errors}}, $err_at;
  3         8  
1772 3 50       11 $return = $item[$#item] unless defined $return;
1773 3 50       8 if (defined $::RD_TRACE)
1774             {
1775 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1776             $return . q{])}, "",
1777             q{expr12op},
1778             $tracelevel);
1779 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
1780             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1781             Parse::RecDescent::_tracefirst($text),
1782             , q{expr12op},
1783             $tracelevel)
1784             }
1785 3         5 $_[1] = $text;
1786 3         27 return $return;
1787             }
1788              
1789             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1790             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr8
1791             {
1792 32     32   68 my $thisparser = $_[0];
1793 4     4   35 use vars q{$tracelevel};
  4         6  
  4         1881  
1794 32   50     111 local $tracelevel = ($tracelevel||0)+1;
1795 32         51 $ERRORS = 0;
1796 32         91 my $thisrule = $thisparser->{"rules"}{"expr8"};
1797            
1798 32 50       82 Parse::RecDescent::_trace(q{Trying rule: [expr8]},
1799             Parse::RecDescent::_tracefirst($_[1]),
1800             q{expr8},
1801             $tracelevel)
1802             if defined $::RD_TRACE;
1803              
1804            
1805 32         45 my $err_at = @{$thisparser->{errors}};
  32         61  
1806              
1807 32         61 my $score;
1808             my $score_return;
1809 0         0 my $_tok;
1810 32         45 my $return = undef;
1811 32         37 my $_matched=0;
1812 32         36 my $commit=0;
1813 32         58 my @item = ();
1814 32         52 my %item = ();
1815 32   33     123 my $repeating = defined($_[2]) && $_[2];
1816 32   33     108 my $_noactions = defined($_[3]) && $_[3];
1817 32 50       74 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         53  
  32         82  
1818 32 50       105 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1819 32         42 my $text;
1820 32         46 my $lastsep="";
1821 32         40 my $current_match;
1822 32         134 my $expectation = new Parse::RecDescent::Expectation(q{});
1823 32         290 $expectation->at($_[1]);
1824            
1825 32         129 my $thisline;
1826 32         133 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1827              
1828            
1829              
1830 32   33     362 while (!$_matched && !$commit)
1831             {
1832            
1833 32 50       77 Parse::RecDescent::_trace(q{Trying production: []},
1834             Parse::RecDescent::_tracefirst($_[1]),
1835             q{expr8},
1836             $tracelevel)
1837             if defined $::RD_TRACE;
1838 32         90 my $thisprod = $thisrule->{"prods"}[0];
1839 32         62 $text = $_[1];
1840 32         39 my $_savetext;
1841 32         58 @item = (q{expr8});
1842 32         83 %item = (__RULE__ => q{expr8});
1843 32         45 my $repcount = 0;
1844              
1845              
1846 32 50       90 Parse::RecDescent::_trace(q{Trying operator: []},
1847             Parse::RecDescent::_tracefirst($text),
1848             q{expr8},
1849             $tracelevel)
1850             if defined $::RD_TRACE;
1851 32         92 $expectation->is(q{})->at($text);
1852              
1853 32         214 $_tok = undef;
1854 32         35 OPLOOP: while (1)
1855             {
1856 32         91 $repcount = 0;
1857 32         45 my @item;
1858            
1859             # MATCH LEFTARG
1860            
1861 32 50       87 Parse::RecDescent::_trace(q{Trying subrule: [expr9]},
1862             Parse::RecDescent::_tracefirst($text),
1863             q{expr8},
1864             $tracelevel)
1865             if defined $::RD_TRACE;
1866 4     4   26 if (1) { no strict qw{refs};
  4         10  
  4         1111  
  32         43  
1867 32         90 $expectation->is(q{expr9})->at($text);
1868 32 50   32   367 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr9($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         70  
1869             {
1870            
1871 0 0       0 Parse::RecDescent::_trace(q{<>},
1872             Parse::RecDescent::_tracefirst($text),
1873             q{expr8},
1874             $tracelevel)
1875             if defined $::RD_TRACE;
1876 0         0 $expectation->failed();
1877 0         0 last;
1878             }
1879 32 50       173 Parse::RecDescent::_trace(q{>>Matched subrule: [expr9]<< (return value: [}
1880             . $_tok . q{]},
1881            
1882             Parse::RecDescent::_tracefirst($text),
1883             q{expr8},
1884             $tracelevel)
1885             if defined $::RD_TRACE;
1886 32         93 $item{q{expr9}} = $_tok;
1887 32         65 push @item, $_tok;
1888            
1889             }
1890              
1891              
1892 32         43 $repcount++;
1893              
1894 32         64 my $savetext = $text;
1895 32         44 my $backtrack;
1896              
1897             # MATCH (OP RIGHTARG)(s)
1898 32         91 while ($repcount < 100000000)
1899             {
1900 32         50 $backtrack = 0;
1901            
1902 32 50       66 Parse::RecDescent::_trace(q{Trying subrule: [expr8op]},
1903             Parse::RecDescent::_tracefirst($text),
1904             q{expr8},
1905             $tracelevel)
1906             if defined $::RD_TRACE;
1907 4     4   26 if (1) { no strict qw{refs};
  4         14  
  4         927  
  32         35  
1908 32         118 $expectation->is(q{expr8op})->at($text);
1909 32 50   32   428 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr8op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         80  
1910             {
1911            
1912 32 50       73 Parse::RecDescent::_trace(q{<>},
1913             Parse::RecDescent::_tracefirst($text),
1914             q{expr8},
1915             $tracelevel)
1916             if defined $::RD_TRACE;
1917 32         107 $expectation->failed();
1918 32         287 last;
1919             }
1920 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr8op]<< (return value: [}
1921             . $_tok . q{]},
1922            
1923             Parse::RecDescent::_tracefirst($text),
1924             q{expr8},
1925             $tracelevel)
1926             if defined $::RD_TRACE;
1927 0         0 $item{q{expr8op}} = $_tok;
1928 0         0 push @item, $_tok;
1929            
1930             }
1931              
1932 0         0 $backtrack=1;
1933            
1934            
1935 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr9]},
1936             Parse::RecDescent::_tracefirst($text),
1937             q{expr8},
1938             $tracelevel)
1939             if defined $::RD_TRACE;
1940 4     4   24 if (1) { no strict qw{refs};
  4         9  
  4         3687  
  0         0  
1941 0         0 $expectation->is(q{expr9})->at($text);
1942 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr9($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
1943             {
1944            
1945 0 0       0 Parse::RecDescent::_trace(q{<>},
1946             Parse::RecDescent::_tracefirst($text),
1947             q{expr8},
1948             $tracelevel)
1949             if defined $::RD_TRACE;
1950 0         0 $expectation->failed();
1951 0         0 last;
1952             }
1953 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr9]<< (return value: [}
1954             . $_tok . q{]},
1955            
1956             Parse::RecDescent::_tracefirst($text),
1957             q{expr8},
1958             $tracelevel)
1959             if defined $::RD_TRACE;
1960 0         0 $item{q{expr9}} = $_tok;
1961 0         0 push @item, $_tok;
1962            
1963             }
1964              
1965 0         0 $savetext = $text;
1966 0         0 $repcount++;
1967             }
1968 32         134 $text = $savetext;
1969 32 50       72 pop @item if $backtrack;
1970              
1971 32 50       84 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
1972 32         88 $_tok = [ @item ];
1973 32         65 last;
1974             }
1975              
1976 32 50       88 unless ($repcount>=1)
1977             {
1978 0 0       0 Parse::RecDescent::_trace(q{<]>>},
1979             Parse::RecDescent::_tracefirst($text),
1980             q{expr8},
1981             $tracelevel)
1982             if defined $::RD_TRACE;
1983 0         0 $expectation->failed();
1984 0         0 last;
1985             }
1986 32 50       67 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
1987 0 0       0 . qq{@{$_tok||[]}} . q{]},
1988             Parse::RecDescent::_tracefirst($text),
1989             q{expr8},
1990             $tracelevel)
1991             if defined $::RD_TRACE;
1992              
1993 32   50     108 push @item, $item{__DIRECTIVE1__}=$_tok||[];
1994              
1995              
1996 32 50       69 Parse::RecDescent::_trace(q{Trying action},
1997             Parse::RecDescent::_tracefirst($text),
1998             q{expr8},
1999             $tracelevel)
2000             if defined $::RD_TRACE;
2001            
2002              
2003 32 50       63 $_tok = ($_noactions) ? 0 : do { left(@item) };
  32         76  
2004 32 50       95 unless (defined $_tok)
2005             {
2006 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
2007             if defined $::RD_TRACE;
2008 0         0 last;
2009             }
2010 32 50       159 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2011             . $_tok . q{])},
2012             Parse::RecDescent::_tracefirst($text))
2013             if defined $::RD_TRACE;
2014 32         71 push @item, $_tok;
2015 32         140 $item{__ACTION1__}=$_tok;
2016            
2017              
2018              
2019 32 50       70 Parse::RecDescent::_trace(q{>>Matched production: []<<},
2020             Parse::RecDescent::_tracefirst($text),
2021             q{expr8},
2022             $tracelevel)
2023             if defined $::RD_TRACE;
2024 32         48 $_matched = 1;
2025 32         68 last;
2026             }
2027              
2028              
2029 32 50 33     101 unless ( $_matched || defined($score) )
2030             {
2031            
2032              
2033 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2034 0 0       0 Parse::RecDescent::_trace(q{<>},
2035             Parse::RecDescent::_tracefirst($_[1]),
2036             q{expr8},
2037             $tracelevel)
2038             if defined $::RD_TRACE;
2039 0         0 return undef;
2040             }
2041 32 50 33     171 if (!defined($return) && defined($score))
2042             {
2043 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2044             q{expr8},
2045             $tracelevel)
2046             if defined $::RD_TRACE;
2047 0         0 $return = $score_return;
2048             }
2049 32         61 splice @{$thisparser->{errors}}, $err_at;
  32         83  
2050 32 50       112 $return = $item[$#item] unless defined $return;
2051 32 50       80 if (defined $::RD_TRACE)
2052             {
2053 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2054             $return . q{])}, "",
2055             q{expr8},
2056             $tracelevel);
2057 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2058             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2059             Parse::RecDescent::_tracefirst($text),
2060             , q{expr8},
2061             $tracelevel)
2062             }
2063 32         67 $_[1] = $text;
2064 32         327 return $return;
2065             }
2066              
2067             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2068             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr5
2069             {
2070 13     13   25 my $thisparser = $_[0];
2071 4     4   28 use vars q{$tracelevel};
  4         8  
  4         2466  
2072 13   50     46 local $tracelevel = ($tracelevel||0)+1;
2073 13         17 $ERRORS = 0;
2074 13         36 my $thisrule = $thisparser->{"rules"}{"expr5"};
2075            
2076 13 50       34 Parse::RecDescent::_trace(q{Trying rule: [expr5]},
2077             Parse::RecDescent::_tracefirst($_[1]),
2078             q{expr5},
2079             $tracelevel)
2080             if defined $::RD_TRACE;
2081              
2082            
2083 13         16 my $err_at = @{$thisparser->{errors}};
  13         32  
2084              
2085 13         19 my $score;
2086             my $score_return;
2087 0         0 my $_tok;
2088 13         28 my $return = undef;
2089 13         28 my $_matched=0;
2090 13         18 my $commit=0;
2091 13         30 my @item = ();
2092 13         26 my %item = ();
2093 13   33     53 my $repeating = defined($_[2]) && $_[2];
2094 13   33     49 my $_noactions = defined($_[3]) && $_[3];
2095 13 50       32 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  13         24  
  13         26  
2096 13 50       90 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2097 13         16 my $text;
2098 13         24 my $lastsep="";
2099 13         16 my $current_match;
2100 13         48 my $expectation = new Parse::RecDescent::Expectation(q{'not', or expr6});
2101 13         112 $expectation->at($_[1]);
2102            
2103 13         55 my $thisline;
2104 13         59 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2105              
2106            
2107              
2108 13   33     140 while (!$_matched && !$commit)
2109             {
2110            
2111 13 50       38 Parse::RecDescent::_trace(q{Trying production: ['not' expr6]},
2112             Parse::RecDescent::_tracefirst($_[1]),
2113             q{expr5},
2114             $tracelevel)
2115             if defined $::RD_TRACE;
2116 13         53 my $thisprod = $thisrule->{"prods"}[0];
2117 13         24 $text = $_[1];
2118 13         26 my $_savetext;
2119 13         35 @item = (q{expr5});
2120 13         32 %item = (__RULE__ => q{expr5});
2121 13         20 my $repcount = 0;
2122              
2123              
2124 13 50       34 Parse::RecDescent::_trace(q{Trying terminal: ['not']},
2125             Parse::RecDescent::_tracefirst($text),
2126             q{expr5},
2127             $tracelevel)
2128             if defined $::RD_TRACE;
2129 13         29 $lastsep = "";
2130 13         42 $expectation->is(q{})->at($text);
2131            
2132              
2133 13 50 33     187 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "not"; 1 } and
  13 100 66     112  
  13   66     19  
  13         100  
2134             substr($text,0,length($_tok)) eq $_tok and
2135 6         19 do { substr($text,0,length($_tok)) = ""; 1; }
  6         19  
2136             )
2137             {
2138            
2139 7         29 $expectation->failed();
2140 7 50       97 Parse::RecDescent::_trace(q{<>},
2141             Parse::RecDescent::_tracefirst($text))
2142             if defined $::RD_TRACE;
2143 7         21 last;
2144             }
2145 6 50       22 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2146             . $_tok . q{])},
2147             Parse::RecDescent::_tracefirst($text))
2148             if defined $::RD_TRACE;
2149 6         19 push @item, $item{__STRING1__}=$_tok;
2150            
2151              
2152 6 50       17 Parse::RecDescent::_trace(q{Trying subrule: [expr6]},
2153             Parse::RecDescent::_tracefirst($text),
2154             q{expr5},
2155             $tracelevel)
2156             if defined $::RD_TRACE;
2157 4     4   24 if (1) { no strict qw{refs};
  4         8  
  4         1944  
  6         12  
2158 6         20 $expectation->is(q{expr6})->at($text);
2159 6 50   6   77 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr6($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  6         16  
2160             {
2161            
2162 0 0       0 Parse::RecDescent::_trace(q{<>},
2163             Parse::RecDescent::_tracefirst($text),
2164             q{expr5},
2165             $tracelevel)
2166             if defined $::RD_TRACE;
2167 0         0 $expectation->failed();
2168 0         0 last;
2169             }
2170 6 50       42 Parse::RecDescent::_trace(q{>>Matched subrule: [expr6]<< (return value: [}
2171             . $_tok . q{]},
2172            
2173             Parse::RecDescent::_tracefirst($text),
2174             q{expr5},
2175             $tracelevel)
2176             if defined $::RD_TRACE;
2177 6         21 $item{q{expr6}} = $_tok;
2178 6         17 push @item, $_tok;
2179            
2180             }
2181              
2182 6 50       26 Parse::RecDescent::_trace(q{Trying action},
2183             Parse::RecDescent::_tracefirst($text),
2184             q{expr5},
2185             $tracelevel)
2186             if defined $::RD_TRACE;
2187            
2188              
2189 6 50       20 $_tok = ($_noactions) ? 0 : do { unary('not', $item[2]) };
  6         33  
2190 6 50       20 unless (defined $_tok)
2191             {
2192 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
2193             if defined $::RD_TRACE;
2194 0         0 last;
2195             }
2196 6 50       16 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2197             . $_tok . q{])},
2198             Parse::RecDescent::_tracefirst($text))
2199             if defined $::RD_TRACE;
2200 6         15 push @item, $_tok;
2201 6         15 $item{__ACTION1__}=$_tok;
2202            
2203              
2204              
2205 6 50       22 Parse::RecDescent::_trace(q{>>Matched production: ['not' expr6]<<},
2206             Parse::RecDescent::_tracefirst($text),
2207             q{expr5},
2208             $tracelevel)
2209             if defined $::RD_TRACE;
2210 6         15 $_matched = 1;
2211 6         20 last;
2212             }
2213              
2214              
2215 13   66     73 while (!$_matched && !$commit)
2216             {
2217            
2218 7 50       22 Parse::RecDescent::_trace(q{Trying production: [expr6]},
2219             Parse::RecDescent::_tracefirst($_[1]),
2220             q{expr5},
2221             $tracelevel)
2222             if defined $::RD_TRACE;
2223 7         18 my $thisprod = $thisrule->{"prods"}[1];
2224 7         13 $text = $_[1];
2225 7         11 my $_savetext;
2226 7         19 @item = (q{expr5});
2227 7         22 %item = (__RULE__ => q{expr5});
2228 7         14 my $repcount = 0;
2229              
2230              
2231 7 50       22 Parse::RecDescent::_trace(q{Trying subrule: [expr6]},
2232             Parse::RecDescent::_tracefirst($text),
2233             q{expr5},
2234             $tracelevel)
2235             if defined $::RD_TRACE;
2236 4     4   23 if (1) { no strict qw{refs};
  4         10  
  4         2761  
  7         12  
2237 7         26 $expectation->is(q{})->at($text);
2238 7 50   7   91 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr6($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  7         17  
2239             {
2240            
2241 0 0       0 Parse::RecDescent::_trace(q{<>},
2242             Parse::RecDescent::_tracefirst($text),
2243             q{expr5},
2244             $tracelevel)
2245             if defined $::RD_TRACE;
2246 0         0 $expectation->failed();
2247 0         0 last;
2248             }
2249 7 50       45 Parse::RecDescent::_trace(q{>>Matched subrule: [expr6]<< (return value: [}
2250             . $_tok . q{]},
2251            
2252             Parse::RecDescent::_tracefirst($text),
2253             q{expr5},
2254             $tracelevel)
2255             if defined $::RD_TRACE;
2256 7         23 $item{q{expr6}} = $_tok;
2257 7         11 push @item, $_tok;
2258            
2259             }
2260              
2261 7 50       18 Parse::RecDescent::_trace(q{Trying action},
2262             Parse::RecDescent::_tracefirst($text),
2263             q{expr5},
2264             $tracelevel)
2265             if defined $::RD_TRACE;
2266            
2267              
2268 7 50       16 $_tok = ($_noactions) ? 0 : do { $item[1] };
  7         15  
2269 7 50       18 unless (defined $_tok)
2270             {
2271 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
2272             if defined $::RD_TRACE;
2273 0         0 last;
2274             }
2275 7 50       21 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2276             . $_tok . q{])},
2277             Parse::RecDescent::_tracefirst($text))
2278             if defined $::RD_TRACE;
2279 7         12 push @item, $_tok;
2280 7         21 $item{__ACTION1__}=$_tok;
2281            
2282              
2283              
2284 7 50       16 Parse::RecDescent::_trace(q{>>Matched production: [expr6]<<},
2285             Parse::RecDescent::_tracefirst($text),
2286             q{expr5},
2287             $tracelevel)
2288             if defined $::RD_TRACE;
2289 7         10 $_matched = 1;
2290 7         15 last;
2291             }
2292              
2293              
2294 13 50 33     93 unless ( $_matched || defined($score) )
2295             {
2296            
2297              
2298 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2299 0 0       0 Parse::RecDescent::_trace(q{<>},
2300             Parse::RecDescent::_tracefirst($_[1]),
2301             q{expr5},
2302             $tracelevel)
2303             if defined $::RD_TRACE;
2304 0         0 return undef;
2305             }
2306 13 50 33     102 if (!defined($return) && defined($score))
2307             {
2308 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2309             q{expr5},
2310             $tracelevel)
2311             if defined $::RD_TRACE;
2312 0         0 $return = $score_return;
2313             }
2314 13         20 splice @{$thisparser->{errors}}, $err_at;
  13         37  
2315 13 50       44 $return = $item[$#item] unless defined $return;
2316 13 50       34 if (defined $::RD_TRACE)
2317             {
2318 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2319             $return . q{])}, "",
2320             q{expr5},
2321             $tracelevel);
2322 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2323             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2324             Parse::RecDescent::_tracefirst($text),
2325             , q{expr5},
2326             $tracelevel)
2327             }
2328 13         31 $_[1] = $text;
2329 13         160 return $return;
2330             }
2331              
2332             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2333             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr14
2334             {
2335 43     43   286 my $thisparser = $_[0];
2336 4     4   25 use vars q{$tracelevel};
  4         10  
  4         1757  
2337 43   50     128 local $tracelevel = ($tracelevel||0)+1;
2338 43         66 $ERRORS = 0;
2339 43         294 my $thisrule = $thisparser->{"rules"}{"expr14"};
2340            
2341 43 50       128 Parse::RecDescent::_trace(q{Trying rule: [expr14]},
2342             Parse::RecDescent::_tracefirst($_[1]),
2343             q{expr14},
2344             $tracelevel)
2345             if defined $::RD_TRACE;
2346              
2347            
2348 43         46 my $err_at = @{$thisparser->{errors}};
  43         125  
2349              
2350 43         262 my $score;
2351             my $score_return;
2352 0         0 my $_tok;
2353 43         56 my $return = undef;
2354 43         55 my $_matched=0;
2355 43         65 my $commit=0;
2356 43         73 my @item = ();
2357 43         77 my %item = ();
2358 43   33     171 my $repeating = defined($_[2]) && $_[2];
2359 43   33     131 my $_noactions = defined($_[3]) && $_[3];
2360 43 50       91 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  43         56  
  43         118  
2361 43 50       135 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2362 43         55 my $text;
2363 43         245 my $lastsep="";
2364 43         39 my $current_match;
2365 43         200 my $expectation = new Parse::RecDescent::Expectation(q{});
2366 43         585 $expectation->at($_[1]);
2367            
2368 43         254 my $thisline;
2369 43         217 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2370              
2371            
2372              
2373 43   33     667 while (!$_matched && !$commit)
2374             {
2375            
2376 43 50       118 Parse::RecDescent::_trace(q{Trying production: []},
2377             Parse::RecDescent::_tracefirst($_[1]),
2378             q{expr14},
2379             $tracelevel)
2380             if defined $::RD_TRACE;
2381 43         125 my $thisprod = $thisrule->{"prods"}[0];
2382 43         66 $text = $_[1];
2383 43         56 my $_savetext;
2384 43         95 @item = (q{expr14});
2385 43         95 %item = (__RULE__ => q{expr14});
2386 43         53 my $repcount = 0;
2387              
2388              
2389 43 50       94 Parse::RecDescent::_trace(q{Trying operator: []},
2390             Parse::RecDescent::_tracefirst($text),
2391             q{expr14},
2392             $tracelevel)
2393             if defined $::RD_TRACE;
2394 43         135 $expectation->is(q{})->at($text);
2395              
2396 43         273 $_tok = undef;
2397 43         56 OPLOOP: while (1)
2398             {
2399 43         72 $repcount = 0;
2400 43         74 my @item;
2401            
2402             # MATCH LEFTARG
2403            
2404 43 50       114 Parse::RecDescent::_trace(q{Trying subrule: [expr15]},
2405             Parse::RecDescent::_tracefirst($text),
2406             q{expr14},
2407             $tracelevel)
2408             if defined $::RD_TRACE;
2409 4     4   24 if (1) { no strict qw{refs};
  4         8  
  4         1212  
  43         54  
2410 43         128 $expectation->is(q{expr15})->at($text);
2411 43 50   43   475 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr15($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  43         100  
2412             {
2413            
2414 0 0       0 Parse::RecDescent::_trace(q{<>},
2415             Parse::RecDescent::_tracefirst($text),
2416             q{expr14},
2417             $tracelevel)
2418             if defined $::RD_TRACE;
2419 0         0 $expectation->failed();
2420 0         0 last;
2421             }
2422 43 50       179 Parse::RecDescent::_trace(q{>>Matched subrule: [expr15]<< (return value: [}
2423             . $_tok . q{]},
2424            
2425             Parse::RecDescent::_tracefirst($text),
2426             q{expr14},
2427             $tracelevel)
2428             if defined $::RD_TRACE;
2429 43         97 $item{q{expr15}} = $_tok;
2430 43         90 push @item, $_tok;
2431            
2432             }
2433              
2434              
2435 43         52 $repcount++;
2436              
2437 43         70 my $savetext = $text;
2438 43         51 my $backtrack;
2439              
2440             # MATCH (OP RIGHTARG)(s)
2441 43         105 while ($repcount < 100000000)
2442             {
2443 45         54 $backtrack = 0;
2444            
2445 45 50       122 Parse::RecDescent::_trace(q{Trying subrule: [expr14op]},
2446             Parse::RecDescent::_tracefirst($text),
2447             q{expr14},
2448             $tracelevel)
2449             if defined $::RD_TRACE;
2450 4     4   24 if (1) { no strict qw{refs};
  4         7  
  4         920  
  45         50  
2451 45         163 $expectation->is(q{expr14op})->at($text);
2452 45 100   45   561 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr14op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  45         97  
2453             {
2454            
2455 43 50       99 Parse::RecDescent::_trace(q{<>},
2456             Parse::RecDescent::_tracefirst($text),
2457             q{expr14},
2458             $tracelevel)
2459             if defined $::RD_TRACE;
2460 43         168 $expectation->failed();
2461 43         393 last;
2462             }
2463 2 50       10 Parse::RecDescent::_trace(q{>>Matched subrule: [expr14op]<< (return value: [}
2464             . $_tok . q{]},
2465            
2466             Parse::RecDescent::_tracefirst($text),
2467             q{expr14},
2468             $tracelevel)
2469             if defined $::RD_TRACE;
2470 2         6 $item{q{expr14op}} = $_tok;
2471 2         6 push @item, $_tok;
2472            
2473             }
2474              
2475 2         4 $backtrack=1;
2476            
2477            
2478 2 50       8 Parse::RecDescent::_trace(q{Trying subrule: [expr15]},
2479             Parse::RecDescent::_tracefirst($text),
2480             q{expr14},
2481             $tracelevel)
2482             if defined $::RD_TRACE;
2483 4     4   24 if (1) { no strict qw{refs};
  4         8  
  4         3635  
  2         4  
2484 2         8 $expectation->is(q{expr15})->at($text);
2485 2 50   2   29 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr15($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  2         5  
2486             {
2487            
2488 0 0       0 Parse::RecDescent::_trace(q{<>},
2489             Parse::RecDescent::_tracefirst($text),
2490             q{expr14},
2491             $tracelevel)
2492             if defined $::RD_TRACE;
2493 0         0 $expectation->failed();
2494 0         0 last;
2495             }
2496 2 50       10 Parse::RecDescent::_trace(q{>>Matched subrule: [expr15]<< (return value: [}
2497             . $_tok . q{]},
2498            
2499             Parse::RecDescent::_tracefirst($text),
2500             q{expr14},
2501             $tracelevel)
2502             if defined $::RD_TRACE;
2503 2         4 $item{q{expr15}} = $_tok;
2504 2         6 push @item, $_tok;
2505            
2506             }
2507              
2508 2         3 $savetext = $text;
2509 2         5 $repcount++;
2510             }
2511 43         140 $text = $savetext;
2512 43 50       97 pop @item if $backtrack;
2513              
2514 43 50       91 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
2515 43         109 $_tok = [ @item ];
2516 43         91 last;
2517             }
2518              
2519 43 50       114 unless ($repcount>=1)
2520             {
2521 0 0       0 Parse::RecDescent::_trace(q{<]>>},
2522             Parse::RecDescent::_tracefirst($text),
2523             q{expr14},
2524             $tracelevel)
2525             if defined $::RD_TRACE;
2526 0         0 $expectation->failed();
2527 0         0 last;
2528             }
2529 43 50       95 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
2530 0 0       0 . qq{@{$_tok||[]}} . q{]},
2531             Parse::RecDescent::_tracefirst($text),
2532             q{expr14},
2533             $tracelevel)
2534             if defined $::RD_TRACE;
2535              
2536 43   50     166 push @item, $item{__DIRECTIVE1__}=$_tok||[];
2537              
2538              
2539 43 50       91 Parse::RecDescent::_trace(q{Trying action},
2540             Parse::RecDescent::_tracefirst($text),
2541             q{expr14},
2542             $tracelevel)
2543             if defined $::RD_TRACE;
2544            
2545              
2546 43 50       77 $_tok = ($_noactions) ? 0 : do { left(@item) };
  43         93  
2547 43 50       128 unless (defined $_tok)
2548             {
2549 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
2550             if defined $::RD_TRACE;
2551 0         0 last;
2552             }
2553 43 50       93 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2554             . $_tok . q{])},
2555             Parse::RecDescent::_tracefirst($text))
2556             if defined $::RD_TRACE;
2557 43         79 push @item, $_tok;
2558 43         87 $item{__ACTION1__}=$_tok;
2559            
2560              
2561              
2562 43 50       108 Parse::RecDescent::_trace(q{>>Matched production: []<<},
2563             Parse::RecDescent::_tracefirst($text),
2564             q{expr14},
2565             $tracelevel)
2566             if defined $::RD_TRACE;
2567 43         58 $_matched = 1;
2568 43         91 last;
2569             }
2570              
2571              
2572 43 50 33     109 unless ( $_matched || defined($score) )
2573             {
2574            
2575              
2576 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2577 0 0       0 Parse::RecDescent::_trace(q{<>},
2578             Parse::RecDescent::_tracefirst($_[1]),
2579             q{expr14},
2580             $tracelevel)
2581             if defined $::RD_TRACE;
2582 0         0 return undef;
2583             }
2584 43 50 33     219 if (!defined($return) && defined($score))
2585             {
2586 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2587             q{expr14},
2588             $tracelevel)
2589             if defined $::RD_TRACE;
2590 0         0 $return = $score_return;
2591             }
2592 43         62 splice @{$thisparser->{errors}}, $err_at;
  43         113  
2593 43 50       180 $return = $item[$#item] unless defined $return;
2594 43 50       100 if (defined $::RD_TRACE)
2595             {
2596 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2597             $return . q{])}, "",
2598             q{expr14},
2599             $tracelevel);
2600 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2601             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2602             Parse::RecDescent::_tracefirst($text),
2603             , q{expr14},
2604             $tracelevel)
2605             }
2606 43         75 $_[1] = $text;
2607 43         420 return $return;
2608             }
2609              
2610             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2611             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr6
2612             {
2613 16     16   34 my $thisparser = $_[0];
2614 4     4   27 use vars q{$tracelevel};
  4         10  
  4         1681  
2615 16   50     72 local $tracelevel = ($tracelevel||0)+1;
2616 16         35 $ERRORS = 0;
2617 16         49 my $thisrule = $thisparser->{"rules"}{"expr6"};
2618            
2619 16 50       42 Parse::RecDescent::_trace(q{Trying rule: [expr6]},
2620             Parse::RecDescent::_tracefirst($_[1]),
2621             q{expr6},
2622             $tracelevel)
2623             if defined $::RD_TRACE;
2624              
2625            
2626 16         46 my $err_at = @{$thisparser->{errors}};
  16         41  
2627              
2628 16         29 my $score;
2629             my $score_return;
2630 0         0 my $_tok;
2631 16         28 my $return = undef;
2632 16         23 my $_matched=0;
2633 16         21 my $commit=0;
2634 16         59 my @item = ();
2635 16         35 my %item = ();
2636 16   33     66 my $repeating = defined($_[2]) && $_[2];
2637 16   33     73 my $_noactions = defined($_[3]) && $_[3];
2638 16 50       47 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  16         23  
  16         40  
2639 16 50       66 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2640 16         22 my $text;
2641 16         27 my $lastsep="";
2642 16         23 my $current_match;
2643 16         69 my $expectation = new Parse::RecDescent::Expectation(q{expr7});
2644 16         148 $expectation->at($_[1]);
2645            
2646 16         70 my $thisline;
2647 16         79 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2648              
2649            
2650              
2651 16   33     190 while (!$_matched && !$commit)
2652             {
2653            
2654 16 50       39 Parse::RecDescent::_trace(q{Trying production: [expr7 '?' expr7 ':' expr6]},
2655             Parse::RecDescent::_tracefirst($_[1]),
2656             q{expr6},
2657             $tracelevel)
2658             if defined $::RD_TRACE;
2659 16         50 my $thisprod = $thisrule->{"prods"}[0];
2660 16         36 $text = $_[1];
2661 16         20 my $_savetext;
2662 16         35 @item = (q{expr6});
2663 16         50 %item = (__RULE__ => q{expr6});
2664 16         31 my $repcount = 0;
2665              
2666              
2667 16 50       44 Parse::RecDescent::_trace(q{Trying subrule: [expr7]},
2668             Parse::RecDescent::_tracefirst($text),
2669             q{expr6},
2670             $tracelevel)
2671             if defined $::RD_TRACE;
2672 4     4   27 if (1) { no strict qw{refs};
  4         20  
  4         1718  
  16         23  
2673 16         58 $expectation->is(q{})->at($text);
2674 16 50   16   220 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr7($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  16         102  
2675             {
2676            
2677 0 0       0 Parse::RecDescent::_trace(q{<>},
2678             Parse::RecDescent::_tracefirst($text),
2679             q{expr6},
2680             $tracelevel)
2681             if defined $::RD_TRACE;
2682 0         0 $expectation->failed();
2683 0         0 last;
2684             }
2685 16 50       95 Parse::RecDescent::_trace(q{>>Matched subrule: [expr7]<< (return value: [}
2686             . $_tok . q{]},
2687            
2688             Parse::RecDescent::_tracefirst($text),
2689             q{expr6},
2690             $tracelevel)
2691             if defined $::RD_TRACE;
2692 16         51 $item{q{expr7}} = $_tok;
2693 16         46 push @item, $_tok;
2694            
2695             }
2696              
2697 16 50       40 Parse::RecDescent::_trace(q{Trying terminal: ['?']},
2698             Parse::RecDescent::_tracefirst($text),
2699             q{expr6},
2700             $tracelevel)
2701             if defined $::RD_TRACE;
2702 16         29 $lastsep = "";
2703 16         62 $expectation->is(q{'?'})->at($text);
2704            
2705              
2706 16 100 33     251 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "?"; 1 } and
  16 100 66     125  
  16   66     28  
  16         152  
2707             substr($text,0,length($_tok)) eq $_tok and
2708 3         9 do { substr($text,0,length($_tok)) = ""; 1; }
  3         12  
2709             )
2710             {
2711            
2712 13         66 $expectation->failed();
2713 13 50       132 Parse::RecDescent::_trace(q{<>},
2714             Parse::RecDescent::_tracefirst($text))
2715             if defined $::RD_TRACE;
2716 13         41 last;
2717             }
2718 3 50       12 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2719             . $_tok . q{])},
2720             Parse::RecDescent::_tracefirst($text))
2721             if defined $::RD_TRACE;
2722 3         11 push @item, $item{__STRING1__}=$_tok;
2723            
2724              
2725 3 50       9 Parse::RecDescent::_trace(q{Trying subrule: [expr7]},
2726             Parse::RecDescent::_tracefirst($text),
2727             q{expr6},
2728             $tracelevel)
2729             if defined $::RD_TRACE;
2730 4     4   24 if (1) { no strict qw{refs};
  4         8  
  4         1648  
  3         5  
2731 3         12 $expectation->is(q{expr7})->at($text);
2732 3 50   3   53 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr7($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  3         15  
2733             {
2734            
2735 0 0       0 Parse::RecDescent::_trace(q{<>},
2736             Parse::RecDescent::_tracefirst($text),
2737             q{expr6},
2738             $tracelevel)
2739             if defined $::RD_TRACE;
2740 0         0 $expectation->failed();
2741 0         0 last;
2742             }
2743 3 50       21 Parse::RecDescent::_trace(q{>>Matched subrule: [expr7]<< (return value: [}
2744             . $_tok . q{]},
2745            
2746             Parse::RecDescent::_tracefirst($text),
2747             q{expr6},
2748             $tracelevel)
2749             if defined $::RD_TRACE;
2750 3         12 $item{q{expr7}} = $_tok;
2751 3         7 push @item, $_tok;
2752            
2753             }
2754              
2755 3 50       10 Parse::RecDescent::_trace(q{Trying terminal: [':']},
2756             Parse::RecDescent::_tracefirst($text),
2757             q{expr6},
2758             $tracelevel)
2759             if defined $::RD_TRACE;
2760 3         6 $lastsep = "";
2761 3         14 $expectation->is(q{':'})->at($text);
2762            
2763              
2764 3 50 33     70 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = ":"; 1 } and
  3 50 33     30  
  3   33     6  
  3         23  
2765             substr($text,0,length($_tok)) eq $_tok and
2766 3         8 do { substr($text,0,length($_tok)) = ""; 1; }
  3         10  
2767             )
2768             {
2769            
2770 0         0 $expectation->failed();
2771 0 0       0 Parse::RecDescent::_trace(q{<>},
2772             Parse::RecDescent::_tracefirst($text))
2773             if defined $::RD_TRACE;
2774 0         0 last;
2775             }
2776 3 50       12 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2777             . $_tok . q{])},
2778             Parse::RecDescent::_tracefirst($text))
2779             if defined $::RD_TRACE;
2780 3         13 push @item, $item{__STRING2__}=$_tok;
2781            
2782              
2783 3 50       10 Parse::RecDescent::_trace(q{Trying subrule: [expr6]},
2784             Parse::RecDescent::_tracefirst($text),
2785             q{expr6},
2786             $tracelevel)
2787             if defined $::RD_TRACE;
2788 4     4   22 if (1) { no strict qw{refs};
  4         8  
  4         6280  
  3         5  
2789 3         12 $expectation->is(q{expr6})->at($text);
2790 3 50   3   60 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr6($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  3         10  
2791             {
2792            
2793 0 0       0 Parse::RecDescent::_trace(q{<>},
2794             Parse::RecDescent::_tracefirst($text),
2795             q{expr6},
2796             $tracelevel)
2797             if defined $::RD_TRACE;
2798 0         0 $expectation->failed();
2799 0         0 last;
2800             }
2801 3 50       20 Parse::RecDescent::_trace(q{>>Matched subrule: [expr6]<< (return value: [}
2802             . $_tok . q{]},
2803            
2804             Parse::RecDescent::_tracefirst($text),
2805             q{expr6},
2806             $tracelevel)
2807             if defined $::RD_TRACE;
2808 3         10 $item{q{expr6}} = $_tok;
2809 3         9 push @item, $_tok;
2810            
2811             }
2812              
2813 3 50       9 Parse::RecDescent::_trace(q{Trying action},
2814             Parse::RecDescent::_tracefirst($text),
2815             q{expr6},
2816             $tracelevel)
2817             if defined $::RD_TRACE;
2818            
2819              
2820 3 100   2   9 $_tok = ($_noactions) ? 0 : do { sub { run($item[1]) ? run($item[3]) : run($item[5]) } };
  3 50       18  
  2         6  
2821 3 50       12 unless (defined $_tok)
2822             {
2823 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
2824             if defined $::RD_TRACE;
2825 0         0 last;
2826             }
2827 3 50       9 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2828             . $_tok . q{])},
2829             Parse::RecDescent::_tracefirst($text))
2830             if defined $::RD_TRACE;
2831 3         8 push @item, $_tok;
2832 3         7 $item{__ACTION1__}=$_tok;
2833            
2834              
2835              
2836 3 50       16 Parse::RecDescent::_trace(q{>>Matched production: [expr7 '?' expr7 ':' expr6]<<},
2837             Parse::RecDescent::_tracefirst($text),
2838             q{expr6},
2839             $tracelevel)
2840             if defined $::RD_TRACE;
2841 3         6 $_matched = 1;
2842 3         9 last;
2843             }
2844              
2845              
2846 16   66     84 while (!$_matched && !$commit)
2847             {
2848            
2849 13 50       38 Parse::RecDescent::_trace(q{Trying production: [expr7]},
2850             Parse::RecDescent::_tracefirst($_[1]),
2851             q{expr6},
2852             $tracelevel)
2853             if defined $::RD_TRACE;
2854 13         44 my $thisprod = $thisrule->{"prods"}[1];
2855 13         26 $text = $_[1];
2856 13         16 my $_savetext;
2857 13         40 @item = (q{expr6});
2858 13         75 %item = (__RULE__ => q{expr6});
2859 13         20 my $repcount = 0;
2860              
2861              
2862 13 50       32 Parse::RecDescent::_trace(q{Trying subrule: [expr7]},
2863             Parse::RecDescent::_tracefirst($text),
2864             q{expr6},
2865             $tracelevel)
2866             if defined $::RD_TRACE;
2867 4     4   37 if (1) { no strict qw{refs};
  4         10  
  4         3311  
  13         43  
2868 13         43 $expectation->is(q{})->at($text);
2869 13 50   13   157 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr7($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  13         38  
2870             {
2871            
2872 0 0       0 Parse::RecDescent::_trace(q{<>},
2873             Parse::RecDescent::_tracefirst($text),
2874             q{expr6},
2875             $tracelevel)
2876             if defined $::RD_TRACE;
2877 0         0 $expectation->failed();
2878 0         0 last;
2879             }
2880 13 50       73 Parse::RecDescent::_trace(q{>>Matched subrule: [expr7]<< (return value: [}
2881             . $_tok . q{]},
2882            
2883             Parse::RecDescent::_tracefirst($text),
2884             q{expr6},
2885             $tracelevel)
2886             if defined $::RD_TRACE;
2887 13         35 $item{q{expr7}} = $_tok;
2888 13         33 push @item, $_tok;
2889            
2890             }
2891              
2892 13 50       36 Parse::RecDescent::_trace(q{Trying action},
2893             Parse::RecDescent::_tracefirst($text),
2894             q{expr6},
2895             $tracelevel)
2896             if defined $::RD_TRACE;
2897            
2898              
2899 13 50       35 $_tok = ($_noactions) ? 0 : do { $item[1] };
  13         36  
2900 13 50       48 unless (defined $_tok)
2901             {
2902 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
2903             if defined $::RD_TRACE;
2904 0         0 last;
2905             }
2906 13 50       37 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2907             . $_tok . q{])},
2908             Parse::RecDescent::_tracefirst($text))
2909             if defined $::RD_TRACE;
2910 13         21 push @item, $_tok;
2911 13         38 $item{__ACTION1__}=$_tok;
2912            
2913              
2914              
2915 13 50       33 Parse::RecDescent::_trace(q{>>Matched production: [expr7]<<},
2916             Parse::RecDescent::_tracefirst($text),
2917             q{expr6},
2918             $tracelevel)
2919             if defined $::RD_TRACE;
2920 13         20 $_matched = 1;
2921 13         26 last;
2922             }
2923              
2924              
2925 16 50 33     54 unless ( $_matched || defined($score) )
2926             {
2927            
2928              
2929 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
2930 0 0       0 Parse::RecDescent::_trace(q{<>},
2931             Parse::RecDescent::_tracefirst($_[1]),
2932             q{expr6},
2933             $tracelevel)
2934             if defined $::RD_TRACE;
2935 0         0 return undef;
2936             }
2937 16 50 33     91 if (!defined($return) && defined($score))
2938             {
2939 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2940             q{expr6},
2941             $tracelevel)
2942             if defined $::RD_TRACE;
2943 0         0 $return = $score_return;
2944             }
2945 16         24 splice @{$thisparser->{errors}}, $err_at;
  16         38  
2946 16 50       50 $return = $item[$#item] unless defined $return;
2947 16 50       47 if (defined $::RD_TRACE)
2948             {
2949 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2950             $return . q{])}, "",
2951             q{expr6},
2952             $tracelevel);
2953 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
2954             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2955             Parse::RecDescent::_tracefirst($text),
2956             , q{expr6},
2957             $tracelevel)
2958             }
2959 16         35 $_[1] = $text;
2960 16         196 return $return;
2961             }
2962              
2963             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2964             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr13op
2965             {
2966 43     43   85 my $thisparser = $_[0];
2967 4     4   29 use vars q{$tracelevel};
  4         10  
  4         4515  
2968 43   50     162 local $tracelevel = ($tracelevel||0)+1;
2969 43         53 $ERRORS = 0;
2970 43         143 my $thisrule = $thisparser->{"rules"}{"expr13op"};
2971            
2972 43 50       117 Parse::RecDescent::_trace(q{Trying rule: [expr13op]},
2973             Parse::RecDescent::_tracefirst($_[1]),
2974             q{expr13op},
2975             $tracelevel)
2976             if defined $::RD_TRACE;
2977              
2978            
2979 43         54 my $err_at = @{$thisparser->{errors}};
  43         101  
2980              
2981 43         78 my $score;
2982             my $score_return;
2983 0         0 my $_tok;
2984 43         57 my $return = undef;
2985 43         59 my $_matched=0;
2986 43         57 my $commit=0;
2987 43         91 my @item = ();
2988 43         76 my %item = ();
2989 43   33     195 my $repeating = defined($_[2]) && $_[2];
2990 43   33     130 my $_noactions = defined($_[3]) && $_[3];
2991 43 50       108 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  43         58  
  43         100  
2992 43 50       160 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2993 43         52 my $text;
2994 43         62 my $lastsep="";
2995 43         50 my $current_match;
2996 43         182 my $expectation = new Parse::RecDescent::Expectation(q{/(<<|>>)/});
2997 43         382 $expectation->at($_[1]);
2998            
2999 43         206 my $thisline;
3000 43         216 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3001              
3002            
3003              
3004 43   33     469 while (!$_matched && !$commit)
3005             {
3006            
3007 43 50       121 Parse::RecDescent::_trace(q{Trying production: [/(<<|>>)/]},
3008             Parse::RecDescent::_tracefirst($_[1]),
3009             q{expr13op},
3010             $tracelevel)
3011             if defined $::RD_TRACE;
3012 43         116 my $thisprod = $thisrule->{"prods"}[0];
3013 43         56 $text = $_[1];
3014 43         63 my $_savetext;
3015 43         84 @item = (q{expr13op});
3016 43         246 %item = (__RULE__ => q{expr13op});
3017 43         53 my $repcount = 0;
3018              
3019              
3020 43 50       93 Parse::RecDescent::_trace(q{Trying terminal: [/(<<|>>)/]}, Parse::RecDescent::_tracefirst($text),
3021             q{expr13op},
3022             $tracelevel)
3023             if defined $::RD_TRACE;
3024 43         77 $lastsep = "";
3025 43         122 $expectation->is(q{})->at($text);
3026            
3027              
3028 43 100 33     509 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(<<|>>))/)
  43 50       428  
3029             {
3030            
3031 43         160 $expectation->failed();
3032 43 50       222 Parse::RecDescent::_trace(q{<>},
3033             Parse::RecDescent::_tracefirst($text))
3034             if defined $::RD_TRACE;
3035              
3036 43         102 last;
3037             }
3038 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3039 0         0 substr($text,0,length($current_match),q{});
3040 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3041             . $current_match . q{])},
3042             Parse::RecDescent::_tracefirst($text))
3043             if defined $::RD_TRACE;
3044 0         0 push @item, $item{__PATTERN1__}=$current_match;
3045            
3046              
3047 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3048             Parse::RecDescent::_tracefirst($text),
3049             q{expr13op},
3050             $tracelevel)
3051             if defined $::RD_TRACE;
3052            
3053              
3054 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[1] };
  0         0  
3055 0 0       0 unless (defined $_tok)
3056             {
3057 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3058             if defined $::RD_TRACE;
3059 0         0 last;
3060             }
3061 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3062             . $_tok . q{])},
3063             Parse::RecDescent::_tracefirst($text))
3064             if defined $::RD_TRACE;
3065 0         0 push @item, $_tok;
3066 0         0 $item{__ACTION1__}=$_tok;
3067            
3068              
3069              
3070 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/(<<|>>)/]<<},
3071             Parse::RecDescent::_tracefirst($text),
3072             q{expr13op},
3073             $tracelevel)
3074             if defined $::RD_TRACE;
3075 0         0 $_matched = 1;
3076 0         0 last;
3077             }
3078              
3079              
3080 43 50 33     197 unless ( $_matched || defined($score) )
3081             {
3082            
3083              
3084 43         82 $_[1] = $text; # NOT SURE THIS IS NEEDED
3085 43 50       107 Parse::RecDescent::_trace(q{<>},
3086             Parse::RecDescent::_tracefirst($_[1]),
3087             q{expr13op},
3088             $tracelevel)
3089             if defined $::RD_TRACE;
3090 43         317 return undef;
3091             }
3092 0 0 0     0 if (!defined($return) && defined($score))
3093             {
3094 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3095             q{expr13op},
3096             $tracelevel)
3097             if defined $::RD_TRACE;
3098 0         0 $return = $score_return;
3099             }
3100 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3101 0 0       0 $return = $item[$#item] unless defined $return;
3102 0 0       0 if (defined $::RD_TRACE)
3103             {
3104 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3105             $return . q{])}, "",
3106             q{expr13op},
3107             $tracelevel);
3108 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3109             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3110             Parse::RecDescent::_tracefirst($text),
3111             , q{expr13op},
3112             $tracelevel)
3113             }
3114 0         0 $_[1] = $text;
3115 0         0 return $return;
3116             }
3117              
3118             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3119             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr8op
3120             {
3121 32     32   55 my $thisparser = $_[0];
3122 4     4   28 use vars q{$tracelevel};
  4         10  
  4         4392  
3123 32   50     126 local $tracelevel = ($tracelevel||0)+1;
3124 32         44 $ERRORS = 0;
3125 32         77 my $thisrule = $thisparser->{"rules"}{"expr8op"};
3126            
3127 32 50       79 Parse::RecDescent::_trace(q{Trying rule: [expr8op]},
3128             Parse::RecDescent::_tracefirst($_[1]),
3129             q{expr8op},
3130             $tracelevel)
3131             if defined $::RD_TRACE;
3132              
3133            
3134 32         38 my $err_at = @{$thisparser->{errors}};
  32         108  
3135              
3136 32         60 my $score;
3137             my $score_return;
3138 0         0 my $_tok;
3139 32         54 my $return = undef;
3140 32         48 my $_matched=0;
3141 32         45 my $commit=0;
3142 32         77 my @item = ();
3143 32         53 my %item = ();
3144 32   33     198 my $repeating = defined($_[2]) && $_[2];
3145 32   33     103 my $_noactions = defined($_[3]) && $_[3];
3146 32 50       95 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         37  
  32         74  
3147 32 50       114 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3148 32         39 my $text;
3149 32         52 my $lastsep="";
3150 32         39 my $current_match;
3151 32         118 my $expectation = new Parse::RecDescent::Expectation(q{'&&'});
3152 32         298 $expectation->at($_[1]);
3153            
3154 32         143 my $thisline;
3155 32         164 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3156              
3157            
3158              
3159 32   33     346 while (!$_matched && !$commit)
3160             {
3161            
3162 32 50       111 Parse::RecDescent::_trace(q{Trying production: ['&&']},
3163             Parse::RecDescent::_tracefirst($_[1]),
3164             q{expr8op},
3165             $tracelevel)
3166             if defined $::RD_TRACE;
3167 32         94 my $thisprod = $thisrule->{"prods"}[0];
3168 32         41 $text = $_[1];
3169 32         42 my $_savetext;
3170 32         65 @item = (q{expr8op});
3171 32         82 %item = (__RULE__ => q{expr8op});
3172 32         59 my $repcount = 0;
3173              
3174              
3175 32 50       72 Parse::RecDescent::_trace(q{Trying terminal: ['&&']},
3176             Parse::RecDescent::_tracefirst($text),
3177             q{expr8op},
3178             $tracelevel)
3179             if defined $::RD_TRACE;
3180 32         55 $lastsep = "";
3181 32         126 $expectation->is(q{})->at($text);
3182            
3183              
3184 32 100 33     394 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "&&"; 1 } and
  32 50 33     239  
  32   33     43  
  32         272  
3185             substr($text,0,length($_tok)) eq $_tok and
3186 0         0 do { substr($text,0,length($_tok)) = ""; 1; }
  0         0  
3187             )
3188             {
3189            
3190 32         126 $expectation->failed();
3191 32 50       161 Parse::RecDescent::_trace(q{<>},
3192             Parse::RecDescent::_tracefirst($text))
3193             if defined $::RD_TRACE;
3194 32         88 last;
3195             }
3196 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3197             . $_tok . q{])},
3198             Parse::RecDescent::_tracefirst($text))
3199             if defined $::RD_TRACE;
3200 0         0 push @item, $item{__STRING1__}=$_tok;
3201            
3202              
3203 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3204             Parse::RecDescent::_tracefirst($text),
3205             q{expr8op},
3206             $tracelevel)
3207             if defined $::RD_TRACE;
3208            
3209              
3210 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[1] };
  0         0  
3211 0 0       0 unless (defined $_tok)
3212             {
3213 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3214             if defined $::RD_TRACE;
3215 0         0 last;
3216             }
3217 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3218             . $_tok . q{])},
3219             Parse::RecDescent::_tracefirst($text))
3220             if defined $::RD_TRACE;
3221 0         0 push @item, $_tok;
3222 0         0 $item{__ACTION1__}=$_tok;
3223            
3224              
3225              
3226 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['&&']<<},
3227             Parse::RecDescent::_tracefirst($text),
3228             q{expr8op},
3229             $tracelevel)
3230             if defined $::RD_TRACE;
3231 0         0 $_matched = 1;
3232 0         0 last;
3233             }
3234              
3235              
3236 32 50 33     161 unless ( $_matched || defined($score) )
3237             {
3238            
3239              
3240 32         64 $_[1] = $text; # NOT SURE THIS IS NEEDED
3241 32 50       73 Parse::RecDescent::_trace(q{<>},
3242             Parse::RecDescent::_tracefirst($_[1]),
3243             q{expr8op},
3244             $tracelevel)
3245             if defined $::RD_TRACE;
3246 32         264 return undef;
3247             }
3248 0 0 0     0 if (!defined($return) && defined($score))
3249             {
3250 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3251             q{expr8op},
3252             $tracelevel)
3253             if defined $::RD_TRACE;
3254 0         0 $return = $score_return;
3255             }
3256 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3257 0 0       0 $return = $item[$#item] unless defined $return;
3258 0 0       0 if (defined $::RD_TRACE)
3259             {
3260 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3261             $return . q{])}, "",
3262             q{expr8op},
3263             $tracelevel);
3264 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3265             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3266             Parse::RecDescent::_tracefirst($text),
3267             , q{expr8op},
3268             $tracelevel)
3269             }
3270 0         0 $_[1] = $text;
3271 0         0 return $return;
3272             }
3273              
3274             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3275             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::macro
3276             {
3277 0     0   0 my $thisparser = $_[0];
3278 4     4   38 use vars q{$tracelevel};
  4         10  
  4         16470  
3279 0   0     0 local $tracelevel = ($tracelevel||0)+1;
3280 0         0 $ERRORS = 0;
3281 0         0 my $thisrule = $thisparser->{"rules"}{"macro"};
3282            
3283 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [macro]},
3284             Parse::RecDescent::_tracefirst($_[1]),
3285             q{macro},
3286             $tracelevel)
3287             if defined $::RD_TRACE;
3288              
3289            
3290 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
3291              
3292 0         0 my $score;
3293             my $score_return;
3294 0         0 my $_tok;
3295 0         0 my $return = undef;
3296 0         0 my $_matched=0;
3297 0         0 my $commit=0;
3298 0         0 my @item = ();
3299 0         0 my %item = ();
3300 0   0     0 my $repeating = defined($_[2]) && $_[2];
3301 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3302 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
3303 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3304 0         0 my $text;
3305 0         0 my $lastsep="";
3306 0         0 my $current_match;
3307 0         0 my $expectation = new Parse::RecDescent::Expectation(q{/] | '[^'<>]*' | "[^"<>]*" )* >/x});
3308 0         0 $expectation->at($_[1]);
3309            
3310 0         0 my $thisline;
3311 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3312              
3313            
3314              
3315 0   0     0 while (!$_matched && !$commit)
3316             {
3317            
3318 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/] | '[^'<>]*' | "[^"<>]*" )* >/x]},
3319             Parse::RecDescent::_tracefirst($_[1]),
3320             q{macro},
3321             $tracelevel)
3322             if defined $::RD_TRACE;
3323 0         0 my $thisprod = $thisrule->{"prods"}[0];
3324 0         0 $text = $_[1];
3325 0         0 my $_savetext;
3326 0         0 @item = (q{macro});
3327 0         0 %item = (__RULE__ => q{macro});
3328 0         0 my $repcount = 0;
3329              
3330              
3331 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/] | '[^'<>]*' | "[^"<>]*" )* >/x]}, Parse::RecDescent::_tracefirst($text),
3332             q{macro},
3333             $tracelevel)
3334             if defined $::RD_TRACE;
3335 0         0 $lastsep = "";
3336 0         0 $expectation->is(q{})->at($text);
3337            
3338              
3339 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:] | '[^'<>]*' | "[^"<>]*" )* >)/x)
  0 0       0  
3340             {
3341            
3342 0         0 $expectation->failed();
3343 0 0       0 Parse::RecDescent::_trace(q{<>},
3344             Parse::RecDescent::_tracefirst($text))
3345             if defined $::RD_TRACE;
3346              
3347 0         0 last;
3348             }
3349 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3350 0         0 substr($text,0,length($current_match),q{});
3351 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3352             . $current_match . q{])},
3353             Parse::RecDescent::_tracefirst($text))
3354             if defined $::RD_TRACE;
3355 0         0 push @item, $item{__PATTERN1__}=$current_match;
3356            
3357              
3358 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3359             Parse::RecDescent::_tracefirst($text),
3360             q{macro},
3361             $tracelevel)
3362             if defined $::RD_TRACE;
3363            
3364              
3365 0 0       0 $_tok = ($_noactions) ? 0 : do {
3366            
3367 0         0 my $buf = HTML::Transmorgify::compile($HTML::Transmorgify::modules, \$item[1]);
3368             $return = sub {
3369 0     0   0 local(@rtmp) = ( '' );
3370 0         0 run($buf, \@rtmp);
3371 0         0 return $rtmp[0];
3372 0         0 };
3373             };
3374 0 0       0 unless (defined $_tok)
3375             {
3376 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3377             if defined $::RD_TRACE;
3378 0         0 last;
3379             }
3380 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3381             . $_tok . q{])},
3382             Parse::RecDescent::_tracefirst($text))
3383             if defined $::RD_TRACE;
3384 0         0 push @item, $_tok;
3385 0         0 $item{__ACTION1__}=$_tok;
3386            
3387              
3388              
3389 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/] | '[^'<>]*' | "[^"<>]*" )* >/x]<<},
3390             Parse::RecDescent::_tracefirst($text),
3391             q{macro},
3392             $tracelevel)
3393             if defined $::RD_TRACE;
3394 0         0 $_matched = 1;
3395 0         0 last;
3396             }
3397              
3398              
3399 0 0 0     0 unless ( $_matched || defined($score) )
3400             {
3401            
3402              
3403 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
3404 0 0       0 Parse::RecDescent::_trace(q{<>},
3405             Parse::RecDescent::_tracefirst($_[1]),
3406             q{macro},
3407             $tracelevel)
3408             if defined $::RD_TRACE;
3409 0         0 return undef;
3410             }
3411 0 0 0     0 if (!defined($return) && defined($score))
3412             {
3413 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3414             q{macro},
3415             $tracelevel)
3416             if defined $::RD_TRACE;
3417 0         0 $return = $score_return;
3418             }
3419 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3420 0 0       0 $return = $item[$#item] unless defined $return;
3421 0 0       0 if (defined $::RD_TRACE)
3422             {
3423 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3424             $return . q{])}, "",
3425             q{macro},
3426             $tracelevel);
3427 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3428             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3429             Parse::RecDescent::_tracefirst($text),
3430             , q{macro},
3431             $tracelevel)
3432             }
3433 0         0 $_[1] = $text;
3434 0         0 return $return;
3435             }
3436              
3437             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3438             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr16op
3439             {
3440 50     50   94 my $thisparser = $_[0];
3441 4     4   61 use vars q{$tracelevel};
  4         10  
  4         4354  
3442 50   50     157 local $tracelevel = ($tracelevel||0)+1;
3443 50         74 $ERRORS = 0;
3444 50         138 my $thisrule = $thisparser->{"rules"}{"expr16op"};
3445            
3446 50 50       112 Parse::RecDescent::_trace(q{Trying rule: [expr16op]},
3447             Parse::RecDescent::_tracefirst($_[1]),
3448             q{expr16op},
3449             $tracelevel)
3450             if defined $::RD_TRACE;
3451              
3452            
3453 50         62 my $err_at = @{$thisparser->{errors}};
  50         125  
3454              
3455 50         81 my $score;
3456             my $score_return;
3457 0         0 my $_tok;
3458 50         58 my $return = undef;
3459 50         61 my $_matched=0;
3460 50         69 my $commit=0;
3461 50         98 my @item = ();
3462 50         76 my %item = ();
3463 50   33     182 my $repeating = defined($_[2]) && $_[2];
3464 50   33     145 my $_noactions = defined($_[3]) && $_[3];
3465 50 50       115 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  50         56  
  50         129  
3466 50 50       138 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3467 50         76 my $text;
3468 50         95 my $lastsep="";
3469 50         60 my $current_match;
3470 50         200 my $expectation = new Parse::RecDescent::Expectation(q{/(=~|\\!~)/});
3471 50         445 $expectation->at($_[1]);
3472            
3473 50         204 my $thisline;
3474 50         263 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3475              
3476            
3477              
3478 50   33     495 while (!$_matched && !$commit)
3479             {
3480            
3481 50 50       111 Parse::RecDescent::_trace(q{Trying production: [/(=~|\\!~)/]},
3482             Parse::RecDescent::_tracefirst($_[1]),
3483             q{expr16op},
3484             $tracelevel)
3485             if defined $::RD_TRACE;
3486 50         137 my $thisprod = $thisrule->{"prods"}[0];
3487 50         82 $text = $_[1];
3488 50         68 my $_savetext;
3489 50         96 @item = (q{expr16op});
3490 50         129 %item = (__RULE__ => q{expr16op});
3491 50         78 my $repcount = 0;
3492              
3493              
3494 50 50       97 Parse::RecDescent::_trace(q{Trying terminal: [/(=~|\\!~)/]}, Parse::RecDescent::_tracefirst($text),
3495             q{expr16op},
3496             $tracelevel)
3497             if defined $::RD_TRACE;
3498 50         69 $lastsep = "";
3499 50         140 $expectation->is(q{})->at($text);
3500            
3501              
3502 50 100 33     583 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(=~|\!~))/)
  50 50       553  
3503             {
3504            
3505 50         164 $expectation->failed();
3506 50 50       240 Parse::RecDescent::_trace(q{<>},
3507             Parse::RecDescent::_tracefirst($text))
3508             if defined $::RD_TRACE;
3509              
3510 50         142 last;
3511             }
3512 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3513 0         0 substr($text,0,length($current_match),q{});
3514 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3515             . $current_match . q{])},
3516             Parse::RecDescent::_tracefirst($text))
3517             if defined $::RD_TRACE;
3518 0         0 push @item, $item{__PATTERN1__}=$current_match;
3519            
3520              
3521 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3522             Parse::RecDescent::_tracefirst($text),
3523             q{expr16op},
3524             $tracelevel)
3525             if defined $::RD_TRACE;
3526            
3527              
3528 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[1] };
  0         0  
3529 0 0       0 unless (defined $_tok)
3530             {
3531 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3532             if defined $::RD_TRACE;
3533 0         0 last;
3534             }
3535 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3536             . $_tok . q{])},
3537             Parse::RecDescent::_tracefirst($text))
3538             if defined $::RD_TRACE;
3539 0         0 push @item, $_tok;
3540 0         0 $item{__ACTION1__}=$_tok;
3541            
3542              
3543              
3544 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/(=~|\\!~)/]<<},
3545             Parse::RecDescent::_tracefirst($text),
3546             q{expr16op},
3547             $tracelevel)
3548             if defined $::RD_TRACE;
3549 0         0 $_matched = 1;
3550 0         0 last;
3551             }
3552              
3553              
3554 50 50 33     237 unless ( $_matched || defined($score) )
3555             {
3556            
3557              
3558 50         83 $_[1] = $text; # NOT SURE THIS IS NEEDED
3559 50 50       103 Parse::RecDescent::_trace(q{<>},
3560             Parse::RecDescent::_tracefirst($_[1]),
3561             q{expr16op},
3562             $tracelevel)
3563             if defined $::RD_TRACE;
3564 50         389 return undef;
3565             }
3566 0 0 0     0 if (!defined($return) && defined($score))
3567             {
3568 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3569             q{expr16op},
3570             $tracelevel)
3571             if defined $::RD_TRACE;
3572 0         0 $return = $score_return;
3573             }
3574 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3575 0 0       0 $return = $item[$#item] unless defined $return;
3576 0 0       0 if (defined $::RD_TRACE)
3577             {
3578 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3579             $return . q{])}, "",
3580             q{expr16op},
3581             $tracelevel);
3582 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3583             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3584             Parse::RecDescent::_tracefirst($text),
3585             , q{expr16op},
3586             $tracelevel)
3587             }
3588 0         0 $_[1] = $text;
3589 0         0 return $return;
3590             }
3591              
3592             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3593             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr10op
3594             {
3595 32     32   58 my $thisparser = $_[0];
3596 4     4   45 use vars q{$tracelevel};
  4         8  
  4         4238  
3597 32   50     119 local $tracelevel = ($tracelevel||0)+1;
3598 32         50 $ERRORS = 0;
3599 32         87 my $thisrule = $thisparser->{"rules"}{"expr10op"};
3600            
3601 32 50       69 Parse::RecDescent::_trace(q{Trying rule: [expr10op]},
3602             Parse::RecDescent::_tracefirst($_[1]),
3603             q{expr10op},
3604             $tracelevel)
3605             if defined $::RD_TRACE;
3606              
3607            
3608 32         47 my $err_at = @{$thisparser->{errors}};
  32         60  
3609              
3610 32         51 my $score;
3611             my $score_return;
3612 0         0 my $_tok;
3613 32         50 my $return = undef;
3614 32         58 my $_matched=0;
3615 32         42 my $commit=0;
3616 32         54 my @item = ();
3617 32         54 my %item = ();
3618 32   33     143 my $repeating = defined($_[2]) && $_[2];
3619 32   33     99 my $_noactions = defined($_[3]) && $_[3];
3620 32 50       105 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         43  
  32         78  
3621 32 50       105 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3622 32         41 my $text;
3623 32         47 my $lastsep="";
3624 32         51 my $current_match;
3625 32         138 my $expectation = new Parse::RecDescent::Expectation(q{/(\\&)/});
3626 32         303 $expectation->at($_[1]);
3627            
3628 32         220 my $thisline;
3629 32         175 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3630              
3631            
3632              
3633 32   33     359 while (!$_matched && !$commit)
3634             {
3635            
3636 32 50       88 Parse::RecDescent::_trace(q{Trying production: [/(\\&)/]},
3637             Parse::RecDescent::_tracefirst($_[1]),
3638             q{expr10op},
3639             $tracelevel)
3640             if defined $::RD_TRACE;
3641 32         96 my $thisprod = $thisrule->{"prods"}[0];
3642 32         60 $text = $_[1];
3643 32         39 my $_savetext;
3644 32         71 @item = (q{expr10op});
3645 32         86 %item = (__RULE__ => q{expr10op});
3646 32         58 my $repcount = 0;
3647              
3648              
3649 32 50       77 Parse::RecDescent::_trace(q{Trying terminal: [/(\\&)/]}, Parse::RecDescent::_tracefirst($text),
3650             q{expr10op},
3651             $tracelevel)
3652             if defined $::RD_TRACE;
3653 32         51 $lastsep = "";
3654 32         109 $expectation->is(q{})->at($text);
3655            
3656              
3657 32 100 33     443 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(\&))/)
  32 50       342  
3658             {
3659            
3660 32         98 $expectation->failed();
3661 32 50       200 Parse::RecDescent::_trace(q{<>},
3662             Parse::RecDescent::_tracefirst($text))
3663             if defined $::RD_TRACE;
3664              
3665 32         85 last;
3666             }
3667 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3668 0         0 substr($text,0,length($current_match),q{});
3669 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3670             . $current_match . q{])},
3671             Parse::RecDescent::_tracefirst($text))
3672             if defined $::RD_TRACE;
3673 0         0 push @item, $item{__PATTERN1__}=$current_match;
3674            
3675              
3676 0 0       0 Parse::RecDescent::_trace(q{Trying action},
3677             Parse::RecDescent::_tracefirst($text),
3678             q{expr10op},
3679             $tracelevel)
3680             if defined $::RD_TRACE;
3681            
3682              
3683 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[1] };
  0         0  
3684 0 0       0 unless (defined $_tok)
3685             {
3686 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3687             if defined $::RD_TRACE;
3688 0         0 last;
3689             }
3690 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3691             . $_tok . q{])},
3692             Parse::RecDescent::_tracefirst($text))
3693             if defined $::RD_TRACE;
3694 0         0 push @item, $_tok;
3695 0         0 $item{__ACTION1__}=$_tok;
3696            
3697              
3698              
3699 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/(\\&)/]<<},
3700             Parse::RecDescent::_tracefirst($text),
3701             q{expr10op},
3702             $tracelevel)
3703             if defined $::RD_TRACE;
3704 0         0 $_matched = 1;
3705 0         0 last;
3706             }
3707              
3708              
3709 32 50 33     162 unless ( $_matched || defined($score) )
3710             {
3711            
3712              
3713 32         60 $_[1] = $text; # NOT SURE THIS IS NEEDED
3714 32 50       85 Parse::RecDescent::_trace(q{<>},
3715             Parse::RecDescent::_tracefirst($_[1]),
3716             q{expr10op},
3717             $tracelevel)
3718             if defined $::RD_TRACE;
3719 32         260 return undef;
3720             }
3721 0 0 0     0 if (!defined($return) && defined($score))
3722             {
3723 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3724             q{expr10op},
3725             $tracelevel)
3726             if defined $::RD_TRACE;
3727 0         0 $return = $score_return;
3728             }
3729 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
3730 0 0       0 $return = $item[$#item] unless defined $return;
3731 0 0       0 if (defined $::RD_TRACE)
3732             {
3733 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3734             $return . q{])}, "",
3735             q{expr10op},
3736             $tracelevel);
3737 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3738             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3739             Parse::RecDescent::_tracefirst($text),
3740             , q{expr10op},
3741             $tracelevel)
3742             }
3743 0         0 $_[1] = $text;
3744 0         0 return $return;
3745             }
3746              
3747             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3748             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr11op
3749             {
3750 40     40   86 my $thisparser = $_[0];
3751 4     4   27 use vars q{$tracelevel};
  4         11  
  4         4295  
3752 40   50     130 local $tracelevel = ($tracelevel||0)+1;
3753 40         66 $ERRORS = 0;
3754 40         110 my $thisrule = $thisparser->{"rules"}{"expr11op"};
3755            
3756 40 50       95 Parse::RecDescent::_trace(q{Trying rule: [expr11op]},
3757             Parse::RecDescent::_tracefirst($_[1]),
3758             q{expr11op},
3759             $tracelevel)
3760             if defined $::RD_TRACE;
3761              
3762            
3763 40         56 my $err_at = @{$thisparser->{errors}};
  40         86  
3764              
3765 40         60 my $score;
3766             my $score_return;
3767 0         0 my $_tok;
3768 40         54 my $return = undef;
3769 40         51 my $_matched=0;
3770 40         57 my $commit=0;
3771 40         74 my @item = ();
3772 40         86 my %item = ();
3773 40   33     146 my $repeating = defined($_[2]) && $_[2];
3774 40   33     121 my $_noactions = defined($_[3]) && $_[3];
3775 40 50       114 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  40         44  
  40         89  
3776 40 50       139 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3777 40         53 my $text;
3778 40         59 my $lastsep="";
3779 40         67 my $current_match;
3780 40         162 my $expectation = new Parse::RecDescent::Expectation(q{/(==|\\!=|<=>|eq|ne|cmp)/});
3781 40         372 $expectation->at($_[1]);
3782            
3783 40         193 my $thisline;
3784 40         203 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3785              
3786            
3787              
3788 40   33     406 while (!$_matched && !$commit)
3789             {
3790            
3791 40 50       89 Parse::RecDescent::_trace(q{Trying production: [/(==|\\!=|<=>|eq|ne|cmp)/]},
3792             Parse::RecDescent::_tracefirst($_[1]),
3793             q{expr11op},
3794             $tracelevel)
3795             if defined $::RD_TRACE;
3796 40         101 my $thisprod = $thisrule->{"prods"}[0];
3797 40         69 $text = $_[1];
3798 40         61 my $_savetext;
3799 40         71 @item = (q{expr11op});
3800 40         101 %item = (__RULE__ => q{expr11op});
3801 40         48 my $repcount = 0;
3802              
3803              
3804 40 50       96 Parse::RecDescent::_trace(q{Trying terminal: [/(==|\\!=|<=>|eq|ne|cmp)/]}, Parse::RecDescent::_tracefirst($text),
3805             q{expr11op},
3806             $tracelevel)
3807             if defined $::RD_TRACE;
3808 40         56 $lastsep = "";
3809 40         113 $expectation->is(q{})->at($text);
3810            
3811              
3812 40 100 66     488 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(==|\!=|<=>|eq|ne|cmp))/)
  40 100       400  
3813             {
3814            
3815 32         98 $expectation->failed();
3816 32 50       157 Parse::RecDescent::_trace(q{<>},
3817             Parse::RecDescent::_tracefirst($text))
3818             if defined $::RD_TRACE;
3819              
3820 32         67 last;
3821             }
3822 8         48 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3823 8         33 substr($text,0,length($current_match),q{});
3824 8 50       24 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3825             . $current_match . q{])},
3826             Parse::RecDescent::_tracefirst($text))
3827             if defined $::RD_TRACE;
3828 8         28 push @item, $item{__PATTERN1__}=$current_match;
3829            
3830              
3831 8 50       17 Parse::RecDescent::_trace(q{Trying action},
3832             Parse::RecDescent::_tracefirst($text),
3833             q{expr11op},
3834             $tracelevel)
3835             if defined $::RD_TRACE;
3836            
3837              
3838 8 50       24 $_tok = ($_noactions) ? 0 : do { $item[1] };
  8         15  
3839 8 50       40 unless (defined $_tok)
3840             {
3841 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
3842             if defined $::RD_TRACE;
3843 0         0 last;
3844             }
3845 8 50       18 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3846             . $_tok . q{])},
3847             Parse::RecDescent::_tracefirst($text))
3848             if defined $::RD_TRACE;
3849 8         17 push @item, $_tok;
3850 8         19 $item{__ACTION1__}=$_tok;
3851            
3852              
3853              
3854 8 50       19 Parse::RecDescent::_trace(q{>>Matched production: [/(==|\\!=|<=>|eq|ne|cmp)/]<<},
3855             Parse::RecDescent::_tracefirst($text),
3856             q{expr11op},
3857             $tracelevel)
3858             if defined $::RD_TRACE;
3859 8         13 $_matched = 1;
3860 8         17 last;
3861             }
3862              
3863              
3864 40 100 66     235 unless ( $_matched || defined($score) )
3865             {
3866            
3867              
3868 32         56 $_[1] = $text; # NOT SURE THIS IS NEEDED
3869 32 50       77 Parse::RecDescent::_trace(q{<>},
3870             Parse::RecDescent::_tracefirst($_[1]),
3871             q{expr11op},
3872             $tracelevel)
3873             if defined $::RD_TRACE;
3874 32         267 return undef;
3875             }
3876 8 50 33     42 if (!defined($return) && defined($score))
3877             {
3878 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3879             q{expr11op},
3880             $tracelevel)
3881             if defined $::RD_TRACE;
3882 0         0 $return = $score_return;
3883             }
3884 8         15 splice @{$thisparser->{errors}}, $err_at;
  8         21  
3885 8 50       28 $return = $item[$#item] unless defined $return;
3886 8 50       20 if (defined $::RD_TRACE)
3887             {
3888 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3889             $return . q{])}, "",
3890             q{expr11op},
3891             $tracelevel);
3892 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
3893             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3894             Parse::RecDescent::_tracefirst($text),
3895             , q{expr11op},
3896             $tracelevel)
3897             }
3898 8         13 $_[1] = $text;
3899 8         67 return $return;
3900             }
3901              
3902             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3903             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::function
3904             {
3905 0     0   0 my $thisparser = $_[0];
3906 4     4   29 use vars q{$tracelevel};
  4         12  
  4         3696  
3907 0   0     0 local $tracelevel = ($tracelevel||0)+1;
3908 0         0 $ERRORS = 0;
3909 0         0 my $thisrule = $thisparser->{"rules"}{"function"};
3910            
3911 0 0       0 Parse::RecDescent::_trace(q{Trying rule: [function]},
3912             Parse::RecDescent::_tracefirst($_[1]),
3913             q{function},
3914             $tracelevel)
3915             if defined $::RD_TRACE;
3916              
3917            
3918 0         0 my $err_at = @{$thisparser->{errors}};
  0         0  
3919              
3920 0         0 my $score;
3921             my $score_return;
3922 0         0 my $_tok;
3923 0         0 my $return = undef;
3924 0         0 my $_matched=0;
3925 0         0 my $commit=0;
3926 0         0 my @item = ();
3927 0         0 my %item = ();
3928 0   0     0 my $repeating = defined($_[2]) && $_[2];
3929 0   0     0 my $_noactions = defined($_[3]) && $_[3];
3930 0 0       0 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0         0  
  0         0  
3931 0 0       0 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3932 0         0 my $text;
3933 0         0 my $lastsep="";
3934 0         0 my $current_match;
3935 0         0 my $expectation = new Parse::RecDescent::Expectation(q{/[A-Za-z_](?:\\w|::(?=[^:]))*/});
3936 0         0 $expectation->at($_[1]);
3937            
3938 0         0 my $thisline;
3939 0         0 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3940              
3941            
3942              
3943 0   0     0 while (!$_matched && !$commit)
3944             {
3945            
3946 0 0       0 Parse::RecDescent::_trace(q{Trying production: [/[A-Za-z_](?:\\w|::(?=[^:]))*/ '(' ')']},
3947             Parse::RecDescent::_tracefirst($_[1]),
3948             q{function},
3949             $tracelevel)
3950             if defined $::RD_TRACE;
3951 0         0 my $thisprod = $thisrule->{"prods"}[0];
3952 0         0 $text = $_[1];
3953 0         0 my $_savetext;
3954 0         0 @item = (q{function});
3955 0         0 %item = (__RULE__ => q{function});
3956 0         0 my $repcount = 0;
3957              
3958              
3959 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/[A-Za-z_](?:\\w|::(?=[^:]))*/]}, Parse::RecDescent::_tracefirst($text),
3960             q{function},
3961             $tracelevel)
3962             if defined $::RD_TRACE;
3963 0         0 $lastsep = "";
3964 0         0 $expectation->is(q{})->at($text);
3965            
3966              
3967 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[A-Za-z_](?:\w|::(?=[^:]))*)/)
  0 0       0  
3968             {
3969            
3970 0         0 $expectation->failed();
3971 0 0       0 Parse::RecDescent::_trace(q{<>},
3972             Parse::RecDescent::_tracefirst($text))
3973             if defined $::RD_TRACE;
3974              
3975 0         0 last;
3976             }
3977 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
3978 0         0 substr($text,0,length($current_match),q{});
3979 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3980             . $current_match . q{])},
3981             Parse::RecDescent::_tracefirst($text))
3982             if defined $::RD_TRACE;
3983 0         0 push @item, $item{__PATTERN1__}=$current_match;
3984            
3985              
3986 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
3987             Parse::RecDescent::_tracefirst($text),
3988             q{function},
3989             $tracelevel)
3990             if defined $::RD_TRACE;
3991 0         0 $lastsep = "";
3992 0         0 $expectation->is(q{'('})->at($text);
3993            
3994              
3995 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\(/)
  0 0       0  
3996             {
3997            
3998 0         0 $expectation->failed();
3999 0 0       0 Parse::RecDescent::_trace(qq{<>},
4000             Parse::RecDescent::_tracefirst($text))
4001             if defined $::RD_TRACE;
4002 0         0 last;
4003             }
4004 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4005 0         0 substr($text,0,length($current_match),q{});
4006 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4007             . $current_match . q{])},
4008             Parse::RecDescent::_tracefirst($text))
4009             if defined $::RD_TRACE;
4010 0         0 push @item, $item{__STRING1__}=$current_match;
4011            
4012              
4013 0 0       0 Parse::RecDescent::_trace(q{Trying operator: []},
4014             Parse::RecDescent::_tracefirst($text),
4015             q{function},
4016             $tracelevel)
4017             if defined $::RD_TRACE;
4018 0         0 $expectation->is(q{})->at($text);
4019              
4020 0         0 $_tok = undef;
4021 0         0 OPLOOP: while (1)
4022             {
4023 0         0 $repcount = 0;
4024 0         0 my @item;
4025            
4026             # MATCH LEFTARG
4027            
4028 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr]},
4029             Parse::RecDescent::_tracefirst($text),
4030             q{function},
4031             $tracelevel)
4032             if defined $::RD_TRACE;
4033 4     4   32 if (1) { no strict qw{refs};
  4         9  
  4         2305  
  0         0  
4034 0         0 $expectation->is(q{expr})->at($text);
4035 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4036             {
4037            
4038 0 0       0 Parse::RecDescent::_trace(q{<>},
4039             Parse::RecDescent::_tracefirst($text),
4040             q{function},
4041             $tracelevel)
4042             if defined $::RD_TRACE;
4043 0         0 $expectation->failed();
4044 0         0 last;
4045             }
4046 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr]<< (return value: [}
4047             . $_tok . q{]},
4048            
4049             Parse::RecDescent::_tracefirst($text),
4050             q{function},
4051             $tracelevel)
4052             if defined $::RD_TRACE;
4053 0         0 $item{q{expr}} = $_tok;
4054 0         0 push @item, $_tok;
4055            
4056             }
4057              
4058              
4059 0         0 $repcount++;
4060              
4061 0         0 my $savetext = $text;
4062 0         0 my $backtrack;
4063              
4064             # MATCH (OP RIGHTARG)(s)
4065 0         0 while ($repcount < 100000000)
4066             {
4067 0         0 $backtrack = 0;
4068            
4069 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
4070             q{function},
4071             $tracelevel)
4072             if defined $::RD_TRACE;
4073 0         0 $lastsep = "";
4074 0         0 $expectation->is(q{/,/})->at($text);
4075            
4076              
4077 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:,)/)
  0 0       0  
4078             {
4079            
4080 0         0 $expectation->failed();
4081 0 0       0 Parse::RecDescent::_trace(q{<>},
4082             Parse::RecDescent::_tracefirst($text))
4083             if defined $::RD_TRACE;
4084              
4085 0         0 last;
4086             }
4087 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4088 0         0 substr($text,0,length($current_match),q{});
4089 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4090             . $current_match . q{])},
4091             Parse::RecDescent::_tracefirst($text))
4092             if defined $::RD_TRACE;
4093 0         0 push @item, $item{__PATTERN2__}=$current_match;
4094            
4095              
4096 0         0 pop @item;
4097 0 0       0 if (defined $1) {push @item, $item{'expr(s)'}=$1; $backtrack=1;}
  0         0  
  0         0  
4098            
4099 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr]},
4100             Parse::RecDescent::_tracefirst($text),
4101             q{function},
4102             $tracelevel)
4103             if defined $::RD_TRACE;
4104 4     4   27 if (1) { no strict qw{refs};
  4         8  
  4         24026  
  0         0  
4105 0         0 $expectation->is(q{expr})->at($text);
4106 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4107             {
4108            
4109 0 0       0 Parse::RecDescent::_trace(q{<>},
4110             Parse::RecDescent::_tracefirst($text),
4111             q{function},
4112             $tracelevel)
4113             if defined $::RD_TRACE;
4114 0         0 $expectation->failed();
4115 0         0 last;
4116             }
4117 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr]<< (return value: [}
4118             . $_tok . q{]},
4119            
4120             Parse::RecDescent::_tracefirst($text),
4121             q{function},
4122             $tracelevel)
4123             if defined $::RD_TRACE;
4124 0         0 $item{q{expr}} = $_tok;
4125 0         0 push @item, $_tok;
4126            
4127             }
4128              
4129 0         0 $savetext = $text;
4130 0         0 $repcount++;
4131             }
4132 0         0 $text = $savetext;
4133 0 0       0 pop @item if $backtrack;
4134              
4135 0 0       0 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
4136 0         0 $_tok = [ @item ];
4137 0         0 last;
4138             }
4139              
4140 0 0       0 unless ($repcount>=1)
4141             {
4142 0 0       0 Parse::RecDescent::_trace(q{<]>>},
4143             Parse::RecDescent::_tracefirst($text),
4144             q{function},
4145             $tracelevel)
4146             if defined $::RD_TRACE;
4147 0         0 $expectation->failed();
4148 0         0 last;
4149             }
4150 0 0       0 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
4151 0 0       0 . qq{@{$_tok||[]}} . q{]},
4152             Parse::RecDescent::_tracefirst($text),
4153             q{function},
4154             $tracelevel)
4155             if defined $::RD_TRACE;
4156              
4157 0   0     0 push @item, $item{'expr(s)'}=$_tok||[];
4158              
4159              
4160 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [')']},
4161             Parse::RecDescent::_tracefirst($text),
4162             q{function},
4163             $tracelevel)
4164             if defined $::RD_TRACE;
4165 0         0 $lastsep = "";
4166 0         0 $expectation->is(q{')'})->at($text);
4167            
4168              
4169 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\)/)
  0 0       0  
4170             {
4171            
4172 0         0 $expectation->failed();
4173 0 0       0 Parse::RecDescent::_trace(qq{<>},
4174             Parse::RecDescent::_tracefirst($text))
4175             if defined $::RD_TRACE;
4176 0         0 last;
4177             }
4178 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4179 0         0 substr($text,0,length($current_match),q{});
4180 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4181             . $current_match . q{])},
4182             Parse::RecDescent::_tracefirst($text))
4183             if defined $::RD_TRACE;
4184 0         0 push @item, $item{__STRING2__}=$current_match;
4185            
4186              
4187 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4188             Parse::RecDescent::_tracefirst($text),
4189             q{function},
4190             $tracelevel)
4191             if defined $::RD_TRACE;
4192            
4193              
4194 0 0       0 $_tok = ($_noactions) ? 0 : do {
4195            
4196 0 0       0 die unless $allowed_funcs->{$item[1]};
4197             $return = sub {
4198 0     0   0 $allowed_funcs->{$item[1]}->( map { run($_) } @item[3..$#item] );
  0         0  
4199 0         0 };
4200             };
4201 0 0       0 unless (defined $_tok)
4202             {
4203 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
4204             if defined $::RD_TRACE;
4205 0         0 last;
4206             }
4207 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4208             . $_tok . q{])},
4209             Parse::RecDescent::_tracefirst($text))
4210             if defined $::RD_TRACE;
4211 0         0 push @item, $_tok;
4212 0         0 $item{__ACTION1__}=$_tok;
4213            
4214              
4215              
4216 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/[A-Za-z_](?:\\w|::(?=[^:]))*/ '(' ')']<<},
4217             Parse::RecDescent::_tracefirst($text),
4218             q{function},
4219             $tracelevel)
4220             if defined $::RD_TRACE;
4221 0         0 $_matched = 1;
4222 0         0 last;
4223             }
4224              
4225              
4226 0 0 0     0 unless ( $_matched || defined($score) )
4227             {
4228            
4229              
4230 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4231 0 0       0 Parse::RecDescent::_trace(q{<>},
4232             Parse::RecDescent::_tracefirst($_[1]),
4233             q{function},
4234             $tracelevel)
4235             if defined $::RD_TRACE;
4236 0         0 return undef;
4237             }
4238 0 0 0     0 if (!defined($return) && defined($score))
4239             {
4240 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4241             q{function},
4242             $tracelevel)
4243             if defined $::RD_TRACE;
4244 0         0 $return = $score_return;
4245             }
4246 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
4247 0 0       0 $return = $item[$#item] unless defined $return;
4248 0 0       0 if (defined $::RD_TRACE)
4249             {
4250 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4251             $return . q{])}, "",
4252             q{function},
4253             $tracelevel);
4254 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4255             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4256             Parse::RecDescent::_tracefirst($text),
4257             , q{function},
4258             $tracelevel)
4259             }
4260 0         0 $_[1] = $text;
4261 0         0 return $return;
4262             }
4263              
4264             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4265             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr7op
4266             {
4267 32     32   71 my $thisparser = $_[0];
4268 4     4   46 use vars q{$tracelevel};
  4         10  
  4         21466  
4269 32   50     97 local $tracelevel = ($tracelevel||0)+1;
4270 32         51 $ERRORS = 0;
4271 32         95 my $thisrule = $thisparser->{"rules"}{"expr7op"};
4272            
4273 32 50       75 Parse::RecDescent::_trace(q{Trying rule: [expr7op]},
4274             Parse::RecDescent::_tracefirst($_[1]),
4275             q{expr7op},
4276             $tracelevel)
4277             if defined $::RD_TRACE;
4278              
4279            
4280 32         30 my $err_at = @{$thisparser->{errors}};
  32         74  
4281              
4282 32         51 my $score;
4283             my $score_return;
4284 0         0 my $_tok;
4285 32         45 my $return = undef;
4286 32         41 my $_matched=0;
4287 32         41 my $commit=0;
4288 32         141 my @item = ();
4289 32         55 my %item = ();
4290 32   33     133 my $repeating = defined($_[2]) && $_[2];
4291 32   33     115 my $_noactions = defined($_[3]) && $_[3];
4292 32 50       69 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         43  
  32         69  
4293 32 50       97 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4294 32         57 my $text;
4295 32         44 my $lastsep="";
4296 32         50 my $current_match;
4297 32         169 my $expectation = new Parse::RecDescent::Expectation(q{'||'});
4298 32         289 $expectation->at($_[1]);
4299            
4300 32         137 my $thisline;
4301 32         164 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4302              
4303            
4304              
4305 32   33     414 while (!$_matched && !$commit)
4306             {
4307            
4308 32 50       87 Parse::RecDescent::_trace(q{Trying production: ['||']},
4309             Parse::RecDescent::_tracefirst($_[1]),
4310             q{expr7op},
4311             $tracelevel)
4312             if defined $::RD_TRACE;
4313 32         98 my $thisprod = $thisrule->{"prods"}[0];
4314 32         54 $text = $_[1];
4315 32         41 my $_savetext;
4316 32         75 @item = (q{expr7op});
4317 32         85 %item = (__RULE__ => q{expr7op});
4318 32         46 my $repcount = 0;
4319              
4320              
4321 32 50       78 Parse::RecDescent::_trace(q{Trying terminal: ['||']},
4322             Parse::RecDescent::_tracefirst($text),
4323             q{expr7op},
4324             $tracelevel)
4325             if defined $::RD_TRACE;
4326 32         55 $lastsep = "";
4327 32         107 $expectation->is(q{})->at($text);
4328            
4329              
4330 32 100 33     393 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "||"; 1 } and
  32 50 33     229  
  32   33     47  
  32         228  
4331             substr($text,0,length($_tok)) eq $_tok and
4332 0         0 do { substr($text,0,length($_tok)) = ""; 1; }
  0         0  
4333             )
4334             {
4335            
4336 32         94 $expectation->failed();
4337 32 50       150 Parse::RecDescent::_trace(q{<>},
4338             Parse::RecDescent::_tracefirst($text))
4339             if defined $::RD_TRACE;
4340 32         73 last;
4341             }
4342 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4343             . $_tok . q{])},
4344             Parse::RecDescent::_tracefirst($text))
4345             if defined $::RD_TRACE;
4346 0         0 push @item, $item{__STRING1__}=$_tok;
4347            
4348              
4349 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4350             Parse::RecDescent::_tracefirst($text),
4351             q{expr7op},
4352             $tracelevel)
4353             if defined $::RD_TRACE;
4354            
4355              
4356 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[1] };
  0         0  
4357 0 0       0 unless (defined $_tok)
4358             {
4359 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
4360             if defined $::RD_TRACE;
4361 0         0 last;
4362             }
4363 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4364             . $_tok . q{])},
4365             Parse::RecDescent::_tracefirst($text))
4366             if defined $::RD_TRACE;
4367 0         0 push @item, $_tok;
4368 0         0 $item{__ACTION1__}=$_tok;
4369            
4370              
4371              
4372 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['||']<<},
4373             Parse::RecDescent::_tracefirst($text),
4374             q{expr7op},
4375             $tracelevel)
4376             if defined $::RD_TRACE;
4377 0         0 $_matched = 1;
4378 0         0 last;
4379             }
4380              
4381              
4382 32 50 33     170 unless ( $_matched || defined($score) )
4383             {
4384            
4385              
4386 32         59 $_[1] = $text; # NOT SURE THIS IS NEEDED
4387 32 50       65 Parse::RecDescent::_trace(q{<>},
4388             Parse::RecDescent::_tracefirst($_[1]),
4389             q{expr7op},
4390             $tracelevel)
4391             if defined $::RD_TRACE;
4392 32         254 return undef;
4393             }
4394 0 0 0     0 if (!defined($return) && defined($score))
4395             {
4396 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4397             q{expr7op},
4398             $tracelevel)
4399             if defined $::RD_TRACE;
4400 0         0 $return = $score_return;
4401             }
4402 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
4403 0 0       0 $return = $item[$#item] unless defined $return;
4404 0 0       0 if (defined $::RD_TRACE)
4405             {
4406 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4407             $return . q{])}, "",
4408             q{expr7op},
4409             $tracelevel);
4410 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4411             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4412             Parse::RecDescent::_tracefirst($text),
4413             , q{expr7op},
4414             $tracelevel)
4415             }
4416 0         0 $_[1] = $text;
4417 0         0 return $return;
4418             }
4419              
4420             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4421             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::term
4422             {
4423 52     52   97 my $thisparser = $_[0];
4424 4     4   39 use vars q{$tracelevel};
  4         9  
  4         3083  
4425 52   50     151 local $tracelevel = ($tracelevel||0)+1;
4426 52         74 $ERRORS = 0;
4427 52         133 my $thisrule = $thisparser->{"rules"}{"term"};
4428            
4429 52 50       134 Parse::RecDescent::_trace(q{Trying rule: [term]},
4430             Parse::RecDescent::_tracefirst($_[1]),
4431             q{term},
4432             $tracelevel)
4433             if defined $::RD_TRACE;
4434              
4435            
4436 52         96 my $err_at = @{$thisparser->{errors}};
  52         114  
4437              
4438 52         74 my $score;
4439             my $score_return;
4440 0         0 my $_tok;
4441 52         67 my $return = undef;
4442 52         63 my $_matched=0;
4443 52         71 my $commit=0;
4444 52         88 my @item = ();
4445 52         107 my %item = ();
4446 52   33     181 my $repeating = defined($_[2]) && $_[2];
4447 52   33     156 my $_noactions = defined($_[3]) && $_[3];
4448 52 50       125 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  52         59  
  52         114  
4449 52 50       148 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4450 52         64 my $text;
4451 52         72 my $lastsep="";
4452 52         52 my $current_match;
4453 52         178 my $expectation = new Parse::RecDescent::Expectation(q{'(', or constant, or macro, or function});
4454 52         482 $expectation->at($_[1]);
4455            
4456 52         241 my $thisline;
4457 52         225 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4458              
4459            
4460              
4461 52   33     603 while (!$_matched && !$commit)
4462             {
4463            
4464 52 50       114 Parse::RecDescent::_trace(q{Trying production: ['(' expr ')']},
4465             Parse::RecDescent::_tracefirst($_[1]),
4466             q{term},
4467             $tracelevel)
4468             if defined $::RD_TRACE;
4469 52         139 my $thisprod = $thisrule->{"prods"}[0];
4470 52         87 $text = $_[1];
4471 52         57 my $_savetext;
4472 52         96 @item = (q{term});
4473 52         135 %item = (__RULE__ => q{term});
4474 52         103 my $repcount = 0;
4475              
4476              
4477 52 50       109 Parse::RecDescent::_trace(q{Trying terminal: ['(']},
4478             Parse::RecDescent::_tracefirst($text),
4479             q{term},
4480             $tracelevel)
4481             if defined $::RD_TRACE;
4482 52         76 $lastsep = "";
4483 52         177 $expectation->is(q{})->at($text);
4484            
4485              
4486 52 100 66     671 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\(/)
  52 100       574  
4487             {
4488            
4489 50         148 $expectation->failed();
4490 50 50       268 Parse::RecDescent::_trace(qq{<>},
4491             Parse::RecDescent::_tracefirst($text))
4492             if defined $::RD_TRACE;
4493 50         111 last;
4494             }
4495 2         19 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4496 2         10 substr($text,0,length($current_match),q{});
4497 2 50       7 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4498             . $current_match . q{])},
4499             Parse::RecDescent::_tracefirst($text))
4500             if defined $::RD_TRACE;
4501 2         8 push @item, $item{__STRING1__}=$current_match;
4502            
4503              
4504 2 50       6 Parse::RecDescent::_trace(q{Trying subrule: [expr]},
4505             Parse::RecDescent::_tracefirst($text),
4506             q{term},
4507             $tracelevel)
4508             if defined $::RD_TRACE;
4509 4     4   29 if (1) { no strict qw{refs};
  4         21  
  4         3610  
  2         3  
4510 2         9 $expectation->is(q{expr})->at($text);
4511 2 50   2   54 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  2         6  
4512             {
4513            
4514 0 0       0 Parse::RecDescent::_trace(q{<>},
4515             Parse::RecDescent::_tracefirst($text),
4516             q{term},
4517             $tracelevel)
4518             if defined $::RD_TRACE;
4519 0         0 $expectation->failed();
4520 0         0 last;
4521             }
4522 2 50       13 Parse::RecDescent::_trace(q{>>Matched subrule: [expr]<< (return value: [}
4523             . $_tok . q{]},
4524            
4525             Parse::RecDescent::_tracefirst($text),
4526             q{term},
4527             $tracelevel)
4528             if defined $::RD_TRACE;
4529 2         6 $item{q{expr}} = $_tok;
4530 2         4 push @item, $_tok;
4531            
4532             }
4533              
4534 2 50       7 Parse::RecDescent::_trace(q{Trying terminal: [')']},
4535             Parse::RecDescent::_tracefirst($text),
4536             q{term},
4537             $tracelevel)
4538             if defined $::RD_TRACE;
4539 2         5 $lastsep = "";
4540 2         11 $expectation->is(q{')'})->at($text);
4541            
4542              
4543 2 50 33     43 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\)/)
  2 50       27  
4544             {
4545            
4546 0         0 $expectation->failed();
4547 0 0       0 Parse::RecDescent::_trace(qq{<>},
4548             Parse::RecDescent::_tracefirst($text))
4549             if defined $::RD_TRACE;
4550 0         0 last;
4551             }
4552 2         16 $current_match = substr($text, $-[0], $+[0] - $-[0]);
4553 2         9 substr($text,0,length($current_match),q{});
4554 2 50       6 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4555             . $current_match . q{])},
4556             Parse::RecDescent::_tracefirst($text))
4557             if defined $::RD_TRACE;
4558 2         10 push @item, $item{__STRING2__}=$current_match;
4559            
4560              
4561 2 50       4 Parse::RecDescent::_trace(q{Trying action},
4562             Parse::RecDescent::_tracefirst($text),
4563             q{term},
4564             $tracelevel)
4565             if defined $::RD_TRACE;
4566            
4567              
4568 2 50       6 $_tok = ($_noactions) ? 0 : do { $return = $item[2] };
  2         4  
4569 2 50       6 unless (defined $_tok)
4570             {
4571 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
4572             if defined $::RD_TRACE;
4573 0         0 last;
4574             }
4575 2 50       6 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4576             . $_tok . q{])},
4577             Parse::RecDescent::_tracefirst($text))
4578             if defined $::RD_TRACE;
4579 2         3 push @item, $_tok;
4580 2         4 $item{__ACTION1__}=$_tok;
4581            
4582              
4583              
4584 2 50       5 Parse::RecDescent::_trace(q{>>Matched production: ['(' expr ')']<<},
4585             Parse::RecDescent::_tracefirst($text),
4586             q{term},
4587             $tracelevel)
4588             if defined $::RD_TRACE;
4589 2         19 $_matched = 1;
4590 2         6 last;
4591             }
4592              
4593              
4594 52   66     227 while (!$_matched && !$commit)
4595             {
4596            
4597 50 50       118 Parse::RecDescent::_trace(q{Trying production: [constant]},
4598             Parse::RecDescent::_tracefirst($_[1]),
4599             q{term},
4600             $tracelevel)
4601             if defined $::RD_TRACE;
4602 50         110 my $thisprod = $thisrule->{"prods"}[1];
4603 50         74 $text = $_[1];
4604 50         52 my $_savetext;
4605 50         129 @item = (q{term});
4606 50         111 %item = (__RULE__ => q{term});
4607 50         75 my $repcount = 0;
4608              
4609              
4610 50 50       115 Parse::RecDescent::_trace(q{Trying subrule: [constant]},
4611             Parse::RecDescent::_tracefirst($text),
4612             q{term},
4613             $tracelevel)
4614             if defined $::RD_TRACE;
4615 4     4   261 if (1) { no strict qw{refs};
  4         19  
  4         3591  
  50         48  
4616 50         164 $expectation->is(q{})->at($text);
4617 50 50   50   581 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  50         128  
4618             {
4619            
4620 0 0       0 Parse::RecDescent::_trace(q{<>},
4621             Parse::RecDescent::_tracefirst($text),
4622             q{term},
4623             $tracelevel)
4624             if defined $::RD_TRACE;
4625 0         0 $expectation->failed();
4626 0         0 last;
4627             }
4628 50 50       233 Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
4629             . $_tok . q{]},
4630            
4631             Parse::RecDescent::_tracefirst($text),
4632             q{term},
4633             $tracelevel)
4634             if defined $::RD_TRACE;
4635 50         107 $item{q{constant}} = $_tok;
4636 50         100 push @item, $_tok;
4637            
4638             }
4639              
4640 50 50       117 Parse::RecDescent::_trace(q{Trying action},
4641             Parse::RecDescent::_tracefirst($text),
4642             q{term},
4643             $tracelevel)
4644             if defined $::RD_TRACE;
4645            
4646              
4647 50 50       96 $_tok = ($_noactions) ? 0 : do { $return = $item[1] };
  50         119  
4648 50 50       120 unless (defined $_tok)
4649             {
4650 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
4651             if defined $::RD_TRACE;
4652 0         0 last;
4653             }
4654 50 50       99 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4655             . $_tok . q{])},
4656             Parse::RecDescent::_tracefirst($text))
4657             if defined $::RD_TRACE;
4658 50         82 push @item, $_tok;
4659 50         95 $item{__ACTION1__}=$_tok;
4660            
4661              
4662              
4663 50 50       95 Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
4664             Parse::RecDescent::_tracefirst($text),
4665             q{term},
4666             $tracelevel)
4667             if defined $::RD_TRACE;
4668 50         66 $_matched = 1;
4669 50         99 last;
4670             }
4671              
4672              
4673 52   33     180 while (!$_matched && !$commit)
4674             {
4675            
4676 0 0       0 Parse::RecDescent::_trace(q{Trying production: [macro]},
4677             Parse::RecDescent::_tracefirst($_[1]),
4678             q{term},
4679             $tracelevel)
4680             if defined $::RD_TRACE;
4681 0         0 my $thisprod = $thisrule->{"prods"}[2];
4682 0         0 $text = $_[1];
4683 0         0 my $_savetext;
4684 0         0 @item = (q{term});
4685 0         0 %item = (__RULE__ => q{term});
4686 0         0 my $repcount = 0;
4687              
4688              
4689 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [macro]},
4690             Parse::RecDescent::_tracefirst($text),
4691             q{term},
4692             $tracelevel)
4693             if defined $::RD_TRACE;
4694 4     4   28 if (1) { no strict qw{refs};
  4         12  
  4         4063  
  0         0  
4695 0         0 $expectation->is(q{})->at($text);
4696 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::macro($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4697             {
4698            
4699 0 0       0 Parse::RecDescent::_trace(q{<>},
4700             Parse::RecDescent::_tracefirst($text),
4701             q{term},
4702             $tracelevel)
4703             if defined $::RD_TRACE;
4704 0         0 $expectation->failed();
4705 0         0 last;
4706             }
4707 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [macro]<< (return value: [}
4708             . $_tok . q{]},
4709            
4710             Parse::RecDescent::_tracefirst($text),
4711             q{term},
4712             $tracelevel)
4713             if defined $::RD_TRACE;
4714 0         0 $item{q{macro}} = $_tok;
4715 0         0 push @item, $_tok;
4716            
4717             }
4718              
4719 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4720             Parse::RecDescent::_tracefirst($text),
4721             q{term},
4722             $tracelevel)
4723             if defined $::RD_TRACE;
4724            
4725              
4726 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = $item[1] };
  0         0  
4727 0 0       0 unless (defined $_tok)
4728             {
4729 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
4730             if defined $::RD_TRACE;
4731 0         0 last;
4732             }
4733 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4734             . $_tok . q{])},
4735             Parse::RecDescent::_tracefirst($text))
4736             if defined $::RD_TRACE;
4737 0         0 push @item, $_tok;
4738 0         0 $item{__ACTION1__}=$_tok;
4739            
4740              
4741              
4742 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [macro]<<},
4743             Parse::RecDescent::_tracefirst($text),
4744             q{term},
4745             $tracelevel)
4746             if defined $::RD_TRACE;
4747 0         0 $_matched = 1;
4748 0         0 last;
4749             }
4750              
4751              
4752 52   33     154 while (!$_matched && !$commit)
4753             {
4754            
4755 0 0       0 Parse::RecDescent::_trace(q{Trying production: [function]},
4756             Parse::RecDescent::_tracefirst($_[1]),
4757             q{term},
4758             $tracelevel)
4759             if defined $::RD_TRACE;
4760 0         0 my $thisprod = $thisrule->{"prods"}[3];
4761 0         0 $text = $_[1];
4762 0         0 my $_savetext;
4763 0         0 @item = (q{term});
4764 0         0 %item = (__RULE__ => q{term});
4765 0         0 my $repcount = 0;
4766              
4767              
4768 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [function]},
4769             Parse::RecDescent::_tracefirst($text),
4770             q{term},
4771             $tracelevel)
4772             if defined $::RD_TRACE;
4773 4     4   30 if (1) { no strict qw{refs};
  4         10  
  4         4048  
  0         0  
4774 0         0 $expectation->is(q{})->at($text);
4775 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
4776             {
4777            
4778 0 0       0 Parse::RecDescent::_trace(q{<>},
4779             Parse::RecDescent::_tracefirst($text),
4780             q{term},
4781             $tracelevel)
4782             if defined $::RD_TRACE;
4783 0         0 $expectation->failed();
4784 0         0 last;
4785             }
4786 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
4787             . $_tok . q{]},
4788            
4789             Parse::RecDescent::_tracefirst($text),
4790             q{term},
4791             $tracelevel)
4792             if defined $::RD_TRACE;
4793 0         0 $item{q{function}} = $_tok;
4794 0         0 push @item, $_tok;
4795            
4796             }
4797              
4798 0 0       0 Parse::RecDescent::_trace(q{Trying action},
4799             Parse::RecDescent::_tracefirst($text),
4800             q{term},
4801             $tracelevel)
4802             if defined $::RD_TRACE;
4803            
4804              
4805 0 0       0 $_tok = ($_noactions) ? 0 : do { $return = $item[1] };
  0         0  
4806 0 0       0 unless (defined $_tok)
4807             {
4808 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
4809             if defined $::RD_TRACE;
4810 0         0 last;
4811             }
4812 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4813             . $_tok . q{])},
4814             Parse::RecDescent::_tracefirst($text))
4815             if defined $::RD_TRACE;
4816 0         0 push @item, $_tok;
4817 0         0 $item{__ACTION1__}=$_tok;
4818            
4819              
4820              
4821 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
4822             Parse::RecDescent::_tracefirst($text),
4823             q{term},
4824             $tracelevel)
4825             if defined $::RD_TRACE;
4826 0         0 $_matched = 1;
4827 0         0 last;
4828             }
4829              
4830              
4831 52 50 33     133 unless ( $_matched || defined($score) )
4832             {
4833            
4834              
4835 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
4836 0 0       0 Parse::RecDescent::_trace(q{<>},
4837             Parse::RecDescent::_tracefirst($_[1]),
4838             q{term},
4839             $tracelevel)
4840             if defined $::RD_TRACE;
4841 0         0 return undef;
4842             }
4843 52 50 33     174 if (!defined($return) && defined($score))
4844             {
4845 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4846             q{term},
4847             $tracelevel)
4848             if defined $::RD_TRACE;
4849 0         0 $return = $score_return;
4850             }
4851 52         73 splice @{$thisparser->{errors}}, $err_at;
  52         133  
4852 52 50       134 $return = $item[$#item] unless defined $return;
4853 52 50       122 if (defined $::RD_TRACE)
4854             {
4855 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4856             $return . q{])}, "",
4857             q{term},
4858             $tracelevel);
4859 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
4860             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4861             Parse::RecDescent::_tracefirst($text),
4862             , q{term},
4863             $tracelevel)
4864             }
4865 52         86 $_[1] = $text;
4866 52         461 return $return;
4867             }
4868              
4869             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4870             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr13
4871             {
4872 43     43   80 my $thisparser = $_[0];
4873 4     4   31 use vars q{$tracelevel};
  4         9  
  4         2331  
4874 43   50     134 local $tracelevel = ($tracelevel||0)+1;
4875 43         68 $ERRORS = 0;
4876 43         100 my $thisrule = $thisparser->{"rules"}{"expr13"};
4877            
4878 43 50       101 Parse::RecDescent::_trace(q{Trying rule: [expr13]},
4879             Parse::RecDescent::_tracefirst($_[1]),
4880             q{expr13},
4881             $tracelevel)
4882             if defined $::RD_TRACE;
4883              
4884            
4885 43         45 my $err_at = @{$thisparser->{errors}};
  43         94  
4886              
4887 43         64 my $score;
4888             my $score_return;
4889 0         0 my $_tok;
4890 43         52 my $return = undef;
4891 43         63 my $_matched=0;
4892 43         55 my $commit=0;
4893 43         71 my @item = ();
4894 43         65 my %item = ();
4895 43   33     160 my $repeating = defined($_[2]) && $_[2];
4896 43   33     138 my $_noactions = defined($_[3]) && $_[3];
4897 43 50       106 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  43         75  
  43         262  
4898 43 50       122 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4899 43         58 my $text;
4900 43         55 my $lastsep="";
4901 43         66 my $current_match;
4902 43         150 my $expectation = new Parse::RecDescent::Expectation(q{});
4903 43         379 $expectation->at($_[1]);
4904            
4905 43         187 my $thisline;
4906 43         189 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4907              
4908            
4909              
4910 43   33     3834 while (!$_matched && !$commit)
4911             {
4912            
4913 43 50       106 Parse::RecDescent::_trace(q{Trying production: []},
4914             Parse::RecDescent::_tracefirst($_[1]),
4915             q{expr13},
4916             $tracelevel)
4917             if defined $::RD_TRACE;
4918 43         133 my $thisprod = $thisrule->{"prods"}[0];
4919 43         70 $text = $_[1];
4920 43         51 my $_savetext;
4921 43         85 @item = (q{expr13});
4922 43         275 %item = (__RULE__ => q{expr13});
4923 43         73 my $repcount = 0;
4924              
4925              
4926 43 50       102 Parse::RecDescent::_trace(q{Trying operator: []},
4927             Parse::RecDescent::_tracefirst($text),
4928             q{expr13},
4929             $tracelevel)
4930             if defined $::RD_TRACE;
4931 43         321 $expectation->is(q{})->at($text);
4932              
4933 43         471 $_tok = undef;
4934 43         58 OPLOOP: while (1)
4935             {
4936 43         52 $repcount = 0;
4937 43         51 my @item;
4938            
4939             # MATCH LEFTARG
4940            
4941 43 50       317 Parse::RecDescent::_trace(q{Trying subrule: [expr14]},
4942             Parse::RecDescent::_tracefirst($text),
4943             q{expr13},
4944             $tracelevel)
4945             if defined $::RD_TRACE;
4946 4     4   24 if (1) { no strict qw{refs};
  4         10  
  4         1530  
  43         52  
4947 43         142 $expectation->is(q{expr14})->at($text);
4948 43 50   43   1022 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr14($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  43         98  
4949             {
4950            
4951 0 0       0 Parse::RecDescent::_trace(q{<>},
4952             Parse::RecDescent::_tracefirst($text),
4953             q{expr13},
4954             $tracelevel)
4955             if defined $::RD_TRACE;
4956 0         0 $expectation->failed();
4957 0         0 last;
4958             }
4959 43 50       204 Parse::RecDescent::_trace(q{>>Matched subrule: [expr14]<< (return value: [}
4960             . $_tok . q{]},
4961            
4962             Parse::RecDescent::_tracefirst($text),
4963             q{expr13},
4964             $tracelevel)
4965             if defined $::RD_TRACE;
4966 43         112 $item{q{expr14}} = $_tok;
4967 43         82 push @item, $_tok;
4968            
4969             }
4970              
4971              
4972 43         62 $repcount++;
4973              
4974 43         66 my $savetext = $text;
4975 43         63 my $backtrack;
4976              
4977             # MATCH (OP RIGHTARG)(s)
4978 43         145 while ($repcount < 100000000)
4979             {
4980 43         53 $backtrack = 0;
4981            
4982 43 50       106 Parse::RecDescent::_trace(q{Trying subrule: [expr13op]},
4983             Parse::RecDescent::_tracefirst($text),
4984             q{expr13},
4985             $tracelevel)
4986             if defined $::RD_TRACE;
4987 4     4   27 if (1) { no strict qw{refs};
  4         9  
  4         1135  
  43         49  
4988 43         152 $expectation->is(q{expr13op})->at($text);
4989 43 50   43   548 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr13op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  43         107  
4990             {
4991            
4992 43 50       122 Parse::RecDescent::_trace(q{<>},
4993             Parse::RecDescent::_tracefirst($text),
4994             q{expr13},
4995             $tracelevel)
4996             if defined $::RD_TRACE;
4997 43         134 $expectation->failed();
4998 43         383 last;
4999             }
5000 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr13op]<< (return value: [}
5001             . $_tok . q{]},
5002            
5003             Parse::RecDescent::_tracefirst($text),
5004             q{expr13},
5005             $tracelevel)
5006             if defined $::RD_TRACE;
5007 0         0 $item{q{expr13op}} = $_tok;
5008 0         0 push @item, $_tok;
5009            
5010             }
5011              
5012 0         0 $backtrack=1;
5013            
5014            
5015 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr14]},
5016             Parse::RecDescent::_tracefirst($text),
5017             q{expr13},
5018             $tracelevel)
5019             if defined $::RD_TRACE;
5020 4     4   31 if (1) { no strict qw{refs};
  4         12  
  4         3791  
  0         0  
5021 0         0 $expectation->is(q{expr14})->at($text);
5022 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr14($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
5023             {
5024            
5025 0 0       0 Parse::RecDescent::_trace(q{<>},
5026             Parse::RecDescent::_tracefirst($text),
5027             q{expr13},
5028             $tracelevel)
5029             if defined $::RD_TRACE;
5030 0         0 $expectation->failed();
5031 0         0 last;
5032             }
5033 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr14]<< (return value: [}
5034             . $_tok . q{]},
5035            
5036             Parse::RecDescent::_tracefirst($text),
5037             q{expr13},
5038             $tracelevel)
5039             if defined $::RD_TRACE;
5040 0         0 $item{q{expr14}} = $_tok;
5041 0         0 push @item, $_tok;
5042            
5043             }
5044              
5045 0         0 $savetext = $text;
5046 0         0 $repcount++;
5047             }
5048 43         145 $text = $savetext;
5049 43 50       98 pop @item if $backtrack;
5050              
5051 43 50       118 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
5052 43         92 $_tok = [ @item ];
5053 43         84 last;
5054             }
5055              
5056 43 50       123 unless ($repcount>=1)
5057             {
5058 0 0       0 Parse::RecDescent::_trace(q{<]>>},
5059             Parse::RecDescent::_tracefirst($text),
5060             q{expr13},
5061             $tracelevel)
5062             if defined $::RD_TRACE;
5063 0         0 $expectation->failed();
5064 0         0 last;
5065             }
5066 43 50       86 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
5067 0 0       0 . qq{@{$_tok||[]}} . q{]},
5068             Parse::RecDescent::_tracefirst($text),
5069             q{expr13},
5070             $tracelevel)
5071             if defined $::RD_TRACE;
5072              
5073 43   50     156 push @item, $item{__DIRECTIVE1__}=$_tok||[];
5074              
5075              
5076 43 50       95 Parse::RecDescent::_trace(q{Trying action},
5077             Parse::RecDescent::_tracefirst($text),
5078             q{expr13},
5079             $tracelevel)
5080             if defined $::RD_TRACE;
5081            
5082              
5083 43 50       87 $_tok = ($_noactions) ? 0 : do { left(@item) };
  43         92  
5084 43 50       123 unless (defined $_tok)
5085             {
5086 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
5087             if defined $::RD_TRACE;
5088 0         0 last;
5089             }
5090 43 50       109 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5091             . $_tok . q{])},
5092             Parse::RecDescent::_tracefirst($text))
5093             if defined $::RD_TRACE;
5094 43         81 push @item, $_tok;
5095 43         95 $item{__ACTION1__}=$_tok;
5096            
5097              
5098              
5099 43 50       128 Parse::RecDescent::_trace(q{>>Matched production: []<<},
5100             Parse::RecDescent::_tracefirst($text),
5101             q{expr13},
5102             $tracelevel)
5103             if defined $::RD_TRACE;
5104 43         50 $_matched = 1;
5105 43         74 last;
5106             }
5107              
5108              
5109 43 50 33     101 unless ( $_matched || defined($score) )
5110             {
5111            
5112              
5113 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5114 0 0       0 Parse::RecDescent::_trace(q{<>},
5115             Parse::RecDescent::_tracefirst($_[1]),
5116             q{expr13},
5117             $tracelevel)
5118             if defined $::RD_TRACE;
5119 0         0 return undef;
5120             }
5121 43 50 33     230 if (!defined($return) && defined($score))
5122             {
5123 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5124             q{expr13},
5125             $tracelevel)
5126             if defined $::RD_TRACE;
5127 0         0 $return = $score_return;
5128             }
5129 43         63 splice @{$thisparser->{errors}}, $err_at;
  43         106  
5130 43 50       139 $return = $item[$#item] unless defined $return;
5131 43 50       105 if (defined $::RD_TRACE)
5132             {
5133 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5134             $return . q{])}, "",
5135             q{expr13},
5136             $tracelevel);
5137 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5138             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5139             Parse::RecDescent::_tracefirst($text),
5140             , q{expr13},
5141             $tracelevel)
5142             }
5143 43         77 $_[1] = $text;
5144 43         474 return $return;
5145             }
5146              
5147             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5148             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr17op
5149             {
5150 52     52   115 my $thisparser = $_[0];
5151 4     4   28 use vars q{$tracelevel};
  4         10  
  4         8824  
5152 52   50     174 local $tracelevel = ($tracelevel||0)+1;
5153 52         70 $ERRORS = 0;
5154 52         123 my $thisrule = $thisparser->{"rules"}{"expr17op"};
5155            
5156 52 50       132 Parse::RecDescent::_trace(q{Trying rule: [expr17op]},
5157             Parse::RecDescent::_tracefirst($_[1]),
5158             q{expr17op},
5159             $tracelevel)
5160             if defined $::RD_TRACE;
5161              
5162            
5163 52         84 my $err_at = @{$thisparser->{errors}};
  52         118  
5164              
5165 52         85 my $score;
5166             my $score_return;
5167 0         0 my $_tok;
5168 52         75 my $return = undef;
5169 52         125 my $_matched=0;
5170 52         57 my $commit=0;
5171 52         90 my @item = ();
5172 52         80 my %item = ();
5173 52   33     200 my $repeating = defined($_[2]) && $_[2];
5174 52   33     155 my $_noactions = defined($_[3]) && $_[3];
5175 52 50       124 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  52         63  
  52         104  
5176 52 50       147 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5177 52         74 my $text;
5178 52         69 my $lastsep="";
5179 52         55 my $current_match;
5180 52         212 my $expectation = new Parse::RecDescent::Expectation(q{/(\\*\\*)/});
5181 52         479 $expectation->at($_[1]);
5182            
5183 52         221 my $thisline;
5184 52         248 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5185              
5186            
5187              
5188 52   33     547 while (!$_matched && !$commit)
5189             {
5190            
5191 52 50       121 Parse::RecDescent::_trace(q{Trying production: [/(\\*\\*)/]},
5192             Parse::RecDescent::_tracefirst($_[1]),
5193             q{expr17op},
5194             $tracelevel)
5195             if defined $::RD_TRACE;
5196 52         144 my $thisprod = $thisrule->{"prods"}[0];
5197 52         91 $text = $_[1];
5198 52         73 my $_savetext;
5199 52         108 @item = (q{expr17op});
5200 52         122 %item = (__RULE__ => q{expr17op});
5201 52         65 my $repcount = 0;
5202              
5203              
5204 52 50       183 Parse::RecDescent::_trace(q{Trying terminal: [/(\\*\\*)/]}, Parse::RecDescent::_tracefirst($text),
5205             q{expr17op},
5206             $tracelevel)
5207             if defined $::RD_TRACE;
5208 52         95 $lastsep = "";
5209 52         162 $expectation->is(q{})->at($text);
5210            
5211              
5212 52 100 66     636 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(\*\*))/)
  52 100       540  
5213             {
5214            
5215 50         148 $expectation->failed();
5216 50 50       264 Parse::RecDescent::_trace(q{<>},
5217             Parse::RecDescent::_tracefirst($text))
5218             if defined $::RD_TRACE;
5219              
5220 50         138 last;
5221             }
5222 2         11 $current_match = substr($text, $-[0], $+[0] - $-[0]);
5223 2         7 substr($text,0,length($current_match),q{});
5224 2 50       7 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5225             . $current_match . q{])},
5226             Parse::RecDescent::_tracefirst($text))
5227             if defined $::RD_TRACE;
5228 2         6 push @item, $item{__PATTERN1__}=$current_match;
5229            
5230              
5231 2 50       5 Parse::RecDescent::_trace(q{Trying action},
5232             Parse::RecDescent::_tracefirst($text),
5233             q{expr17op},
5234             $tracelevel)
5235             if defined $::RD_TRACE;
5236            
5237              
5238 2 50       5 $_tok = ($_noactions) ? 0 : do { $item[1] };
  2         4  
5239 2 50       8 unless (defined $_tok)
5240             {
5241 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
5242             if defined $::RD_TRACE;
5243 0         0 last;
5244             }
5245 2 50       4 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5246             . $_tok . q{])},
5247             Parse::RecDescent::_tracefirst($text))
5248             if defined $::RD_TRACE;
5249 2         3 push @item, $_tok;
5250 2         5 $item{__ACTION1__}=$_tok;
5251            
5252              
5253              
5254 2 50       15 Parse::RecDescent::_trace(q{>>Matched production: [/(\\*\\*)/]<<},
5255             Parse::RecDescent::_tracefirst($text),
5256             q{expr17op},
5257             $tracelevel)
5258             if defined $::RD_TRACE;
5259 2         2 $_matched = 1;
5260 2         5 last;
5261             }
5262              
5263              
5264 52 100 66     242 unless ( $_matched || defined($score) )
5265             {
5266            
5267              
5268 50         99 $_[1] = $text; # NOT SURE THIS IS NEEDED
5269 50 50       99 Parse::RecDescent::_trace(q{<>},
5270             Parse::RecDescent::_tracefirst($_[1]),
5271             q{expr17op},
5272             $tracelevel)
5273             if defined $::RD_TRACE;
5274 50         402 return undef;
5275             }
5276 2 50 33     17 if (!defined($return) && defined($score))
5277             {
5278 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5279             q{expr17op},
5280             $tracelevel)
5281             if defined $::RD_TRACE;
5282 0         0 $return = $score_return;
5283             }
5284 2         3 splice @{$thisparser->{errors}}, $err_at;
  2         6  
5285 2 50       7 $return = $item[$#item] unless defined $return;
5286 2 50       6 if (defined $::RD_TRACE)
5287             {
5288 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5289             $return . q{])}, "",
5290             q{expr17op},
5291             $tracelevel);
5292 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5293             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5294             Parse::RecDescent::_tracefirst($text),
5295             , q{expr17op},
5296             $tracelevel)
5297             }
5298 2         5 $_[1] = $text;
5299 2         16 return $return;
5300             }
5301              
5302             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5303             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr17
5304             {
5305 50     50   113 my $thisparser = $_[0];
5306 4     4   33 use vars q{$tracelevel};
  4         8  
  4         2323  
5307 50   50     136 local $tracelevel = ($tracelevel||0)+1;
5308 50         65 $ERRORS = 0;
5309 50         116 my $thisrule = $thisparser->{"rules"}{"expr17"};
5310            
5311 50 50       127 Parse::RecDescent::_trace(q{Trying rule: [expr17]},
5312             Parse::RecDescent::_tracefirst($_[1]),
5313             q{expr17},
5314             $tracelevel)
5315             if defined $::RD_TRACE;
5316              
5317            
5318 50         50 my $err_at = @{$thisparser->{errors}};
  50         116  
5319              
5320 50         86 my $score;
5321             my $score_return;
5322 0         0 my $_tok;
5323 50         63 my $return = undef;
5324 50         48 my $_matched=0;
5325 50         77 my $commit=0;
5326 50         92 my @item = ();
5327 50         78 my %item = ();
5328 50   33     177 my $repeating = defined($_[2]) && $_[2];
5329 50   33     148 my $_noactions = defined($_[3]) && $_[3];
5330 50 50       114 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  50         56  
  50         91  
5331 50 50       153 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5332 50         58 my $text;
5333 50         82 my $lastsep="";
5334 50         54 my $current_match;
5335 50         177 my $expectation = new Parse::RecDescent::Expectation(q{});
5336 50         423 $expectation->at($_[1]);
5337            
5338 50         214 my $thisline;
5339 50         222 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5340              
5341            
5342              
5343 50   33     560 while (!$_matched && !$commit)
5344             {
5345            
5346 50 50       128 Parse::RecDescent::_trace(q{Trying production: []},
5347             Parse::RecDescent::_tracefirst($_[1]),
5348             q{expr17},
5349             $tracelevel)
5350             if defined $::RD_TRACE;
5351 50         129 my $thisprod = $thisrule->{"prods"}[0];
5352 50         92 $text = $_[1];
5353 50         69 my $_savetext;
5354 50         97 @item = (q{expr17});
5355 50         160 %item = (__RULE__ => q{expr17});
5356 50         64 my $repcount = 0;
5357              
5358              
5359 50 50       116 Parse::RecDescent::_trace(q{Trying operator: []},
5360             Parse::RecDescent::_tracefirst($text),
5361             q{expr17},
5362             $tracelevel)
5363             if defined $::RD_TRACE;
5364 50         178 $expectation->is(q{})->at($text);
5365              
5366 50         327 $_tok = undef;
5367 50         66 OPLOOP: while (1)
5368             {
5369 50         71 $repcount = 0;
5370 50         51 my @item;
5371            
5372             # MATCH LEFTARG
5373            
5374 50 50       116 Parse::RecDescent::_trace(q{Trying subrule: [term]},
5375             Parse::RecDescent::_tracefirst($text),
5376             q{expr17},
5377             $tracelevel)
5378             if defined $::RD_TRACE;
5379 4     4   25 if (1) { no strict qw{refs};
  4         9  
  4         1017  
  50         64  
5380 50         140 $expectation->is(q{term})->at($text);
5381 50 50   50   583 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::term($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  50         137  
5382             {
5383            
5384 0 0       0 Parse::RecDescent::_trace(q{<>},
5385             Parse::RecDescent::_tracefirst($text),
5386             q{expr17},
5387             $tracelevel)
5388             if defined $::RD_TRACE;
5389 0         0 $expectation->failed();
5390 0         0 last;
5391             }
5392 50 50       202 Parse::RecDescent::_trace(q{>>Matched subrule: [term]<< (return value: [}
5393             . $_tok . q{]},
5394            
5395             Parse::RecDescent::_tracefirst($text),
5396             q{expr17},
5397             $tracelevel)
5398             if defined $::RD_TRACE;
5399 50         137 $item{q{term}} = $_tok;
5400 50         82 push @item, $_tok;
5401            
5402             }
5403              
5404              
5405 50         74 $repcount++;
5406              
5407 50         78 my $savetext = $text;
5408 50         61 my $backtrack;
5409              
5410             # MATCH (OP RIGHTARG)(s)
5411 50         129 while ($repcount < 100000000)
5412             {
5413 52         70 $backtrack = 0;
5414            
5415 52 50       100 Parse::RecDescent::_trace(q{Trying subrule: [expr17op]},
5416             Parse::RecDescent::_tracefirst($text),
5417             q{expr17},
5418             $tracelevel)
5419             if defined $::RD_TRACE;
5420 4     4   22 if (1) { no strict qw{refs};
  4         10  
  4         812  
  52         69  
5421 52         186 $expectation->is(q{expr17op})->at($text);
5422 52 100   52   651 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr17op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  52         118  
5423             {
5424            
5425 50 50       120 Parse::RecDescent::_trace(q{<>},
5426             Parse::RecDescent::_tracefirst($text),
5427             q{expr17},
5428             $tracelevel)
5429             if defined $::RD_TRACE;
5430 50         152 $expectation->failed();
5431 50         460 last;
5432             }
5433 2 50       8 Parse::RecDescent::_trace(q{>>Matched subrule: [expr17op]<< (return value: [}
5434             . $_tok . q{]},
5435            
5436             Parse::RecDescent::_tracefirst($text),
5437             q{expr17},
5438             $tracelevel)
5439             if defined $::RD_TRACE;
5440 2         16 $item{q{expr17op}} = $_tok;
5441 2         4 push @item, $_tok;
5442            
5443             }
5444              
5445 2         3 $backtrack=1;
5446            
5447            
5448 2 50       6 Parse::RecDescent::_trace(q{Trying subrule: [term]},
5449             Parse::RecDescent::_tracefirst($text),
5450             q{expr17},
5451             $tracelevel)
5452             if defined $::RD_TRACE;
5453 4     4   24 if (1) { no strict qw{refs};
  4         8  
  4         3539  
  2         3  
5454 2         8 $expectation->is(q{term})->at($text);
5455 2 50   2   22 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::term($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  2         5  
5456             {
5457            
5458 0 0       0 Parse::RecDescent::_trace(q{<>},
5459             Parse::RecDescent::_tracefirst($text),
5460             q{expr17},
5461             $tracelevel)
5462             if defined $::RD_TRACE;
5463 0         0 $expectation->failed();
5464 0         0 last;
5465             }
5466 2 50       11 Parse::RecDescent::_trace(q{>>Matched subrule: [term]<< (return value: [}
5467             . $_tok . q{]},
5468            
5469             Parse::RecDescent::_tracefirst($text),
5470             q{expr17},
5471             $tracelevel)
5472             if defined $::RD_TRACE;
5473 2         6 $item{q{term}} = $_tok;
5474 2         5 push @item, $_tok;
5475            
5476             }
5477              
5478 2         4 $savetext = $text;
5479 2         6 $repcount++;
5480             }
5481 50         158 $text = $savetext;
5482 50 50       113 pop @item if $backtrack;
5483              
5484 50 50       109 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
5485 50         139 $_tok = [ @item ];
5486 50         116 last;
5487             }
5488              
5489 50 50       127 unless ($repcount>=1)
5490             {
5491 0 0       0 Parse::RecDescent::_trace(q{<]>>},
5492             Parse::RecDescent::_tracefirst($text),
5493             q{expr17},
5494             $tracelevel)
5495             if defined $::RD_TRACE;
5496 0         0 $expectation->failed();
5497 0         0 last;
5498             }
5499 50 50       141 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
5500 0 0       0 . qq{@{$_tok||[]}} . q{]},
5501             Parse::RecDescent::_tracefirst($text),
5502             q{expr17},
5503             $tracelevel)
5504             if defined $::RD_TRACE;
5505              
5506 50   50     237 push @item, $item{__DIRECTIVE1__}=$_tok||[];
5507              
5508              
5509 50 50       106 Parse::RecDescent::_trace(q{Trying action},
5510             Parse::RecDescent::_tracefirst($text),
5511             q{expr17},
5512             $tracelevel)
5513             if defined $::RD_TRACE;
5514            
5515              
5516 50 50       113 $_tok = ($_noactions) ? 0 : do { left(@item) };
  50         140  
5517 50 50       155 unless (defined $_tok)
5518             {
5519 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
5520             if defined $::RD_TRACE;
5521 0         0 last;
5522             }
5523 50 50       121 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5524             . $_tok . q{])},
5525             Parse::RecDescent::_tracefirst($text))
5526             if defined $::RD_TRACE;
5527 50         97 push @item, $_tok;
5528 50         110 $item{__ACTION1__}=$_tok;
5529            
5530              
5531              
5532 50 50       93 Parse::RecDescent::_trace(q{>>Matched production: []<<},
5533             Parse::RecDescent::_tracefirst($text),
5534             q{expr17},
5535             $tracelevel)
5536             if defined $::RD_TRACE;
5537 50         54 $_matched = 1;
5538 50         111 last;
5539             }
5540              
5541              
5542 50 50 33     124 unless ( $_matched || defined($score) )
5543             {
5544            
5545              
5546 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5547 0 0       0 Parse::RecDescent::_trace(q{<>},
5548             Parse::RecDescent::_tracefirst($_[1]),
5549             q{expr17},
5550             $tracelevel)
5551             if defined $::RD_TRACE;
5552 0         0 return undef;
5553             }
5554 50 50 33     249 if (!defined($return) && defined($score))
5555             {
5556 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5557             q{expr17},
5558             $tracelevel)
5559             if defined $::RD_TRACE;
5560 0         0 $return = $score_return;
5561             }
5562 50         67 splice @{$thisparser->{errors}}, $err_at;
  50         118  
5563 50 50       160 $return = $item[$#item] unless defined $return;
5564 50 50       112 if (defined $::RD_TRACE)
5565             {
5566 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5567             $return . q{])}, "",
5568             q{expr17},
5569             $tracelevel);
5570 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5571             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5572             Parse::RecDescent::_tracefirst($text),
5573             , q{expr17},
5574             $tracelevel)
5575             }
5576 50         81 $_[1] = $text;
5577 50         441 return $return;
5578             }
5579              
5580             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5581             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr
5582             {
5583 13     13   32 my $thisparser = $_[0];
5584 4     4   27 use vars q{$tracelevel};
  4         10  
  4         1869  
5585 13   50     58 local $tracelevel = ($tracelevel||0)+1;
5586 13         31 $ERRORS = 0;
5587 13         38 my $thisrule = $thisparser->{"rules"}{"expr"};
5588            
5589 13 50       42 Parse::RecDescent::_trace(q{Trying rule: [expr]},
5590             Parse::RecDescent::_tracefirst($_[1]),
5591             q{expr},
5592             $tracelevel)
5593             if defined $::RD_TRACE;
5594              
5595            
5596 13         23 my $err_at = @{$thisparser->{errors}};
  13         32  
5597              
5598 13         19 my $score;
5599             my $score_return;
5600 0         0 my $_tok;
5601 13         19 my $return = undef;
5602 13         18 my $_matched=0;
5603 13         18 my $commit=0;
5604 13         22 my @item = ();
5605 13         27 my %item = ();
5606 13   33     60 my $repeating = defined($_[2]) && $_[2];
5607 13   33     58 my $_noactions = defined($_[3]) && $_[3];
5608 13 50       43 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  13         21  
  13         34  
5609 13 50       41 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5610 13         16 my $text;
5611 13         31 my $lastsep="";
5612 13         16 my $current_match;
5613 13         48 my $expectation = new Parse::RecDescent::Expectation(q{});
5614 13         115 $expectation->at($_[1]);
5615            
5616 13         59 my $thisline;
5617 13         58 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5618              
5619            
5620              
5621 13   33     155 while (!$_matched && !$commit)
5622             {
5623            
5624 13 50       46 Parse::RecDescent::_trace(q{Trying production: []},
5625             Parse::RecDescent::_tracefirst($_[1]),
5626             q{expr},
5627             $tracelevel)
5628             if defined $::RD_TRACE;
5629 13         39 my $thisprod = $thisrule->{"prods"}[0];
5630 13         26 $text = $_[1];
5631 13         19 my $_savetext;
5632 13         38 @item = (q{expr});
5633 13         33 %item = (__RULE__ => q{expr});
5634 13         21 my $repcount = 0;
5635              
5636              
5637 13 50       35 Parse::RecDescent::_trace(q{Trying operator: []},
5638             Parse::RecDescent::_tracefirst($text),
5639             q{expr},
5640             $tracelevel)
5641             if defined $::RD_TRACE;
5642 13         45 $expectation->is(q{})->at($text);
5643              
5644 13         91 $_tok = undef;
5645 13         19 OPLOOP: while (1)
5646             {
5647 13         19 $repcount = 0;
5648 13         17 my @item;
5649            
5650             # MATCH LEFTARG
5651            
5652 13 50       36 Parse::RecDescent::_trace(q{Trying subrule: [expr2]},
5653             Parse::RecDescent::_tracefirst($text),
5654             q{expr},
5655             $tracelevel)
5656             if defined $::RD_TRACE;
5657 4     4   29 if (1) { no strict qw{refs};
  4         9  
  4         1078  
  13         16  
5658 13         49 $expectation->is(q{expr2})->at($text);
5659 13 50   13   178 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  13         35  
5660             {
5661            
5662 0 0       0 Parse::RecDescent::_trace(q{<>},
5663             Parse::RecDescent::_tracefirst($text),
5664             q{expr},
5665             $tracelevel)
5666             if defined $::RD_TRACE;
5667 0         0 $expectation->failed();
5668 0         0 last;
5669             }
5670 13 50       78 Parse::RecDescent::_trace(q{>>Matched subrule: [expr2]<< (return value: [}
5671             . $_tok . q{]},
5672            
5673             Parse::RecDescent::_tracefirst($text),
5674             q{expr},
5675             $tracelevel)
5676             if defined $::RD_TRACE;
5677 13         39 $item{q{expr2}} = $_tok;
5678 13         32 push @item, $_tok;
5679            
5680             }
5681              
5682              
5683 13         20 $repcount++;
5684              
5685 13         22 my $savetext = $text;
5686 13         25 my $backtrack;
5687              
5688             # MATCH (OP RIGHTARG)(s)
5689 13         33 while ($repcount < 100000000)
5690             {
5691 13         19 $backtrack = 0;
5692            
5693 13 50       30 Parse::RecDescent::_trace(q{Trying subrule: [expr_op]},
5694             Parse::RecDescent::_tracefirst($text),
5695             q{expr},
5696             $tracelevel)
5697             if defined $::RD_TRACE;
5698 4     4   24 if (1) { no strict qw{refs};
  4         7  
  4         859  
  13         19  
5699 13         54 $expectation->is(q{expr_op})->at($text);
5700 13 50   13   179 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr_op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  13         33  
5701             {
5702            
5703 13 50       34 Parse::RecDescent::_trace(q{<>},
5704             Parse::RecDescent::_tracefirst($text),
5705             q{expr},
5706             $tracelevel)
5707             if defined $::RD_TRACE;
5708 13         50 $expectation->failed();
5709 13         122 last;
5710             }
5711 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr_op]<< (return value: [}
5712             . $_tok . q{]},
5713            
5714             Parse::RecDescent::_tracefirst($text),
5715             q{expr},
5716             $tracelevel)
5717             if defined $::RD_TRACE;
5718 0         0 $item{q{expr_op}} = $_tok;
5719 0         0 push @item, $_tok;
5720            
5721             }
5722              
5723 0         0 $backtrack=1;
5724            
5725            
5726 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr2]},
5727             Parse::RecDescent::_tracefirst($text),
5728             q{expr},
5729             $tracelevel)
5730             if defined $::RD_TRACE;
5731 4     4   32 if (1) { no strict qw{refs};
  4         9  
  4         3586  
  0         0  
5732 0         0 $expectation->is(q{expr2})->at($text);
5733 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
5734             {
5735            
5736 0 0       0 Parse::RecDescent::_trace(q{<>},
5737             Parse::RecDescent::_tracefirst($text),
5738             q{expr},
5739             $tracelevel)
5740             if defined $::RD_TRACE;
5741 0         0 $expectation->failed();
5742 0         0 last;
5743             }
5744 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr2]<< (return value: [}
5745             . $_tok . q{]},
5746            
5747             Parse::RecDescent::_tracefirst($text),
5748             q{expr},
5749             $tracelevel)
5750             if defined $::RD_TRACE;
5751 0         0 $item{q{expr2}} = $_tok;
5752 0         0 push @item, $_tok;
5753            
5754             }
5755              
5756 0         0 $savetext = $text;
5757 0         0 $repcount++;
5758             }
5759 13         43 $text = $savetext;
5760 13 50       33 pop @item if $backtrack;
5761              
5762 13 50       30 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
5763 13         34 $_tok = [ @item ];
5764 13         26 last;
5765             }
5766              
5767 13 50       40 unless ($repcount>=1)
5768             {
5769 0 0       0 Parse::RecDescent::_trace(q{<]>>},
5770             Parse::RecDescent::_tracefirst($text),
5771             q{expr},
5772             $tracelevel)
5773             if defined $::RD_TRACE;
5774 0         0 $expectation->failed();
5775 0         0 last;
5776             }
5777 13 50       26 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
5778 0 0       0 . qq{@{$_tok||[]}} . q{]},
5779             Parse::RecDescent::_tracefirst($text),
5780             q{expr},
5781             $tracelevel)
5782             if defined $::RD_TRACE;
5783              
5784 13   50     47 push @item, $item{__DIRECTIVE1__}=$_tok||[];
5785              
5786              
5787 13 50       30 Parse::RecDescent::_trace(q{Trying action},
5788             Parse::RecDescent::_tracefirst($text),
5789             q{expr},
5790             $tracelevel)
5791             if defined $::RD_TRACE;
5792            
5793              
5794 13 50       25 $_tok = ($_noactions) ? 0 : do { left(@item) };
  13         35  
5795 13 50       34 unless (defined $_tok)
5796             {
5797 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
5798             if defined $::RD_TRACE;
5799 0         0 last;
5800             }
5801 13 50       31 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5802             . $_tok . q{])},
5803             Parse::RecDescent::_tracefirst($text))
5804             if defined $::RD_TRACE;
5805 13         26 push @item, $_tok;
5806 13         28 $item{__ACTION1__}=$_tok;
5807            
5808              
5809              
5810 13 50       25 Parse::RecDescent::_trace(q{>>Matched production: []<<},
5811             Parse::RecDescent::_tracefirst($text),
5812             q{expr},
5813             $tracelevel)
5814             if defined $::RD_TRACE;
5815 13         17 $_matched = 1;
5816 13         25 last;
5817             }
5818              
5819              
5820 13 50 33     33 unless ( $_matched || defined($score) )
5821             {
5822            
5823              
5824 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
5825 0 0       0 Parse::RecDescent::_trace(q{<>},
5826             Parse::RecDescent::_tracefirst($_[1]),
5827             q{expr},
5828             $tracelevel)
5829             if defined $::RD_TRACE;
5830 0         0 return undef;
5831             }
5832 13 50 33     65 if (!defined($return) && defined($score))
5833             {
5834 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5835             q{expr},
5836             $tracelevel)
5837             if defined $::RD_TRACE;
5838 0         0 $return = $score_return;
5839             }
5840 13         24 splice @{$thisparser->{errors}}, $err_at;
  13         38  
5841 13 50       39 $return = $item[$#item] unless defined $return;
5842 13 50       28 if (defined $::RD_TRACE)
5843             {
5844 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5845             $return . q{])}, "",
5846             q{expr},
5847             $tracelevel);
5848 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
5849             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5850             Parse::RecDescent::_tracefirst($text),
5851             , q{expr},
5852             $tracelevel)
5853             }
5854 13         26 $_[1] = $text;
5855 13         160 return $return;
5856             }
5857              
5858             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5859             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr12
5860             {
5861 40     40   72 my $thisparser = $_[0];
5862 4     4   27 use vars q{$tracelevel};
  4         7  
  4         2391  
5863 40   50     142 local $tracelevel = ($tracelevel||0)+1;
5864 40         62 $ERRORS = 0;
5865 40         96 my $thisrule = $thisparser->{"rules"}{"expr12"};
5866            
5867 40 50       116 Parse::RecDescent::_trace(q{Trying rule: [expr12]},
5868             Parse::RecDescent::_tracefirst($_[1]),
5869             q{expr12},
5870             $tracelevel)
5871             if defined $::RD_TRACE;
5872              
5873            
5874 40         54 my $err_at = @{$thisparser->{errors}};
  40         81  
5875              
5876 40         54 my $score;
5877             my $score_return;
5878 0         0 my $_tok;
5879 40         60 my $return = undef;
5880 40         44 my $_matched=0;
5881 40         43 my $commit=0;
5882 40         81 my @item = ();
5883 40         54 my %item = ();
5884 40   33     144 my $repeating = defined($_[2]) && $_[2];
5885 40   33     124 my $_noactions = defined($_[3]) && $_[3];
5886 40 50       110 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  40         62  
  40         83  
5887 40 50       124 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5888 40         46 my $text;
5889 40         57 my $lastsep="";
5890 40         53 my $current_match;
5891 40         162 my $expectation = new Parse::RecDescent::Expectation(q{});
5892 40         341 $expectation->at($_[1]);
5893            
5894 40         171 my $thisline;
5895 40         184 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5896              
5897            
5898              
5899 40   33     408 while (!$_matched && !$commit)
5900             {
5901            
5902 40 50       88 Parse::RecDescent::_trace(q{Trying production: []},
5903             Parse::RecDescent::_tracefirst($_[1]),
5904             q{expr12},
5905             $tracelevel)
5906             if defined $::RD_TRACE;
5907 40         98 my $thisprod = $thisrule->{"prods"}[0];
5908 40         62 $text = $_[1];
5909 40         52 my $_savetext;
5910 40         74 @item = (q{expr12});
5911 40         92 %item = (__RULE__ => q{expr12});
5912 40         70 my $repcount = 0;
5913              
5914              
5915 40 50       82 Parse::RecDescent::_trace(q{Trying operator: []},
5916             Parse::RecDescent::_tracefirst($text),
5917             q{expr12},
5918             $tracelevel)
5919             if defined $::RD_TRACE;
5920 40         351 $expectation->is(q{})->at($text);
5921              
5922 40         260 $_tok = undef;
5923 40         46 OPLOOP: while (1)
5924             {
5925 40         58 $repcount = 0;
5926 40         53 my @item;
5927            
5928             # MATCH LEFTARG
5929            
5930 40 50       87 Parse::RecDescent::_trace(q{Trying subrule: [expr13]},
5931             Parse::RecDescent::_tracefirst($text),
5932             q{expr12},
5933             $tracelevel)
5934             if defined $::RD_TRACE;
5935 4     4   25 if (1) { no strict qw{refs};
  4         8  
  4         1122  
  40         58  
5936 40         115 $expectation->is(q{expr13})->at($text);
5937 40 50   40   456 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr13($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  40         105  
5938             {
5939            
5940 0 0       0 Parse::RecDescent::_trace(q{<>},
5941             Parse::RecDescent::_tracefirst($text),
5942             q{expr12},
5943             $tracelevel)
5944             if defined $::RD_TRACE;
5945 0         0 $expectation->failed();
5946 0         0 last;
5947             }
5948 40 50       176 Parse::RecDescent::_trace(q{>>Matched subrule: [expr13]<< (return value: [}
5949             . $_tok . q{]},
5950            
5951             Parse::RecDescent::_tracefirst($text),
5952             q{expr12},
5953             $tracelevel)
5954             if defined $::RD_TRACE;
5955 40         104 $item{q{expr13}} = $_tok;
5956 40         76 push @item, $_tok;
5957            
5958             }
5959              
5960              
5961 40         54 $repcount++;
5962              
5963 40         66 my $savetext = $text;
5964 40         55 my $backtrack;
5965              
5966             # MATCH (OP RIGHTARG)(s)
5967 40         108 while ($repcount < 100000000)
5968             {
5969 43         57 $backtrack = 0;
5970            
5971 43 50       105 Parse::RecDescent::_trace(q{Trying subrule: [expr12op]},
5972             Parse::RecDescent::_tracefirst($text),
5973             q{expr12},
5974             $tracelevel)
5975             if defined $::RD_TRACE;
5976 4     4   22 if (1) { no strict qw{refs};
  4         8  
  4         825  
  43         49  
5977 43         145 $expectation->is(q{expr12op})->at($text);
5978 43 100   43   548 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr12op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  43         103  
5979             {
5980            
5981 40 50       102 Parse::RecDescent::_trace(q{<>},
5982             Parse::RecDescent::_tracefirst($text),
5983             q{expr12},
5984             $tracelevel)
5985             if defined $::RD_TRACE;
5986 40         130 $expectation->failed();
5987 40         352 last;
5988             }
5989 3 50       19 Parse::RecDescent::_trace(q{>>Matched subrule: [expr12op]<< (return value: [}
5990             . $_tok . q{]},
5991            
5992             Parse::RecDescent::_tracefirst($text),
5993             q{expr12},
5994             $tracelevel)
5995             if defined $::RD_TRACE;
5996 3         15 $item{q{expr12op}} = $_tok;
5997 3         6 push @item, $_tok;
5998            
5999             }
6000              
6001 3         5 $backtrack=1;
6002            
6003            
6004 3 50       8 Parse::RecDescent::_trace(q{Trying subrule: [expr13]},
6005             Parse::RecDescent::_tracefirst($text),
6006             q{expr12},
6007             $tracelevel)
6008             if defined $::RD_TRACE;
6009 4     4   21 if (1) { no strict qw{refs};
  4         9  
  4         3391  
  3         6  
6010 3         12 $expectation->is(q{expr13})->at($text);
6011 3 50   3   35 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr13($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  3         7  
6012             {
6013            
6014 0 0       0 Parse::RecDescent::_trace(q{<>},
6015             Parse::RecDescent::_tracefirst($text),
6016             q{expr12},
6017             $tracelevel)
6018             if defined $::RD_TRACE;
6019 0         0 $expectation->failed();
6020 0         0 last;
6021             }
6022 3 50       1019 Parse::RecDescent::_trace(q{>>Matched subrule: [expr13]<< (return value: [}
6023             . $_tok . q{]},
6024            
6025             Parse::RecDescent::_tracefirst($text),
6026             q{expr12},
6027             $tracelevel)
6028             if defined $::RD_TRACE;
6029 3         10 $item{q{expr13}} = $_tok;
6030 3         7 push @item, $_tok;
6031            
6032             }
6033              
6034 3         6 $savetext = $text;
6035 3         10 $repcount++;
6036             }
6037 40         149 $text = $savetext;
6038 40 50       122 pop @item if $backtrack;
6039              
6040 40 50       107 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
6041 40         133 $_tok = [ @item ];
6042 40         91 last;
6043             }
6044              
6045 40 50       97 unless ($repcount>=1)
6046             {
6047 0 0       0 Parse::RecDescent::_trace(q{<]>>},
6048             Parse::RecDescent::_tracefirst($text),
6049             q{expr12},
6050             $tracelevel)
6051             if defined $::RD_TRACE;
6052 0         0 $expectation->failed();
6053 0         0 last;
6054             }
6055 40 50       106 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
6056 0 0       0 . qq{@{$_tok||[]}} . q{]},
6057             Parse::RecDescent::_tracefirst($text),
6058             q{expr12},
6059             $tracelevel)
6060             if defined $::RD_TRACE;
6061              
6062 40   50     144 push @item, $item{__DIRECTIVE1__}=$_tok||[];
6063              
6064              
6065 40 50       84 Parse::RecDescent::_trace(q{Trying action},
6066             Parse::RecDescent::_tracefirst($text),
6067             q{expr12},
6068             $tracelevel)
6069             if defined $::RD_TRACE;
6070            
6071              
6072 40 50       81 $_tok = ($_noactions) ? 0 : do { nonassoc(@item) };
  40         151  
6073 40 50       409 unless (defined $_tok)
6074             {
6075 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
6076             if defined $::RD_TRACE;
6077 0         0 last;
6078             }
6079 40 50       102 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6080             . $_tok . q{])},
6081             Parse::RecDescent::_tracefirst($text))
6082             if defined $::RD_TRACE;
6083 40         74 push @item, $_tok;
6084 40         92 $item{__ACTION1__}=$_tok;
6085            
6086              
6087              
6088 40 50       91 Parse::RecDescent::_trace(q{>>Matched production: []<<},
6089             Parse::RecDescent::_tracefirst($text),
6090             q{expr12},
6091             $tracelevel)
6092             if defined $::RD_TRACE;
6093 40         73 $_matched = 1;
6094 40         71 last;
6095             }
6096              
6097              
6098 40 50 33     108 unless ( $_matched || defined($score) )
6099             {
6100            
6101              
6102 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
6103 0 0       0 Parse::RecDescent::_trace(q{<>},
6104             Parse::RecDescent::_tracefirst($_[1]),
6105             q{expr12},
6106             $tracelevel)
6107             if defined $::RD_TRACE;
6108 0         0 return undef;
6109             }
6110 40 50 33     206 if (!defined($return) && defined($score))
6111             {
6112 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6113             q{expr12},
6114             $tracelevel)
6115             if defined $::RD_TRACE;
6116 0         0 $return = $score_return;
6117             }
6118 40         52 splice @{$thisparser->{errors}}, $err_at;
  40         100  
6119 40 50       133 $return = $item[$#item] unless defined $return;
6120 40 50       98 if (defined $::RD_TRACE)
6121             {
6122 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6123             $return . q{])}, "",
6124             q{expr12},
6125             $tracelevel);
6126 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6127             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6128             Parse::RecDescent::_tracefirst($text),
6129             , q{expr12},
6130             $tracelevel)
6131             }
6132 40         68 $_[1] = $text;
6133 40         393 return $return;
6134             }
6135              
6136             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6137             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr16
6138             {
6139 50     50   86 my $thisparser = $_[0];
6140 4     4   23 use vars q{$tracelevel};
  4         70  
  4         10357  
6141 50   50     169 local $tracelevel = ($tracelevel||0)+1;
6142 50         64 $ERRORS = 0;
6143 50         125 my $thisrule = $thisparser->{"rules"}{"expr16"};
6144            
6145 50 50       133 Parse::RecDescent::_trace(q{Trying rule: [expr16]},
6146             Parse::RecDescent::_tracefirst($_[1]),
6147             q{expr16},
6148             $tracelevel)
6149             if defined $::RD_TRACE;
6150              
6151            
6152 50         61 my $err_at = @{$thisparser->{errors}};
  50         100  
6153              
6154 50         88 my $score;
6155             my $score_return;
6156 0         0 my $_tok;
6157 50         60 my $return = undef;
6158 50         68 my $_matched=0;
6159 50         108 my $commit=0;
6160 50         138 my @item = ();
6161 50         101 my %item = ();
6162 50   33     158 my $repeating = defined($_[2]) && $_[2];
6163 50   33     168 my $_noactions = defined($_[3]) && $_[3];
6164 50 50       135 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  50         80  
  50         109  
6165 50 50       175 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6166 50         69 my $text;
6167 50         86 my $lastsep="";
6168 50         56 my $current_match;
6169 50         208 my $expectation = new Parse::RecDescent::Expectation(q{});
6170 50         539 $expectation->at($_[1]);
6171            
6172 50         218 my $thisline;
6173 50         233 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6174              
6175            
6176              
6177 50   33     573 while (!$_matched && !$commit)
6178             {
6179            
6180 50 50       139 Parse::RecDescent::_trace(q{Trying production: []},
6181             Parse::RecDescent::_tracefirst($_[1]),
6182             q{expr16},
6183             $tracelevel)
6184             if defined $::RD_TRACE;
6185 50         137 my $thisprod = $thisrule->{"prods"}[0];
6186 50         86 $text = $_[1];
6187 50         65 my $_savetext;
6188 50         96 @item = (q{expr16});
6189 50         120 %item = (__RULE__ => q{expr16});
6190 50         65 my $repcount = 0;
6191              
6192              
6193 50 50       112 Parse::RecDescent::_trace(q{Trying operator: []},
6194             Parse::RecDescent::_tracefirst($text),
6195             q{expr16},
6196             $tracelevel)
6197             if defined $::RD_TRACE;
6198 50         144 $expectation->is(q{})->at($text);
6199              
6200 50         314 $_tok = undef;
6201 50         73 OPLOOP: while (1)
6202             {
6203 50         76 $repcount = 0;
6204 50         58 my @item;
6205            
6206             # MATCH LEFTARG
6207            
6208 50 50       98 Parse::RecDescent::_trace(q{Trying subrule: [expr17]},
6209             Parse::RecDescent::_tracefirst($text),
6210             q{expr16},
6211             $tracelevel)
6212             if defined $::RD_TRACE;
6213 4     4   33 if (1) { no strict qw{refs};
  4         9  
  4         1691  
  50         67  
6214 50         148 $expectation->is(q{expr17})->at($text);
6215 50 50   50   576 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr17($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  50         106  
6216             {
6217            
6218 0 0       0 Parse::RecDescent::_trace(q{<>},
6219             Parse::RecDescent::_tracefirst($text),
6220             q{expr16},
6221             $tracelevel)
6222             if defined $::RD_TRACE;
6223 0         0 $expectation->failed();
6224 0         0 last;
6225             }
6226 50 50       220 Parse::RecDescent::_trace(q{>>Matched subrule: [expr17]<< (return value: [}
6227             . $_tok . q{]},
6228            
6229             Parse::RecDescent::_tracefirst($text),
6230             q{expr16},
6231             $tracelevel)
6232             if defined $::RD_TRACE;
6233 50         120 $item{q{expr17}} = $_tok;
6234 50         90 push @item, $_tok;
6235            
6236             }
6237              
6238              
6239 50         92 $repcount++;
6240              
6241 50         67 my $savetext = $text;
6242 50         69 my $backtrack;
6243              
6244             # MATCH (OP RIGHTARG)(s)
6245 50         121 while ($repcount < 100000000)
6246             {
6247 50         88 $backtrack = 0;
6248            
6249 50 50       121 Parse::RecDescent::_trace(q{Trying subrule: [expr16op]},
6250             Parse::RecDescent::_tracefirst($text),
6251             q{expr16},
6252             $tracelevel)
6253             if defined $::RD_TRACE;
6254 4     4   24 if (1) { no strict qw{refs};
  4         7  
  4         924  
  50         58  
6255 50         163 $expectation->is(q{expr16op})->at($text);
6256 50 50   50   607 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr16op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  50         136  
6257             {
6258            
6259 50 50       105 Parse::RecDescent::_trace(q{<>},
6260             Parse::RecDescent::_tracefirst($text),
6261             q{expr16},
6262             $tracelevel)
6263             if defined $::RD_TRACE;
6264 50         137 $expectation->failed();
6265 50         441 last;
6266             }
6267 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr16op]<< (return value: [}
6268             . $_tok . q{]},
6269            
6270             Parse::RecDescent::_tracefirst($text),
6271             q{expr16},
6272             $tracelevel)
6273             if defined $::RD_TRACE;
6274 0         0 $item{q{expr16op}} = $_tok;
6275 0         0 push @item, $_tok;
6276            
6277             }
6278              
6279 0         0 $backtrack=1;
6280            
6281            
6282 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr17]},
6283             Parse::RecDescent::_tracefirst($text),
6284             q{expr16},
6285             $tracelevel)
6286             if defined $::RD_TRACE;
6287 4     4   24 if (1) { no strict qw{refs};
  4         17  
  4         4559  
  0         0  
6288 0         0 $expectation->is(q{expr17})->at($text);
6289 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr17($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
6290             {
6291            
6292 0 0       0 Parse::RecDescent::_trace(q{<>},
6293             Parse::RecDescent::_tracefirst($text),
6294             q{expr16},
6295             $tracelevel)
6296             if defined $::RD_TRACE;
6297 0         0 $expectation->failed();
6298 0         0 last;
6299             }
6300 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr17]<< (return value: [}
6301             . $_tok . q{]},
6302            
6303             Parse::RecDescent::_tracefirst($text),
6304             q{expr16},
6305             $tracelevel)
6306             if defined $::RD_TRACE;
6307 0         0 $item{q{expr17}} = $_tok;
6308 0         0 push @item, $_tok;
6309            
6310             }
6311              
6312 0         0 $savetext = $text;
6313 0         0 $repcount++;
6314             }
6315 50         161 $text = $savetext;
6316 50 50       108 pop @item if $backtrack;
6317              
6318 50 50       133 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
6319 50         114 $_tok = [ @item ];
6320 50         112 last;
6321             }
6322              
6323 50 50       157 unless ($repcount>=1)
6324             {
6325 0 0       0 Parse::RecDescent::_trace(q{<]>>},
6326             Parse::RecDescent::_tracefirst($text),
6327             q{expr16},
6328             $tracelevel)
6329             if defined $::RD_TRACE;
6330 0         0 $expectation->failed();
6331 0         0 last;
6332             }
6333 50 50       95 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
6334 0 0       0 . qq{@{$_tok||[]}} . q{]},
6335             Parse::RecDescent::_tracefirst($text),
6336             q{expr16},
6337             $tracelevel)
6338             if defined $::RD_TRACE;
6339              
6340 50   50     157 push @item, $item{__DIRECTIVE1__}=$_tok||[];
6341              
6342              
6343 50 50       97 Parse::RecDescent::_trace(q{Trying action},
6344             Parse::RecDescent::_tracefirst($text),
6345             q{expr16},
6346             $tracelevel)
6347             if defined $::RD_TRACE;
6348            
6349              
6350 50 50       100 $_tok = ($_noactions) ? 0 : do { left(@item) };
  50         92  
6351 50 50       121 unless (defined $_tok)
6352             {
6353 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
6354             if defined $::RD_TRACE;
6355 0         0 last;
6356             }
6357 50 50       97 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6358             . $_tok . q{])},
6359             Parse::RecDescent::_tracefirst($text))
6360             if defined $::RD_TRACE;
6361 50         88 push @item, $_tok;
6362 50         107 $item{__ACTION1__}=$_tok;
6363            
6364              
6365              
6366 50 50       121 Parse::RecDescent::_trace(q{>>Matched production: []<<},
6367             Parse::RecDescent::_tracefirst($text),
6368             q{expr16},
6369             $tracelevel)
6370             if defined $::RD_TRACE;
6371 50         63 $_matched = 1;
6372 50         79 last;
6373             }
6374              
6375              
6376 50 50 33     131 unless ( $_matched || defined($score) )
6377             {
6378            
6379              
6380 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
6381 0 0       0 Parse::RecDescent::_trace(q{<>},
6382             Parse::RecDescent::_tracefirst($_[1]),
6383             q{expr16},
6384             $tracelevel)
6385             if defined $::RD_TRACE;
6386 0         0 return undef;
6387             }
6388 50 50 33     281 if (!defined($return) && defined($score))
6389             {
6390 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6391             q{expr16},
6392             $tracelevel)
6393             if defined $::RD_TRACE;
6394 0         0 $return = $score_return;
6395             }
6396 50         69 splice @{$thisparser->{errors}}, $err_at;
  50         113  
6397 50 50       152 $return = $item[$#item] unless defined $return;
6398 50 50       103 if (defined $::RD_TRACE)
6399             {
6400 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6401             $return . q{])}, "",
6402             q{expr16},
6403             $tracelevel);
6404 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6405             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6406             Parse::RecDescent::_tracefirst($text),
6407             , q{expr16},
6408             $tracelevel)
6409             }
6410 50         102 $_[1] = $text;
6411 50         458 return $return;
6412             }
6413              
6414             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6415             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr2op
6416             {
6417 13     13   29 my $thisparser = $_[0];
6418 4     4   30 use vars q{$tracelevel};
  4         8  
  4         4333  
6419 13   50     49 local $tracelevel = ($tracelevel||0)+1;
6420 13         19 $ERRORS = 0;
6421 13         83 my $thisrule = $thisparser->{"rules"}{"expr2op"};
6422            
6423 13 50       29 Parse::RecDescent::_trace(q{Trying rule: [expr2op]},
6424             Parse::RecDescent::_tracefirst($_[1]),
6425             q{expr2op},
6426             $tracelevel)
6427             if defined $::RD_TRACE;
6428              
6429            
6430 13         13 my $err_at = @{$thisparser->{errors}};
  13         35  
6431              
6432 13         32 my $score;
6433             my $score_return;
6434 0         0 my $_tok;
6435 13         24 my $return = undef;
6436 13         17 my $_matched=0;
6437 13         14 my $commit=0;
6438 13         23 my @item = ();
6439 13         27 my %item = ();
6440 13   33     58 my $repeating = defined($_[2]) && $_[2];
6441 13   33     40 my $_noactions = defined($_[3]) && $_[3];
6442 13 50       37 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  13         19  
  13         30  
6443 13 50       44 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6444 13         17 my $text;
6445 13         20 my $lastsep="";
6446 13         18 my $current_match;
6447 13         56 my $expectation = new Parse::RecDescent::Expectation(q{'and'});
6448 13         127 $expectation->at($_[1]);
6449            
6450 13         57 my $thisline;
6451 13         69 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6452              
6453            
6454              
6455 13   33     155 while (!$_matched && !$commit)
6456             {
6457            
6458 13 50       39 Parse::RecDescent::_trace(q{Trying production: ['and']},
6459             Parse::RecDescent::_tracefirst($_[1]),
6460             q{expr2op},
6461             $tracelevel)
6462             if defined $::RD_TRACE;
6463 13         38 my $thisprod = $thisrule->{"prods"}[0];
6464 13         25 $text = $_[1];
6465 13         26 my $_savetext;
6466 13         31 @item = (q{expr2op});
6467 13         33 %item = (__RULE__ => q{expr2op});
6468 13         19 my $repcount = 0;
6469              
6470              
6471 13 50       30 Parse::RecDescent::_trace(q{Trying terminal: ['and']},
6472             Parse::RecDescent::_tracefirst($text),
6473             q{expr2op},
6474             $tracelevel)
6475             if defined $::RD_TRACE;
6476 13         21 $lastsep = "";
6477 13         40 $expectation->is(q{})->at($text);
6478            
6479              
6480 13 50 33     190 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "and"; 1 } and
  13 50 33     94  
  13   33     20  
  13         96  
6481             substr($text,0,length($_tok)) eq $_tok and
6482 0         0 do { substr($text,0,length($_tok)) = ""; 1; }
  0         0  
6483             )
6484             {
6485            
6486 13         41 $expectation->failed();
6487 13 50       65 Parse::RecDescent::_trace(q{<>},
6488             Parse::RecDescent::_tracefirst($text))
6489             if defined $::RD_TRACE;
6490 13         28 last;
6491             }
6492 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6493             . $_tok . q{])},
6494             Parse::RecDescent::_tracefirst($text))
6495             if defined $::RD_TRACE;
6496 0         0 push @item, $item{__STRING1__}=$_tok;
6497            
6498              
6499 0 0       0 Parse::RecDescent::_trace(q{Trying action},
6500             Parse::RecDescent::_tracefirst($text),
6501             q{expr2op},
6502             $tracelevel)
6503             if defined $::RD_TRACE;
6504            
6505              
6506 0 0       0 $_tok = ($_noactions) ? 0 : do { return $item[1] };
  0         0  
6507 0 0       0 unless (defined $_tok)
6508             {
6509 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
6510             if defined $::RD_TRACE;
6511 0         0 last;
6512             }
6513 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6514             . $_tok . q{])},
6515             Parse::RecDescent::_tracefirst($text))
6516             if defined $::RD_TRACE;
6517 0         0 push @item, $_tok;
6518 0         0 $item{__ACTION1__}=$_tok;
6519            
6520              
6521              
6522 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['and']<<},
6523             Parse::RecDescent::_tracefirst($text),
6524             q{expr2op},
6525             $tracelevel)
6526             if defined $::RD_TRACE;
6527 0         0 $_matched = 1;
6528 0         0 last;
6529             }
6530              
6531              
6532 13 50 33     69 unless ( $_matched || defined($score) )
6533             {
6534            
6535              
6536 13         70 $_[1] = $text; # NOT SURE THIS IS NEEDED
6537 13 50       32 Parse::RecDescent::_trace(q{<>},
6538             Parse::RecDescent::_tracefirst($_[1]),
6539             q{expr2op},
6540             $tracelevel)
6541             if defined $::RD_TRACE;
6542 13         102 return undef;
6543             }
6544 0 0 0     0 if (!defined($return) && defined($score))
6545             {
6546 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6547             q{expr2op},
6548             $tracelevel)
6549             if defined $::RD_TRACE;
6550 0         0 $return = $score_return;
6551             }
6552 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
6553 0 0       0 $return = $item[$#item] unless defined $return;
6554 0 0       0 if (defined $::RD_TRACE)
6555             {
6556 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6557             $return . q{])}, "",
6558             q{expr2op},
6559             $tracelevel);
6560 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6561             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6562             Parse::RecDescent::_tracefirst($text),
6563             , q{expr2op},
6564             $tracelevel)
6565             }
6566 0         0 $_[1] = $text;
6567 0         0 return $return;
6568             }
6569              
6570             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6571             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr_op
6572             {
6573 13     13   25 my $thisparser = $_[0];
6574 4     4   28 use vars q{$tracelevel};
  4         29  
  4         3985  
6575 13   50     49 local $tracelevel = ($tracelevel||0)+1;
6576 13         26 $ERRORS = 0;
6577 13         43 my $thisrule = $thisparser->{"rules"}{"expr_op"};
6578            
6579 13 50       38 Parse::RecDescent::_trace(q{Trying rule: [expr_op]},
6580             Parse::RecDescent::_tracefirst($_[1]),
6581             q{expr_op},
6582             $tracelevel)
6583             if defined $::RD_TRACE;
6584              
6585            
6586 13         28 my $err_at = @{$thisparser->{errors}};
  13         32  
6587              
6588 13         21 my $score;
6589             my $score_return;
6590 0         0 my $_tok;
6591 13         26 my $return = undef;
6592 13         16 my $_matched=0;
6593 13         20 my $commit=0;
6594 13         29 my @item = ();
6595 13         23 my %item = ();
6596 13   33     65 my $repeating = defined($_[2]) && $_[2];
6597 13   33     47 my $_noactions = defined($_[3]) && $_[3];
6598 13 50       35 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  13         16  
  13         31  
6599 13 50       41 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6600 13         18 my $text;
6601 13         21 my $lastsep="";
6602 13         15 my $current_match;
6603 13         50 my $expectation = new Parse::RecDescent::Expectation(q{/or|xor/});
6604 13         130 $expectation->at($_[1]);
6605            
6606 13         64 my $thisline;
6607 13         69 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6608              
6609            
6610              
6611 13   33     134 while (!$_matched && !$commit)
6612             {
6613            
6614 13 50       36 Parse::RecDescent::_trace(q{Trying production: [/or|xor/]},
6615             Parse::RecDescent::_tracefirst($_[1]),
6616             q{expr_op},
6617             $tracelevel)
6618             if defined $::RD_TRACE;
6619 13         38 my $thisprod = $thisrule->{"prods"}[0];
6620 13         24 $text = $_[1];
6621 13         14 my $_savetext;
6622 13         31 @item = (q{expr_op});
6623 13         36 %item = (__RULE__ => q{expr_op});
6624 13         17 my $repcount = 0;
6625              
6626              
6627 13 50       36 Parse::RecDescent::_trace(q{Trying terminal: [/or|xor/]}, Parse::RecDescent::_tracefirst($text),
6628             q{expr_op},
6629             $tracelevel)
6630             if defined $::RD_TRACE;
6631 13         22 $lastsep = "";
6632 13         47 $expectation->is(q{})->at($text);
6633            
6634              
6635 13 50 33     172 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:or|xor)/)
  13 50       139  
6636             {
6637            
6638 13         43 $expectation->failed();
6639 13 50       63 Parse::RecDescent::_trace(q{<>},
6640             Parse::RecDescent::_tracefirst($text))
6641             if defined $::RD_TRACE;
6642              
6643 13         25 last;
6644             }
6645 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
6646 0         0 substr($text,0,length($current_match),q{});
6647 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6648             . $current_match . q{])},
6649             Parse::RecDescent::_tracefirst($text))
6650             if defined $::RD_TRACE;
6651 0         0 push @item, $item{__PATTERN1__}=$current_match;
6652            
6653              
6654 0 0       0 Parse::RecDescent::_trace(q{Trying action},
6655             Parse::RecDescent::_tracefirst($text),
6656             q{expr_op},
6657             $tracelevel)
6658             if defined $::RD_TRACE;
6659            
6660              
6661 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[1] };
  0         0  
6662 0 0       0 unless (defined $_tok)
6663             {
6664 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
6665             if defined $::RD_TRACE;
6666 0         0 last;
6667             }
6668 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6669             . $_tok . q{])},
6670             Parse::RecDescent::_tracefirst($text))
6671             if defined $::RD_TRACE;
6672 0         0 push @item, $_tok;
6673 0         0 $item{__ACTION1__}=$_tok;
6674            
6675              
6676              
6677 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/or|xor/]<<},
6678             Parse::RecDescent::_tracefirst($text),
6679             q{expr_op},
6680             $tracelevel)
6681             if defined $::RD_TRACE;
6682 0         0 $_matched = 1;
6683 0         0 last;
6684             }
6685              
6686              
6687 13 50 33     73 unless ( $_matched || defined($score) )
6688             {
6689            
6690              
6691 13         19 $_[1] = $text; # NOT SURE THIS IS NEEDED
6692 13 50       31 Parse::RecDescent::_trace(q{<>},
6693             Parse::RecDescent::_tracefirst($_[1]),
6694             q{expr_op},
6695             $tracelevel)
6696             if defined $::RD_TRACE;
6697 13         99 return undef;
6698             }
6699 0 0 0     0 if (!defined($return) && defined($score))
6700             {
6701 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6702             q{expr_op},
6703             $tracelevel)
6704             if defined $::RD_TRACE;
6705 0         0 $return = $score_return;
6706             }
6707 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
6708 0 0       0 $return = $item[$#item] unless defined $return;
6709 0 0       0 if (defined $::RD_TRACE)
6710             {
6711 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6712             $return . q{])}, "",
6713             q{expr_op},
6714             $tracelevel);
6715 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6716             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6717             Parse::RecDescent::_tracefirst($text),
6718             , q{expr_op},
6719             $tracelevel)
6720             }
6721 0         0 $_[1] = $text;
6722 0         0 return $return;
6723             }
6724              
6725             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6726             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr7
6727             {
6728 32     32   57 my $thisparser = $_[0];
6729 4     4   29 use vars q{$tracelevel};
  4         7  
  4         1965  
6730 32   50     120 local $tracelevel = ($tracelevel||0)+1;
6731 32         49 $ERRORS = 0;
6732 32         72 my $thisrule = $thisparser->{"rules"}{"expr7"};
6733            
6734 32 50       84 Parse::RecDescent::_trace(q{Trying rule: [expr7]},
6735             Parse::RecDescent::_tracefirst($_[1]),
6736             q{expr7},
6737             $tracelevel)
6738             if defined $::RD_TRACE;
6739              
6740            
6741 32         41 my $err_at = @{$thisparser->{errors}};
  32         71  
6742              
6743 32         54 my $score;
6744             my $score_return;
6745 0         0 my $_tok;
6746 32         54 my $return = undef;
6747 32         40 my $_matched=0;
6748 32         61 my $commit=0;
6749 32         60 my @item = ();
6750 32         60 my %item = ();
6751 32   33     129 my $repeating = defined($_[2]) && $_[2];
6752 32   33     116 my $_noactions = defined($_[3]) && $_[3];
6753 32 50       91 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         35  
  32         69  
6754 32 50       91 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6755 32         42 my $text;
6756 32         41 my $lastsep="";
6757 32         46 my $current_match;
6758 32         132 my $expectation = new Parse::RecDescent::Expectation(q{});
6759 32         309 $expectation->at($_[1]);
6760            
6761 32         135 my $thisline;
6762 32         146 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6763              
6764            
6765              
6766 32   33     390 while (!$_matched && !$commit)
6767             {
6768            
6769 32 50       87 Parse::RecDescent::_trace(q{Trying production: []},
6770             Parse::RecDescent::_tracefirst($_[1]),
6771             q{expr7},
6772             $tracelevel)
6773             if defined $::RD_TRACE;
6774 32         95 my $thisprod = $thisrule->{"prods"}[0];
6775 32         48 $text = $_[1];
6776 32         45 my $_savetext;
6777 32         68 @item = (q{expr7});
6778 32         64 %item = (__RULE__ => q{expr7});
6779 32         48 my $repcount = 0;
6780              
6781              
6782 32 50       87 Parse::RecDescent::_trace(q{Trying operator: []},
6783             Parse::RecDescent::_tracefirst($text),
6784             q{expr7},
6785             $tracelevel)
6786             if defined $::RD_TRACE;
6787 32         101 $expectation->is(q{})->at($text);
6788              
6789 32         210 $_tok = undef;
6790 32         50 OPLOOP: while (1)
6791             {
6792 32         39 $repcount = 0;
6793 32         38 my @item;
6794            
6795             # MATCH LEFTARG
6796            
6797 32 50       70 Parse::RecDescent::_trace(q{Trying subrule: [expr8]},
6798             Parse::RecDescent::_tracefirst($text),
6799             q{expr7},
6800             $tracelevel)
6801             if defined $::RD_TRACE;
6802 4     4   29 if (1) { no strict qw{refs};
  4         11  
  4         1163  
  32         36  
6803 32         117 $expectation->is(q{expr8})->at($text);
6804 32 50   32   353 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr8($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         93  
6805             {
6806            
6807 0 0       0 Parse::RecDescent::_trace(q{<>},
6808             Parse::RecDescent::_tracefirst($text),
6809             q{expr7},
6810             $tracelevel)
6811             if defined $::RD_TRACE;
6812 0         0 $expectation->failed();
6813 0         0 last;
6814             }
6815 32 50       182 Parse::RecDescent::_trace(q{>>Matched subrule: [expr8]<< (return value: [}
6816             . $_tok . q{]},
6817            
6818             Parse::RecDescent::_tracefirst($text),
6819             q{expr7},
6820             $tracelevel)
6821             if defined $::RD_TRACE;
6822 32         89 $item{q{expr8}} = $_tok;
6823 32         63 push @item, $_tok;
6824            
6825             }
6826              
6827              
6828 32         47 $repcount++;
6829              
6830 32         54 my $savetext = $text;
6831 32         49 my $backtrack;
6832              
6833             # MATCH (OP RIGHTARG)(s)
6834 32         77 while ($repcount < 100000000)
6835             {
6836 32         50 $backtrack = 0;
6837            
6838 32 50       81 Parse::RecDescent::_trace(q{Trying subrule: [expr7op]},
6839             Parse::RecDescent::_tracefirst($text),
6840             q{expr7},
6841             $tracelevel)
6842             if defined $::RD_TRACE;
6843 4     4   25 if (1) { no strict qw{refs};
  4         7  
  4         882  
  32         43  
6844 32         116 $expectation->is(q{expr7op})->at($text);
6845 32 50   32   433 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr7op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         88  
6846             {
6847            
6848 32 50       79 Parse::RecDescent::_trace(q{<>},
6849             Parse::RecDescent::_tracefirst($text),
6850             q{expr7},
6851             $tracelevel)
6852             if defined $::RD_TRACE;
6853 32         93 $expectation->failed();
6854 32         278 last;
6855             }
6856 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr7op]<< (return value: [}
6857             . $_tok . q{]},
6858            
6859             Parse::RecDescent::_tracefirst($text),
6860             q{expr7},
6861             $tracelevel)
6862             if defined $::RD_TRACE;
6863 0         0 $item{q{expr7op}} = $_tok;
6864 0         0 push @item, $_tok;
6865            
6866             }
6867              
6868 0         0 $backtrack=1;
6869            
6870            
6871 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr8]},
6872             Parse::RecDescent::_tracefirst($text),
6873             q{expr7},
6874             $tracelevel)
6875             if defined $::RD_TRACE;
6876 4     4   23 if (1) { no strict qw{refs};
  4         7  
  4         4069  
  0         0  
6877 0         0 $expectation->is(q{expr8})->at($text);
6878 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr8($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
6879             {
6880            
6881 0 0       0 Parse::RecDescent::_trace(q{<>},
6882             Parse::RecDescent::_tracefirst($text),
6883             q{expr7},
6884             $tracelevel)
6885             if defined $::RD_TRACE;
6886 0         0 $expectation->failed();
6887 0         0 last;
6888             }
6889 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr8]<< (return value: [}
6890             . $_tok . q{]},
6891            
6892             Parse::RecDescent::_tracefirst($text),
6893             q{expr7},
6894             $tracelevel)
6895             if defined $::RD_TRACE;
6896 0         0 $item{q{expr8}} = $_tok;
6897 0         0 push @item, $_tok;
6898            
6899             }
6900              
6901 0         0 $savetext = $text;
6902 0         0 $repcount++;
6903             }
6904 32         115 $text = $savetext;
6905 32 50       74 pop @item if $backtrack;
6906              
6907 32 50       85 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
6908 32         82 $_tok = [ @item ];
6909 32         57 last;
6910             }
6911              
6912 32 50       83 unless ($repcount>=1)
6913             {
6914 0 0       0 Parse::RecDescent::_trace(q{<]>>},
6915             Parse::RecDescent::_tracefirst($text),
6916             q{expr7},
6917             $tracelevel)
6918             if defined $::RD_TRACE;
6919 0         0 $expectation->failed();
6920 0         0 last;
6921             }
6922 32 50       89 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
6923 0 0       0 . qq{@{$_tok||[]}} . q{]},
6924             Parse::RecDescent::_tracefirst($text),
6925             q{expr7},
6926             $tracelevel)
6927             if defined $::RD_TRACE;
6928              
6929 32   50     148 push @item, $item{__DIRECTIVE1__}=$_tok||[];
6930              
6931              
6932 32 50       80 Parse::RecDescent::_trace(q{Trying action},
6933             Parse::RecDescent::_tracefirst($text),
6934             q{expr7},
6935             $tracelevel)
6936             if defined $::RD_TRACE;
6937            
6938              
6939 32 50       67 $_tok = ($_noactions) ? 0 : do { left(@item) };
  32         76  
6940 32 50       100 unless (defined $_tok)
6941             {
6942 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
6943             if defined $::RD_TRACE;
6944 0         0 last;
6945             }
6946 32 50       97 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6947             . $_tok . q{])},
6948             Parse::RecDescent::_tracefirst($text))
6949             if defined $::RD_TRACE;
6950 32         65 push @item, $_tok;
6951 32         76 $item{__ACTION1__}=$_tok;
6952            
6953              
6954              
6955 32 50       160 Parse::RecDescent::_trace(q{>>Matched production: []<<},
6956             Parse::RecDescent::_tracefirst($text),
6957             q{expr7},
6958             $tracelevel)
6959             if defined $::RD_TRACE;
6960 32         40 $_matched = 1;
6961 32         62 last;
6962             }
6963              
6964              
6965 32 50 33     106 unless ( $_matched || defined($score) )
6966             {
6967            
6968              
6969 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
6970 0 0       0 Parse::RecDescent::_trace(q{<>},
6971             Parse::RecDescent::_tracefirst($_[1]),
6972             q{expr7},
6973             $tracelevel)
6974             if defined $::RD_TRACE;
6975 0         0 return undef;
6976             }
6977 32 50 33     148 if (!defined($return) && defined($score))
6978             {
6979 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6980             q{expr7},
6981             $tracelevel)
6982             if defined $::RD_TRACE;
6983 0         0 $return = $score_return;
6984             }
6985 32         42 splice @{$thisparser->{errors}}, $err_at;
  32         88  
6986 32 50       97 $return = $item[$#item] unless defined $return;
6987 32 50       77 if (defined $::RD_TRACE)
6988             {
6989 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6990             $return . q{])}, "",
6991             q{expr7},
6992             $tracelevel);
6993 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
6994             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6995             Parse::RecDescent::_tracefirst($text),
6996             , q{expr7},
6997             $tracelevel)
6998             }
6999 32         85 $_[1] = $text;
7000 32         350 return $return;
7001             }
7002              
7003             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7004             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::constant
7005             {
7006 50     50   87 my $thisparser = $_[0];
7007 4     4   31 use vars q{$tracelevel};
  4         16  
  4         13835  
7008 50   50     171 local $tracelevel = ($tracelevel||0)+1;
7009 50         99 $ERRORS = 0;
7010 50         144 my $thisrule = $thisparser->{"rules"}{"constant"};
7011            
7012 50 50       135 Parse::RecDescent::_trace(q{Trying rule: [constant]},
7013             Parse::RecDescent::_tracefirst($_[1]),
7014             q{constant},
7015             $tracelevel)
7016             if defined $::RD_TRACE;
7017              
7018            
7019 50         61 my $err_at = @{$thisparser->{errors}};
  50         98  
7020              
7021 50         82 my $score;
7022             my $score_return;
7023 0         0 my $_tok;
7024 50         67 my $return = undef;
7025 50         76 my $_matched=0;
7026 50         61 my $commit=0;
7027 50         109 my @item = ();
7028 50         84 my %item = ();
7029 50   33     209 my $repeating = defined($_[2]) && $_[2];
7030 50   33     196 my $_noactions = defined($_[3]) && $_[3];
7031 50 50       122 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  50         53  
  50         113  
7032 50 50       198 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7033 50         56 my $text;
7034 50         89 my $lastsep="";
7035 50         64 my $current_match;
7036 50         199 my $expectation = new Parse::RecDescent::Expectation(q{/ -? (?: \\d+ (?: \\.\\d+ )? | (?: \\.\\d+) ) (?:[eE]-?\\d+)? /x, or ''', or '"'});
7037 50         483 $expectation->at($_[1]);
7038            
7039 50         217 my $thisline;
7040 50         222 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7041              
7042            
7043              
7044 50   33     490 while (!$_matched && !$commit)
7045             {
7046            
7047 50 50       109 Parse::RecDescent::_trace(q{Trying production: [/ -? (?: \\d+ (?: \\.\\d+ )? | (?: \\.\\d+) ) (?:[eE]-?\\d+)? /x]},
7048             Parse::RecDescent::_tracefirst($_[1]),
7049             q{constant},
7050             $tracelevel)
7051             if defined $::RD_TRACE;
7052 50         133 my $thisprod = $thisrule->{"prods"}[0];
7053 50         77 $text = $_[1];
7054 50         54 my $_savetext;
7055 50         109 @item = (q{constant});
7056 50         167 %item = (__RULE__ => q{constant});
7057 50         78 my $repcount = 0;
7058              
7059              
7060 50 50       114 Parse::RecDescent::_trace(q{Trying terminal: [/ -? (?: \\d+ (?: \\.\\d+ )? | (?: \\.\\d+) ) (?:[eE]-?\\d+)? /x]}, Parse::RecDescent::_tracefirst($text),
7061             q{constant},
7062             $tracelevel)
7063             if defined $::RD_TRACE;
7064 50         64 $lastsep = "";
7065 50         141 $expectation->is(q{})->at($text);
7066            
7067              
7068 50 100 33     632 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?: -? (?: \d+ (?: \.\d+ )? | (?: \.\d+) ) (?:[eE]-?\d+)? )/x)
  50 50       680  
7069             {
7070            
7071 0         0 $expectation->failed();
7072 0 0       0 Parse::RecDescent::_trace(q{<>},
7073             Parse::RecDescent::_tracefirst($text))
7074             if defined $::RD_TRACE;
7075              
7076 0         0 last;
7077             }
7078 50         325 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7079 50         193 substr($text,0,length($current_match),q{});
7080 50 50       153 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7081             . $current_match . q{])},
7082             Parse::RecDescent::_tracefirst($text))
7083             if defined $::RD_TRACE;
7084 50         179 push @item, $item{__PATTERN1__}=$current_match;
7085            
7086              
7087 50 50       148 Parse::RecDescent::_trace(q{Trying action},
7088             Parse::RecDescent::_tracefirst($text),
7089             q{constant},
7090             $tracelevel)
7091             if defined $::RD_TRACE;
7092            
7093              
7094 50 50       134 $_tok = ($_noactions) ? 0 : do { $item[1] };
  50         116  
7095 50 50       126 unless (defined $_tok)
7096             {
7097 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
7098             if defined $::RD_TRACE;
7099 0         0 last;
7100             }
7101 50 50       116 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7102             . $_tok . q{])},
7103             Parse::RecDescent::_tracefirst($text))
7104             if defined $::RD_TRACE;
7105 50         87 push @item, $_tok;
7106 50         109 $item{__ACTION1__}=$_tok;
7107            
7108              
7109              
7110 50 50       112 Parse::RecDescent::_trace(q{>>Matched production: [/ -? (?: \\d+ (?: \\.\\d+ )? | (?: \\.\\d+) ) (?:[eE]-?\\d+)? /x]<<},
7111             Parse::RecDescent::_tracefirst($text),
7112             q{constant},
7113             $tracelevel)
7114             if defined $::RD_TRACE;
7115 50         113 $_matched = 1;
7116 50         98 last;
7117             }
7118              
7119              
7120 50   33     127 while (!$_matched && !$commit)
7121             {
7122            
7123 0 0       0 Parse::RecDescent::_trace(q{Trying production: [''' /[^"]*/ '"']},
7124             Parse::RecDescent::_tracefirst($_[1]),
7125             q{constant},
7126             $tracelevel)
7127             if defined $::RD_TRACE;
7128 0         0 my $thisprod = $thisrule->{"prods"}[1];
7129 0         0 $text = $_[1];
7130 0         0 my $_savetext;
7131 0         0 @item = (q{constant});
7132 0         0 %item = (__RULE__ => q{constant});
7133 0         0 my $repcount = 0;
7134              
7135              
7136 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [''']},
7137             Parse::RecDescent::_tracefirst($text),
7138             q{constant},
7139             $tracelevel)
7140             if defined $::RD_TRACE;
7141 0         0 $lastsep = "";
7142 0         0 $expectation->is(q{})->at($text);
7143            
7144              
7145 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "'"; 1 } and
  0 0 0     0  
  0   0     0  
  0         0  
7146             substr($text,0,length($_tok)) eq $_tok and
7147 0         0 do { substr($text,0,length($_tok)) = ""; 1; }
  0         0  
7148             )
7149             {
7150            
7151 0         0 $expectation->failed();
7152 0 0       0 Parse::RecDescent::_trace(q{<>},
7153             Parse::RecDescent::_tracefirst($text))
7154             if defined $::RD_TRACE;
7155 0         0 last;
7156             }
7157 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7158             . $_tok . q{])},
7159             Parse::RecDescent::_tracefirst($text))
7160             if defined $::RD_TRACE;
7161 0         0 push @item, $item{__STRING1__}=$_tok;
7162            
7163              
7164 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/[^"]*/]}, Parse::RecDescent::_tracefirst($text),
7165             q{constant},
7166             $tracelevel)
7167             if defined $::RD_TRACE;
7168 0         0 $lastsep = "";
7169 0         0 $expectation->is(q{/[^"]*/})->at($text);
7170            
7171              
7172 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[^"]*)/)
  0 0       0  
7173             {
7174            
7175 0         0 $expectation->failed();
7176 0 0       0 Parse::RecDescent::_trace(q{<>},
7177             Parse::RecDescent::_tracefirst($text))
7178             if defined $::RD_TRACE;
7179              
7180 0         0 last;
7181             }
7182 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7183 0         0 substr($text,0,length($current_match),q{});
7184 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7185             . $current_match . q{])},
7186             Parse::RecDescent::_tracefirst($text))
7187             if defined $::RD_TRACE;
7188 0         0 push @item, $item{__PATTERN1__}=$current_match;
7189            
7190              
7191 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['"']},
7192             Parse::RecDescent::_tracefirst($text),
7193             q{constant},
7194             $tracelevel)
7195             if defined $::RD_TRACE;
7196 0         0 $lastsep = "";
7197 0         0 $expectation->is(q{'"'})->at($text);
7198            
7199              
7200 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\"/)
  0 0       0  
7201             {
7202            
7203 0         0 $expectation->failed();
7204 0 0       0 Parse::RecDescent::_trace(qq{<>},
7205             Parse::RecDescent::_tracefirst($text))
7206             if defined $::RD_TRACE;
7207 0         0 last;
7208             }
7209 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7210 0         0 substr($text,0,length($current_match),q{});
7211 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7212             . $current_match . q{])},
7213             Parse::RecDescent::_tracefirst($text))
7214             if defined $::RD_TRACE;
7215 0         0 push @item, $item{__STRING2__}=$current_match;
7216            
7217              
7218 0 0       0 Parse::RecDescent::_trace(q{Trying action},
7219             Parse::RecDescent::_tracefirst($text),
7220             q{constant},
7221             $tracelevel)
7222             if defined $::RD_TRACE;
7223            
7224              
7225 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[2] };
  0         0  
7226 0 0       0 unless (defined $_tok)
7227             {
7228 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
7229             if defined $::RD_TRACE;
7230 0         0 last;
7231             }
7232 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7233             . $_tok . q{])},
7234             Parse::RecDescent::_tracefirst($text))
7235             if defined $::RD_TRACE;
7236 0         0 push @item, $_tok;
7237 0         0 $item{__ACTION1__}=$_tok;
7238            
7239              
7240              
7241 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [''' /[^"]*/ '"']<<},
7242             Parse::RecDescent::_tracefirst($text),
7243             q{constant},
7244             $tracelevel)
7245             if defined $::RD_TRACE;
7246 0         0 $_matched = 1;
7247 0         0 last;
7248             }
7249              
7250              
7251 50   33     101 while (!$_matched && !$commit)
7252             {
7253            
7254 0 0       0 Parse::RecDescent::_trace(q{Trying production: ['"' /[^']*/ ''']},
7255             Parse::RecDescent::_tracefirst($_[1]),
7256             q{constant},
7257             $tracelevel)
7258             if defined $::RD_TRACE;
7259 0         0 my $thisprod = $thisrule->{"prods"}[2];
7260 0         0 $text = $_[1];
7261 0         0 my $_savetext;
7262 0         0 @item = (q{constant});
7263 0         0 %item = (__RULE__ => q{constant});
7264 0         0 my $repcount = 0;
7265              
7266              
7267 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: ['"']},
7268             Parse::RecDescent::_tracefirst($text),
7269             q{constant},
7270             $tracelevel)
7271             if defined $::RD_TRACE;
7272 0         0 $lastsep = "";
7273 0         0 $expectation->is(q{})->at($text);
7274            
7275              
7276 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A\"/)
  0 0       0  
7277             {
7278            
7279 0         0 $expectation->failed();
7280 0 0       0 Parse::RecDescent::_trace(qq{<>},
7281             Parse::RecDescent::_tracefirst($text))
7282             if defined $::RD_TRACE;
7283 0         0 last;
7284             }
7285 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7286 0         0 substr($text,0,length($current_match),q{});
7287 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7288             . $current_match . q{])},
7289             Parse::RecDescent::_tracefirst($text))
7290             if defined $::RD_TRACE;
7291 0         0 push @item, $item{__STRING1__}=$current_match;
7292            
7293              
7294 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [/[^']*/]}, Parse::RecDescent::_tracefirst($text),
7295             q{constant},
7296             $tracelevel)
7297             if defined $::RD_TRACE;
7298 0         0 $lastsep = "";
7299 0         0 $expectation->is(q{/[^']*/})->at($text);
7300            
7301              
7302 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:[^']*)/)
  0 0       0  
7303             {
7304            
7305 0         0 $expectation->failed();
7306 0 0       0 Parse::RecDescent::_trace(q{<>},
7307             Parse::RecDescent::_tracefirst($text))
7308             if defined $::RD_TRACE;
7309              
7310 0         0 last;
7311             }
7312 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7313 0         0 substr($text,0,length($current_match),q{});
7314 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7315             . $current_match . q{])},
7316             Parse::RecDescent::_tracefirst($text))
7317             if defined $::RD_TRACE;
7318 0         0 push @item, $item{__PATTERN1__}=$current_match;
7319            
7320              
7321 0 0       0 Parse::RecDescent::_trace(q{Trying terminal: [''']},
7322             Parse::RecDescent::_tracefirst($text),
7323             q{constant},
7324             $tracelevel)
7325             if defined $::RD_TRACE;
7326 0         0 $lastsep = "";
7327 0         0 $expectation->is(q{'''})->at($text);
7328            
7329              
7330 0 0 0     0 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "'"; 1 } and
  0 0 0     0  
  0   0     0  
  0         0  
7331             substr($text,0,length($_tok)) eq $_tok and
7332 0         0 do { substr($text,0,length($_tok)) = ""; 1; }
  0         0  
7333             )
7334             {
7335            
7336 0         0 $expectation->failed();
7337 0 0       0 Parse::RecDescent::_trace(q{<>},
7338             Parse::RecDescent::_tracefirst($text))
7339             if defined $::RD_TRACE;
7340 0         0 last;
7341             }
7342 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7343             . $_tok . q{])},
7344             Parse::RecDescent::_tracefirst($text))
7345             if defined $::RD_TRACE;
7346 0         0 push @item, $item{__STRING2__}=$_tok;
7347            
7348              
7349 0 0       0 Parse::RecDescent::_trace(q{Trying action},
7350             Parse::RecDescent::_tracefirst($text),
7351             q{constant},
7352             $tracelevel)
7353             if defined $::RD_TRACE;
7354            
7355              
7356 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[2] };
  0         0  
7357 0 0       0 unless (defined $_tok)
7358             {
7359 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
7360             if defined $::RD_TRACE;
7361 0         0 last;
7362             }
7363 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7364             . $_tok . q{])},
7365             Parse::RecDescent::_tracefirst($text))
7366             if defined $::RD_TRACE;
7367 0         0 push @item, $_tok;
7368 0         0 $item{__ACTION1__}=$_tok;
7369            
7370              
7371              
7372 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: ['"' /[^']*/ ''']<<},
7373             Parse::RecDescent::_tracefirst($text),
7374             q{constant},
7375             $tracelevel)
7376             if defined $::RD_TRACE;
7377 0         0 $_matched = 1;
7378 0         0 last;
7379             }
7380              
7381              
7382 50 50 33     112 unless ( $_matched || defined($score) )
7383             {
7384            
7385              
7386 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
7387 0 0       0 Parse::RecDescent::_trace(q{<>},
7388             Parse::RecDescent::_tracefirst($_[1]),
7389             q{constant},
7390             $tracelevel)
7391             if defined $::RD_TRACE;
7392 0         0 return undef;
7393             }
7394 50 50 33     321 if (!defined($return) && defined($score))
7395             {
7396 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7397             q{constant},
7398             $tracelevel)
7399             if defined $::RD_TRACE;
7400 0         0 $return = $score_return;
7401             }
7402 50         55 splice @{$thisparser->{errors}}, $err_at;
  50         150  
7403 50 50       164 $return = $item[$#item] unless defined $return;
7404 50 50       107 if (defined $::RD_TRACE)
7405             {
7406 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7407             $return . q{])}, "",
7408             q{constant},
7409             $tracelevel);
7410 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7411             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7412             Parse::RecDescent::_tracefirst($text),
7413             , q{constant},
7414             $tracelevel)
7415             }
7416 50         101 $_[1] = $text;
7417 50         476 return $return;
7418             }
7419              
7420             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7421             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr9op
7422             {
7423 32     32   70 my $thisparser = $_[0];
7424 4     4   44 use vars q{$tracelevel};
  4         8  
  4         4328  
7425 32   50     95 local $tracelevel = ($tracelevel||0)+1;
7426 32         52 $ERRORS = 0;
7427 32         95 my $thisrule = $thisparser->{"rules"}{"expr9op"};
7428            
7429 32 50       72 Parse::RecDescent::_trace(q{Trying rule: [expr9op]},
7430             Parse::RecDescent::_tracefirst($_[1]),
7431             q{expr9op},
7432             $tracelevel)
7433             if defined $::RD_TRACE;
7434              
7435            
7436 32         39 my $err_at = @{$thisparser->{errors}};
  32         58  
7437              
7438 32         66 my $score;
7439             my $score_return;
7440 0         0 my $_tok;
7441 32         40 my $return = undef;
7442 32         58 my $_matched=0;
7443 32         42 my $commit=0;
7444 32         62 my @item = ();
7445 32         52 my %item = ();
7446 32   33     120 my $repeating = defined($_[2]) && $_[2];
7447 32   33     107 my $_noactions = defined($_[3]) && $_[3];
7448 32 50       75 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         38  
  32         69  
7449 32 50       110 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7450 32         37 my $text;
7451 32         47 my $lastsep="";
7452 32         36 my $current_match;
7453 32         134 my $expectation = new Parse::RecDescent::Expectation(q{/(\\||\\^)/});
7454 32         305 $expectation->at($_[1]);
7455            
7456 32         132 my $thisline;
7457 32         155 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7458              
7459            
7460              
7461 32   33     355 while (!$_matched && !$commit)
7462             {
7463            
7464 32 50       73 Parse::RecDescent::_trace(q{Trying production: [/(\\||\\^)/]},
7465             Parse::RecDescent::_tracefirst($_[1]),
7466             q{expr9op},
7467             $tracelevel)
7468             if defined $::RD_TRACE;
7469 32         89 my $thisprod = $thisrule->{"prods"}[0];
7470 32         50 $text = $_[1];
7471 32         42 my $_savetext;
7472 32         68 @item = (q{expr9op});
7473 32         96 %item = (__RULE__ => q{expr9op});
7474 32         56 my $repcount = 0;
7475              
7476              
7477 32 50       68 Parse::RecDescent::_trace(q{Trying terminal: [/(\\||\\^)/]}, Parse::RecDescent::_tracefirst($text),
7478             q{expr9op},
7479             $tracelevel)
7480             if defined $::RD_TRACE;
7481 32         51 $lastsep = "";
7482 32         112 $expectation->is(q{})->at($text);
7483            
7484              
7485 32 100 33     395 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(\||\^))/)
  32 50       311  
7486             {
7487            
7488 32         100 $expectation->failed();
7489 32 50       148 Parse::RecDescent::_trace(q{<>},
7490             Parse::RecDescent::_tracefirst($text))
7491             if defined $::RD_TRACE;
7492              
7493 32         75 last;
7494             }
7495 0         0 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7496 0         0 substr($text,0,length($current_match),q{});
7497 0 0       0 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7498             . $current_match . q{])},
7499             Parse::RecDescent::_tracefirst($text))
7500             if defined $::RD_TRACE;
7501 0         0 push @item, $item{__PATTERN1__}=$current_match;
7502            
7503              
7504 0 0       0 Parse::RecDescent::_trace(q{Trying action},
7505             Parse::RecDescent::_tracefirst($text),
7506             q{expr9op},
7507             $tracelevel)
7508             if defined $::RD_TRACE;
7509            
7510              
7511 0 0       0 $_tok = ($_noactions) ? 0 : do { $item[1] };
  0         0  
7512 0 0       0 unless (defined $_tok)
7513             {
7514 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
7515             if defined $::RD_TRACE;
7516 0         0 last;
7517             }
7518 0 0       0 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7519             . $_tok . q{])},
7520             Parse::RecDescent::_tracefirst($text))
7521             if defined $::RD_TRACE;
7522 0         0 push @item, $_tok;
7523 0         0 $item{__ACTION1__}=$_tok;
7524            
7525              
7526              
7527 0 0       0 Parse::RecDescent::_trace(q{>>Matched production: [/(\\||\\^)/]<<},
7528             Parse::RecDescent::_tracefirst($text),
7529             q{expr9op},
7530             $tracelevel)
7531             if defined $::RD_TRACE;
7532 0         0 $_matched = 1;
7533 0         0 last;
7534             }
7535              
7536              
7537 32 50 33     173 unless ( $_matched || defined($score) )
7538             {
7539            
7540              
7541 32         58 $_[1] = $text; # NOT SURE THIS IS NEEDED
7542 32 50       71 Parse::RecDescent::_trace(q{<>},
7543             Parse::RecDescent::_tracefirst($_[1]),
7544             q{expr9op},
7545             $tracelevel)
7546             if defined $::RD_TRACE;
7547 32         252 return undef;
7548             }
7549 0 0 0     0 if (!defined($return) && defined($score))
7550             {
7551 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7552             q{expr9op},
7553             $tracelevel)
7554             if defined $::RD_TRACE;
7555 0         0 $return = $score_return;
7556             }
7557 0         0 splice @{$thisparser->{errors}}, $err_at;
  0         0  
7558 0 0       0 $return = $item[$#item] unless defined $return;
7559 0 0       0 if (defined $::RD_TRACE)
7560             {
7561 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7562             $return . q{])}, "",
7563             q{expr9op},
7564             $tracelevel);
7565 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7566             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7567             Parse::RecDescent::_tracefirst($text),
7568             , q{expr9op},
7569             $tracelevel)
7570             }
7571 0         0 $_[1] = $text;
7572 0         0 return $return;
7573             }
7574              
7575             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7576             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::conditional
7577             {
7578 11     11   876 my $thisparser = $_[0];
7579 4     4   25 use vars q{$tracelevel};
  4         8  
  4         1596  
7580 11   50     73 local $tracelevel = ($tracelevel||0)+1;
7581 11         21 $ERRORS = 0;
7582 11         32 my $thisrule = $thisparser->{"rules"}{"conditional"};
7583            
7584 11 50       45 Parse::RecDescent::_trace(q{Trying rule: [conditional]},
7585             Parse::RecDescent::_tracefirst($_[1]),
7586             q{conditional},
7587             $tracelevel)
7588             if defined $::RD_TRACE;
7589              
7590            
7591 11         19 my $err_at = @{$thisparser->{errors}};
  11         28  
7592              
7593 11         20 my $score;
7594             my $score_return;
7595 0         0 my $_tok;
7596 11         16 my $return = undef;
7597 11         13 my $_matched=0;
7598 11         26 my $commit=0;
7599 11         21 my @item = ();
7600 11         23 my %item = ();
7601 11   33     37 my $repeating = defined($_[2]) && $_[2];
7602 11   33     38 my $_noactions = defined($_[3]) && $_[3];
7603 11 50       37 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  11         15  
  11         39  
7604 11 50       99 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7605 11         15 my $text;
7606 11         21 my $lastsep="";
7607 11         15 my $current_match;
7608 11         62 my $expectation = new Parse::RecDescent::Expectation(q{expr});
7609 11         125 $expectation->at($_[1]);
7610            
7611 11         60 my $thisline;
7612 11         74 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7613              
7614            
7615              
7616 11   33     153 while (!$_matched && !$commit)
7617             {
7618            
7619 11 50       33 Parse::RecDescent::_trace(q{Trying production: [expr /\\Z/]},
7620             Parse::RecDescent::_tracefirst($_[1]),
7621             q{conditional},
7622             $tracelevel)
7623             if defined $::RD_TRACE;
7624 11         43 my $thisprod = $thisrule->{"prods"}[0];
7625 11         22 $text = $_[1];
7626 11         19 my $_savetext;
7627 11         21 @item = (q{conditional});
7628 11         36 %item = (__RULE__ => q{conditional});
7629 11         17 my $repcount = 0;
7630              
7631              
7632 11 50       29 Parse::RecDescent::_trace(q{Trying subrule: [expr]},
7633             Parse::RecDescent::_tracefirst($text),
7634             q{conditional},
7635             $tracelevel)
7636             if defined $::RD_TRACE;
7637 4     4   25 if (1) { no strict qw{refs};
  4         9  
  4         3361  
  11         18  
7638 11         44 $expectation->is(q{})->at($text);
7639 11 50   11   139 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  11         27  
7640             {
7641            
7642 0 0       0 Parse::RecDescent::_trace(q{<>},
7643             Parse::RecDescent::_tracefirst($text),
7644             q{conditional},
7645             $tracelevel)
7646             if defined $::RD_TRACE;
7647 0         0 $expectation->failed();
7648 0         0 last;
7649             }
7650 11 50       67 Parse::RecDescent::_trace(q{>>Matched subrule: [expr]<< (return value: [}
7651             . $_tok . q{]},
7652            
7653             Parse::RecDescent::_tracefirst($text),
7654             q{conditional},
7655             $tracelevel)
7656             if defined $::RD_TRACE;
7657 11         33 $item{q{expr}} = $_tok;
7658 11         22 push @item, $_tok;
7659            
7660             }
7661              
7662 11 50       33 Parse::RecDescent::_trace(q{Trying terminal: [/\\Z/]}, Parse::RecDescent::_tracefirst($text),
7663             q{conditional},
7664             $tracelevel)
7665             if defined $::RD_TRACE;
7666 11         23 $lastsep = "";
7667 11         41 $expectation->is(q{/\\Z/})->at($text);
7668            
7669              
7670 11 50 33     146 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:\Z)/)
  11 50       111  
7671             {
7672            
7673 0         0 $expectation->failed();
7674 0 0       0 Parse::RecDescent::_trace(q{<>},
7675             Parse::RecDescent::_tracefirst($text))
7676             if defined $::RD_TRACE;
7677              
7678 0         0 last;
7679             }
7680 11         87 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7681 11         46 substr($text,0,length($current_match),q{});
7682 11 50       30 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7683             . $current_match . q{])},
7684             Parse::RecDescent::_tracefirst($text))
7685             if defined $::RD_TRACE;
7686 11         35 push @item, $item{__PATTERN1__}=$current_match;
7687            
7688              
7689 11 50       38 Parse::RecDescent::_trace(q{Trying action},
7690             Parse::RecDescent::_tracefirst($text),
7691             q{conditional},
7692             $tracelevel)
7693             if defined $::RD_TRACE;
7694            
7695              
7696 11 50       27 $_tok = ($_noactions) ? 0 : do { $item[1] };
  11         20  
7697 11 50       35 unless (defined $_tok)
7698             {
7699 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
7700             if defined $::RD_TRACE;
7701 0         0 last;
7702             }
7703 11 50       24 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7704             . $_tok . q{])},
7705             Parse::RecDescent::_tracefirst($text))
7706             if defined $::RD_TRACE;
7707 11         20 push @item, $_tok;
7708 11         23 $item{__ACTION1__}=$_tok;
7709            
7710              
7711              
7712 11 50       27 Parse::RecDescent::_trace(q{>>Matched production: [expr /\\Z/]<<},
7713             Parse::RecDescent::_tracefirst($text),
7714             q{conditional},
7715             $tracelevel)
7716             if defined $::RD_TRACE;
7717 11         15 $_matched = 1;
7718 11         25 last;
7719             }
7720              
7721              
7722 11 50 33     30 unless ( $_matched || defined($score) )
7723             {
7724            
7725              
7726 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
7727 0 0       0 Parse::RecDescent::_trace(q{<>},
7728             Parse::RecDescent::_tracefirst($_[1]),
7729             q{conditional},
7730             $tracelevel)
7731             if defined $::RD_TRACE;
7732 0         0 return undef;
7733             }
7734 11 50 33     59 if (!defined($return) && defined($score))
7735             {
7736 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7737             q{conditional},
7738             $tracelevel)
7739             if defined $::RD_TRACE;
7740 0         0 $return = $score_return;
7741             }
7742 11         13 splice @{$thisparser->{errors}}, $err_at;
  11         32  
7743 11 50       37 $return = $item[$#item] unless defined $return;
7744 11 50       30 if (defined $::RD_TRACE)
7745             {
7746 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7747             $return . q{])}, "",
7748             q{conditional},
7749             $tracelevel);
7750 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7751             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7752             Parse::RecDescent::_tracefirst($text),
7753             , q{conditional},
7754             $tracelevel)
7755             }
7756 11         24 $_[1] = $text;
7757 11         120 return $return;
7758             }
7759              
7760             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7761             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr14op
7762             {
7763 45     45   73 my $thisparser = $_[0];
7764 4     4   27 use vars q{$tracelevel};
  4         10  
  4         4432  
7765 45   50     160 local $tracelevel = ($tracelevel||0)+1;
7766 45         91 $ERRORS = 0;
7767 45         116 my $thisrule = $thisparser->{"rules"}{"expr14op"};
7768            
7769 45 50       100 Parse::RecDescent::_trace(q{Trying rule: [expr14op]},
7770             Parse::RecDescent::_tracefirst($_[1]),
7771             q{expr14op},
7772             $tracelevel)
7773             if defined $::RD_TRACE;
7774              
7775            
7776 45         65 my $err_at = @{$thisparser->{errors}};
  45         94  
7777              
7778 45         70 my $score;
7779             my $score_return;
7780 0         0 my $_tok;
7781 45         62 my $return = undef;
7782 45         60 my $_matched=0;
7783 45         48 my $commit=0;
7784 45         78 my @item = ();
7785 45         76 my %item = ();
7786 45   33     155 my $repeating = defined($_[2]) && $_[2];
7787 45   33     159 my $_noactions = defined($_[3]) && $_[3];
7788 45 50       102 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  45         61  
  45         92  
7789 45 50       150 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7790 45         53 my $text;
7791 45         69 my $lastsep="";
7792 45         54 my $current_match;
7793 45         190 my $expectation = new Parse::RecDescent::Expectation(q{/(\\+|-|\\.)/});
7794 45         404 $expectation->at($_[1]);
7795            
7796 45         187 my $thisline;
7797 45         225 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7798              
7799            
7800              
7801 45   33     449 while (!$_matched && !$commit)
7802             {
7803            
7804 45 50       105 Parse::RecDescent::_trace(q{Trying production: [/(\\+|-|\\.)/]},
7805             Parse::RecDescent::_tracefirst($_[1]),
7806             q{expr14op},
7807             $tracelevel)
7808             if defined $::RD_TRACE;
7809 45         112 my $thisprod = $thisrule->{"prods"}[0];
7810 45         91 $text = $_[1];
7811 45         49 my $_savetext;
7812 45         90 @item = (q{expr14op});
7813 45         109 %item = (__RULE__ => q{expr14op});
7814 45         70 my $repcount = 0;
7815              
7816              
7817 45 50       101 Parse::RecDescent::_trace(q{Trying terminal: [/(\\+|-|\\.)/]}, Parse::RecDescent::_tracefirst($text),
7818             q{expr14op},
7819             $tracelevel)
7820             if defined $::RD_TRACE;
7821 45         61 $lastsep = "";
7822 45         153 $expectation->is(q{})->at($text);
7823            
7824              
7825 45 100 66     558 unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ m/\A(?:(\+|-|\.))/)
  45 100       460  
7826             {
7827            
7828 43         149 $expectation->failed();
7829 43 50       200 Parse::RecDescent::_trace(q{<>},
7830             Parse::RecDescent::_tracefirst($text))
7831             if defined $::RD_TRACE;
7832              
7833 43         119 last;
7834             }
7835 2         12 $current_match = substr($text, $-[0], $+[0] - $-[0]);
7836 2         8 substr($text,0,length($current_match),q{});
7837 2 50       7 Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7838             . $current_match . q{])},
7839             Parse::RecDescent::_tracefirst($text))
7840             if defined $::RD_TRACE;
7841 2         7 push @item, $item{__PATTERN1__}=$current_match;
7842            
7843              
7844 2 50       9 Parse::RecDescent::_trace(q{Trying action},
7845             Parse::RecDescent::_tracefirst($text),
7846             q{expr14op},
7847             $tracelevel)
7848             if defined $::RD_TRACE;
7849            
7850              
7851 2 50       6 $_tok = ($_noactions) ? 0 : do { $item[1] };
  2         4  
7852 2 50       8 unless (defined $_tok)
7853             {
7854 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
7855             if defined $::RD_TRACE;
7856 0         0 last;
7857             }
7858 2 50       6 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7859             . $_tok . q{])},
7860             Parse::RecDescent::_tracefirst($text))
7861             if defined $::RD_TRACE;
7862 2         3 push @item, $_tok;
7863 2         7 $item{__ACTION1__}=$_tok;
7864            
7865              
7866              
7867 2 50       5 Parse::RecDescent::_trace(q{>>Matched production: [/(\\+|-|\\.)/]<<},
7868             Parse::RecDescent::_tracefirst($text),
7869             q{expr14op},
7870             $tracelevel)
7871             if defined $::RD_TRACE;
7872 2         3 $_matched = 1;
7873 2         5 last;
7874             }
7875              
7876              
7877 45 100 66     258 unless ( $_matched || defined($score) )
7878             {
7879            
7880              
7881 43         77 $_[1] = $text; # NOT SURE THIS IS NEEDED
7882 43 50       97 Parse::RecDescent::_trace(q{<>},
7883             Parse::RecDescent::_tracefirst($_[1]),
7884             q{expr14op},
7885             $tracelevel)
7886             if defined $::RD_TRACE;
7887 43         346 return undef;
7888             }
7889 2 50 33     13 if (!defined($return) && defined($score))
7890             {
7891 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7892             q{expr14op},
7893             $tracelevel)
7894             if defined $::RD_TRACE;
7895 0         0 $return = $score_return;
7896             }
7897 2         4 splice @{$thisparser->{errors}}, $err_at;
  2         6  
7898 2 50       8 $return = $item[$#item] unless defined $return;
7899 2 50       8 if (defined $::RD_TRACE)
7900             {
7901 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7902             $return . q{])}, "",
7903             q{expr14op},
7904             $tracelevel);
7905 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
7906             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7907             Parse::RecDescent::_tracefirst($text),
7908             , q{expr14op},
7909             $tracelevel)
7910             }
7911 2         21 $_[1] = $text;
7912 2         22 return $return;
7913             }
7914              
7915             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7916             sub Parse::RecDescent::HTML::Transmorgify::Conditionals::expr9
7917             {
7918 32     32   71 my $thisparser = $_[0];
7919 4     4   38 use vars q{$tracelevel};
  4         11  
  4         2043  
7920 32   50     108 local $tracelevel = ($tracelevel||0)+1;
7921 32         49 $ERRORS = 0;
7922 32         93 my $thisrule = $thisparser->{"rules"}{"expr9"};
7923            
7924 32 50       85 Parse::RecDescent::_trace(q{Trying rule: [expr9]},
7925             Parse::RecDescent::_tracefirst($_[1]),
7926             q{expr9},
7927             $tracelevel)
7928             if defined $::RD_TRACE;
7929              
7930            
7931 32         35 my $err_at = @{$thisparser->{errors}};
  32         72  
7932              
7933 32         47 my $score;
7934             my $score_return;
7935 0         0 my $_tok;
7936 32         35 my $return = undef;
7937 32         39 my $_matched=0;
7938 32         46 my $commit=0;
7939 32         52 my @item = ();
7940 32         60 my %item = ();
7941 32   33     186 my $repeating = defined($_[2]) && $_[2];
7942 32   33     98 my $_noactions = defined($_[3]) && $_[3];
7943 32 50       77 my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  32         36  
  32         83  
7944 32 50       94 my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7945 32         35 my $text;
7946 32         72 my $lastsep="";
7947 32         34 my $current_match;
7948 32         119 my $expectation = new Parse::RecDescent::Expectation(q{});
7949 32         269 $expectation->at($_[1]);
7950            
7951 32         131 my $thisline;
7952 32         146 tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7953              
7954            
7955              
7956 32   33     350 while (!$_matched && !$commit)
7957             {
7958            
7959 32 50       76 Parse::RecDescent::_trace(q{Trying production: []},
7960             Parse::RecDescent::_tracefirst($_[1]),
7961             q{expr9},
7962             $tracelevel)
7963             if defined $::RD_TRACE;
7964 32         94 my $thisprod = $thisrule->{"prods"}[0];
7965 32         48 $text = $_[1];
7966 32         43 my $_savetext;
7967 32         79 @item = (q{expr9});
7968 32         77 %item = (__RULE__ => q{expr9});
7969 32         65 my $repcount = 0;
7970              
7971              
7972 32 50       85 Parse::RecDescent::_trace(q{Trying operator: []},
7973             Parse::RecDescent::_tracefirst($text),
7974             q{expr9},
7975             $tracelevel)
7976             if defined $::RD_TRACE;
7977 32         96 $expectation->is(q{})->at($text);
7978              
7979 32         220 $_tok = undef;
7980 32         44 OPLOOP: while (1)
7981             {
7982 32         41 $repcount = 0;
7983 32         56 my @item;
7984            
7985             # MATCH LEFTARG
7986            
7987 32 50       82 Parse::RecDescent::_trace(q{Trying subrule: [expr10]},
7988             Parse::RecDescent::_tracefirst($text),
7989             q{expr9},
7990             $tracelevel)
7991             if defined $::RD_TRACE;
7992 4     4   27 if (1) { no strict qw{refs};
  4         10  
  4         1032  
  32         44  
7993 32         103 $expectation->is(q{expr10})->at($text);
7994 32 50   32   383 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr10($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         90  
7995             {
7996            
7997 0 0       0 Parse::RecDescent::_trace(q{<>},
7998             Parse::RecDescent::_tracefirst($text),
7999             q{expr9},
8000             $tracelevel)
8001             if defined $::RD_TRACE;
8002 0         0 $expectation->failed();
8003 0         0 last;
8004             }
8005 32 50       168 Parse::RecDescent::_trace(q{>>Matched subrule: [expr10]<< (return value: [}
8006             . $_tok . q{]},
8007            
8008             Parse::RecDescent::_tracefirst($text),
8009             q{expr9},
8010             $tracelevel)
8011             if defined $::RD_TRACE;
8012 32         83 $item{q{expr10}} = $_tok;
8013 32         61 push @item, $_tok;
8014            
8015             }
8016              
8017              
8018 32         45 $repcount++;
8019              
8020 32         51 my $savetext = $text;
8021 32         38 my $backtrack;
8022              
8023             # MATCH (OP RIGHTARG)(s)
8024 32         84 while ($repcount < 100000000)
8025             {
8026 32         34 $backtrack = 0;
8027            
8028 32 50       61 Parse::RecDescent::_trace(q{Trying subrule: [expr9op]},
8029             Parse::RecDescent::_tracefirst($text),
8030             q{expr9},
8031             $tracelevel)
8032             if defined $::RD_TRACE;
8033 4     4   24 if (1) { no strict qw{refs};
  4         8  
  4         878  
  32         50  
8034 32         120 $expectation->is(q{expr9op})->at($text);
8035 32 50   32   403 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr9op($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  32         83  
8036             {
8037            
8038 32 50       66 Parse::RecDescent::_trace(q{<>},
8039             Parse::RecDescent::_tracefirst($text),
8040             q{expr9},
8041             $tracelevel)
8042             if defined $::RD_TRACE;
8043 32         101 $expectation->failed();
8044 32         317 last;
8045             }
8046 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr9op]<< (return value: [}
8047             . $_tok . q{]},
8048            
8049             Parse::RecDescent::_tracefirst($text),
8050             q{expr9},
8051             $tracelevel)
8052             if defined $::RD_TRACE;
8053 0         0 $item{q{expr9op}} = $_tok;
8054 0         0 push @item, $_tok;
8055            
8056             }
8057              
8058 0         0 $backtrack=1;
8059            
8060            
8061 0 0       0 Parse::RecDescent::_trace(q{Trying subrule: [expr10]},
8062             Parse::RecDescent::_tracefirst($text),
8063             q{expr9},
8064             $tracelevel)
8065             if defined $::RD_TRACE;
8066 4     4   25 if (1) { no strict qw{refs};
  4         9  
  4         42541  
  0         0  
8067 0         0 $expectation->is(q{expr10})->at($text);
8068 0 0   0   0 unless (defined ($_tok = Parse::RecDescent::HTML::Transmorgify::Conditionals::expr10($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0         0  
8069             {
8070            
8071 0 0       0 Parse::RecDescent::_trace(q{<>},
8072             Parse::RecDescent::_tracefirst($text),
8073             q{expr9},
8074             $tracelevel)
8075             if defined $::RD_TRACE;
8076 0         0 $expectation->failed();
8077 0         0 last;
8078             }
8079 0 0       0 Parse::RecDescent::_trace(q{>>Matched subrule: [expr10]<< (return value: [}
8080             . $_tok . q{]},
8081            
8082             Parse::RecDescent::_tracefirst($text),
8083             q{expr9},
8084             $tracelevel)
8085             if defined $::RD_TRACE;
8086 0         0 $item{q{expr10}} = $_tok;
8087 0         0 push @item, $_tok;
8088            
8089             }
8090              
8091 0         0 $savetext = $text;
8092 0         0 $repcount++;
8093             }
8094 32         108 $text = $savetext;
8095 32 50       68 pop @item if $backtrack;
8096              
8097 32 50       79 unless (@item) { undef $_tok; last }
  0         0  
  0         0  
8098 32         72 $_tok = [ @item ];
8099 32         62 last;
8100             }
8101              
8102 32 50       94 unless ($repcount>=1)
8103             {
8104 0 0       0 Parse::RecDescent::_trace(q{<]>>},
8105             Parse::RecDescent::_tracefirst($text),
8106             q{expr9},
8107             $tracelevel)
8108             if defined $::RD_TRACE;
8109 0         0 $expectation->failed();
8110 0         0 last;
8111             }
8112 32 50       83 Parse::RecDescent::_trace(q{>>Matched operator: []<< (return value: [}
8113 0 0       0 . qq{@{$_tok||[]}} . q{]},
8114             Parse::RecDescent::_tracefirst($text),
8115             q{expr9},
8116             $tracelevel)
8117             if defined $::RD_TRACE;
8118              
8119 32   50     128 push @item, $item{__DIRECTIVE1__}=$_tok||[];
8120              
8121              
8122 32 50       77 Parse::RecDescent::_trace(q{Trying action},
8123             Parse::RecDescent::_tracefirst($text),
8124             q{expr9},
8125             $tracelevel)
8126             if defined $::RD_TRACE;
8127            
8128              
8129 32 50       68 $_tok = ($_noactions) ? 0 : do { left(@item) };
  32         75  
8130 32 50       95 unless (defined $_tok)
8131             {
8132 0 0       0 Parse::RecDescent::_trace(q{<> (return value: [undef])})
8133             if defined $::RD_TRACE;
8134 0         0 last;
8135             }
8136 32 50       70 Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8137             . $_tok . q{])},
8138             Parse::RecDescent::_tracefirst($text))
8139             if defined $::RD_TRACE;
8140 32         56 push @item, $_tok;
8141 32         70 $item{__ACTION1__}=$_tok;
8142            
8143              
8144              
8145 32 50       67 Parse::RecDescent::_trace(q{>>Matched production: []<<},
8146             Parse::RecDescent::_tracefirst($text),
8147             q{expr9},
8148             $tracelevel)
8149             if defined $::RD_TRACE;
8150 32         44 $_matched = 1;
8151 32         74 last;
8152             }
8153              
8154              
8155 32 50 33     77 unless ( $_matched || defined($score) )
8156             {
8157            
8158              
8159 0         0 $_[1] = $text; # NOT SURE THIS IS NEEDED
8160 0 0       0 Parse::RecDescent::_trace(q{<>},
8161             Parse::RecDescent::_tracefirst($_[1]),
8162             q{expr9},
8163             $tracelevel)
8164             if defined $::RD_TRACE;
8165 0         0 return undef;
8166             }
8167 32 50 33     164 if (!defined($return) && defined($score))
8168             {
8169 0 0       0 Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8170             q{expr9},
8171             $tracelevel)
8172             if defined $::RD_TRACE;
8173 0         0 $return = $score_return;
8174             }
8175 32         51 splice @{$thisparser->{errors}}, $err_at;
  32         77  
8176 32 50       98 $return = $item[$#item] unless defined $return;
8177 32 50       78 if (defined $::RD_TRACE)
8178             {
8179 0         0 Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8180             $return . q{])}, "",
8181             q{expr9},
8182             $tracelevel);
8183 0         0 Parse::RecDescent::_trace(q{(consumed: [} .
8184             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8185             Parse::RecDescent::_tracefirst($text),
8186             , q{expr9},
8187             $tracelevel)
8188             }
8189 32         69 $_[1] = $text;
8190 32         343 return $return;
8191             }
8192             }
8193 5     5 0 5517 package HTML::Transmorgify::Conditionals; sub new { my $self = bless( {
8194             '_precompiled' => 1,
8195             'localvars' => '',
8196             'startcode' => '',
8197             'namespace' => 'Parse::RecDescent::HTML::Transmorgify::Conditionals',
8198             'rules' => {
8199             'expr2' => bless( {
8200             'impcount' => 0,
8201             'calls' => [
8202             'expr5',
8203             'expr2op'
8204             ],
8205             'changed' => 0,
8206             'opcount' => 0,
8207             'prods' => [
8208             bless( {
8209             'number' => 0,
8210             'strcount' => 0,
8211             'dircount' => 1,
8212             'uncommit' => undef,
8213             'error' => undef,
8214             'patcount' => 0,
8215             'actcount' => 1,
8216             'op' => [],
8217             'items' => [
8218             bless( {
8219             'expected' => '',
8220             'min' => 1,
8221             'name' => '',
8222             'max' => 100000000,
8223             'leftarg' => bless( {
8224             'subrule' => 'expr5',
8225             'matchrule' => 0,
8226             'implicit' => undef,
8227             'argcode' => undef,
8228             'lookahead' => 0,
8229             'line' => 93
8230             }, 'Parse::RecDescent::Subrule' ),
8231             'rightarg' => bless( {
8232             'subrule' => 'expr5',
8233             'matchrule' => 0,
8234             'implicit' => undef,
8235             'argcode' => undef,
8236             'lookahead' => 0,
8237             'line' => 93
8238             }, 'Parse::RecDescent::Subrule' ),
8239             'hashname' => '__DIRECTIVE1__',
8240             'type' => 'leftop',
8241             'op' => bless( {
8242             'subrule' => 'expr2op',
8243             'matchrule' => 0,
8244             'implicit' => undef,
8245             'argcode' => undef,
8246             'lookahead' => 0,
8247             'line' => 93
8248             }, 'Parse::RecDescent::Subrule' )
8249             }, 'Parse::RecDescent::Operator' ),
8250             bless( {
8251             'hashname' => '__ACTION1__',
8252             'lookahead' => 0,
8253             'line' => 94,
8254             'code' => '{ left(@item) }'
8255             }, 'Parse::RecDescent::Action' )
8256             ],
8257             'line' => undef
8258             }, 'Parse::RecDescent::Production' )
8259             ],
8260             'name' => 'expr2',
8261             'vars' => '',
8262             'line' => 93
8263             }, 'Parse::RecDescent::Rule' ),
8264             'expr15op' => bless( {
8265             'impcount' => 0,
8266             'calls' => [],
8267             'changed' => 0,
8268             'opcount' => 0,
8269             'prods' => [
8270             bless( {
8271             'number' => 0,
8272             'strcount' => 0,
8273             'dircount' => 0,
8274             'uncommit' => undef,
8275             'error' => undef,
8276             'patcount' => 1,
8277             'actcount' => 1,
8278             'items' => [
8279             bless( {
8280             'pattern' => '(\\*|\\/|%|x)',
8281             'hashname' => '__PATTERN1__',
8282             'description' => '/(\\\\*|\\\\/|%|x)/',
8283             'lookahead' => 0,
8284             'rdelim' => '/',
8285             'line' => 160,
8286             'mod' => '',
8287             'ldelim' => '/'
8288             }, 'Parse::RecDescent::Token' ),
8289             bless( {
8290             'hashname' => '__ACTION1__',
8291             'lookahead' => 0,
8292             'line' => 161,
8293             'code' => '{ $item[1] }'
8294             }, 'Parse::RecDescent::Action' )
8295             ],
8296             'line' => undef
8297             }, 'Parse::RecDescent::Production' )
8298             ],
8299             'name' => 'expr15op',
8300             'vars' => '',
8301             'line' => 160
8302             }, 'Parse::RecDescent::Rule' ),
8303             'expr15a' => bless( {
8304             'impcount' => 0,
8305             'calls' => [
8306             'expr16'
8307             ],
8308             'changed' => 0,
8309             'opcount' => 0,
8310             'prods' => [
8311             bless( {
8312             'number' => 0,
8313             'strcount' => 1,
8314             'dircount' => 0,
8315             'uncommit' => undef,
8316             'error' => undef,
8317             'patcount' => 0,
8318             'actcount' => 1,
8319             'items' => [
8320             bless( {
8321             'pattern' => '-',
8322             'hashname' => '__STRING1__',
8323             'description' => '\'-\'',
8324             'lookahead' => 0,
8325             'line' => 163
8326             }, 'Parse::RecDescent::Literal' ),
8327             bless( {
8328             'subrule' => 'expr16',
8329             'matchrule' => 0,
8330             'implicit' => undef,
8331             'argcode' => undef,
8332             'lookahead' => 0,
8333             'line' => 163
8334             }, 'Parse::RecDescent::Subrule' ),
8335             bless( {
8336             'hashname' => '__ACTION1__',
8337             'lookahead' => 0,
8338             'line' => 164,
8339             'code' => '{ binary(0, \'-\', $item[1]) }'
8340             }, 'Parse::RecDescent::Action' )
8341             ],
8342             'line' => undef
8343             }, 'Parse::RecDescent::Production' ),
8344             bless( {
8345             'number' => 1,
8346             'strcount' => 0,
8347             'dircount' => 0,
8348             'uncommit' => undef,
8349             'error' => undef,
8350             'patcount' => 0,
8351             'actcount' => 1,
8352             'items' => [
8353             bless( {
8354             'subrule' => 'expr16',
8355             'matchrule' => 0,
8356             'implicit' => undef,
8357             'argcode' => undef,
8358             'lookahead' => 0,
8359             'line' => 165
8360             }, 'Parse::RecDescent::Subrule' ),
8361             bless( {
8362             'hashname' => '__ACTION1__',
8363             'lookahead' => 0,
8364             'line' => 166,
8365             'code' => '{ $item[1] }'
8366             }, 'Parse::RecDescent::Action' )
8367             ],
8368             'line' => 165
8369             }, 'Parse::RecDescent::Production' )
8370             ],
8371             'name' => 'expr15a',
8372             'vars' => '',
8373             'line' => 163
8374             }, 'Parse::RecDescent::Rule' ),
8375             'expr10' => bless( {
8376             'impcount' => 0,
8377             'calls' => [
8378             'expr11',
8379             'expr10op'
8380             ],
8381             'changed' => 0,
8382             'opcount' => 0,
8383             'prods' => [
8384             bless( {
8385             'number' => 0,
8386             'strcount' => 0,
8387             'dircount' => 1,
8388             'uncommit' => undef,
8389             'error' => undef,
8390             'patcount' => 0,
8391             'actcount' => 1,
8392             'op' => [],
8393             'items' => [
8394             bless( {
8395             'expected' => '',
8396             'min' => 1,
8397             'name' => '',
8398             'max' => 100000000,
8399             'leftarg' => bless( {
8400             'subrule' => 'expr11',
8401             'matchrule' => 0,
8402             'implicit' => undef,
8403             'argcode' => undef,
8404             'lookahead' => 0,
8405             'line' => 127
8406             }, 'Parse::RecDescent::Subrule' ),
8407             'rightarg' => bless( {
8408             'subrule' => 'expr11',
8409             'matchrule' => 0,
8410             'implicit' => undef,
8411             'argcode' => undef,
8412             'lookahead' => 0,
8413             'line' => 127
8414             }, 'Parse::RecDescent::Subrule' ),
8415             'hashname' => '__DIRECTIVE1__',
8416             'type' => 'leftop',
8417             'op' => bless( {
8418             'subrule' => 'expr10op',
8419             'matchrule' => 0,
8420             'implicit' => undef,
8421             'argcode' => undef,
8422             'lookahead' => 0,
8423             'line' => 127
8424             }, 'Parse::RecDescent::Subrule' )
8425             }, 'Parse::RecDescent::Operator' ),
8426             bless( {
8427             'hashname' => '__ACTION1__',
8428             'lookahead' => 0,
8429             'line' => 128,
8430             'code' => '{ left(@item) }'
8431             }, 'Parse::RecDescent::Action' )
8432             ],
8433             'line' => undef
8434             }, 'Parse::RecDescent::Production' )
8435             ],
8436             'name' => 'expr10',
8437             'vars' => '',
8438             'line' => 127
8439             }, 'Parse::RecDescent::Rule' ),
8440             'expr15' => bless( {
8441             'impcount' => 0,
8442             'calls' => [
8443             'expr15a',
8444             'expr15op'
8445             ],
8446             'changed' => 0,
8447             'opcount' => 0,
8448             'prods' => [
8449             bless( {
8450             'number' => 0,
8451             'strcount' => 0,
8452             'dircount' => 1,
8453             'uncommit' => undef,
8454             'error' => undef,
8455             'patcount' => 0,
8456             'actcount' => 1,
8457             'op' => [],
8458             'items' => [
8459             bless( {
8460             'expected' => '',
8461             'min' => 1,
8462             'name' => '',
8463             'max' => 100000000,
8464             'leftarg' => bless( {
8465             'subrule' => 'expr15a',
8466             'matchrule' => 0,
8467             'implicit' => undef,
8468             'argcode' => undef,
8469             'lookahead' => 0,
8470             'line' => 157
8471             }, 'Parse::RecDescent::Subrule' ),
8472             'rightarg' => bless( {
8473             'subrule' => 'expr15a',
8474             'matchrule' => 0,
8475             'implicit' => undef,
8476             'argcode' => undef,
8477             'lookahead' => 0,
8478             'line' => 157
8479             }, 'Parse::RecDescent::Subrule' ),
8480             'hashname' => '__DIRECTIVE1__',
8481             'type' => 'leftop',
8482             'op' => bless( {
8483             'subrule' => 'expr15op',
8484             'matchrule' => 0,
8485             'implicit' => undef,
8486             'argcode' => undef,
8487             'lookahead' => 0,
8488             'line' => 157
8489             }, 'Parse::RecDescent::Subrule' )
8490             }, 'Parse::RecDescent::Operator' ),
8491             bless( {
8492             'hashname' => '__ACTION1__',
8493             'lookahead' => 0,
8494             'line' => 158,
8495             'code' => '{ left(@item) }'
8496             }, 'Parse::RecDescent::Action' )
8497             ],
8498             'line' => undef
8499             }, 'Parse::RecDescent::Production' )
8500             ],
8501             'name' => 'expr15',
8502             'vars' => '',
8503             'line' => 157
8504             }, 'Parse::RecDescent::Rule' ),
8505             'expr11' => bless( {
8506             'impcount' => 0,
8507             'calls' => [
8508             'expr12',
8509             'expr11op'
8510             ],
8511             'changed' => 0,
8512             'opcount' => 0,
8513             'prods' => [
8514             bless( {
8515             'number' => 0,
8516             'strcount' => 0,
8517             'dircount' => 1,
8518             'uncommit' => undef,
8519             'error' => undef,
8520             'patcount' => 0,
8521             'actcount' => 1,
8522             'op' => [],
8523             'items' => [
8524             bless( {
8525             'expected' => '',
8526             'min' => 1,
8527             'name' => '',
8528             'max' => 100000000,
8529             'leftarg' => bless( {
8530             'subrule' => 'expr12',
8531             'matchrule' => 0,
8532             'implicit' => undef,
8533             'argcode' => undef,
8534             'lookahead' => 0,
8535             'line' => 133
8536             }, 'Parse::RecDescent::Subrule' ),
8537             'rightarg' => bless( {
8538             'subrule' => 'expr12',
8539             'matchrule' => 0,
8540             'implicit' => undef,
8541             'argcode' => undef,
8542             'lookahead' => 0,
8543             'line' => 133
8544             }, 'Parse::RecDescent::Subrule' ),
8545             'hashname' => '__DIRECTIVE1__',
8546             'type' => 'leftop',
8547             'op' => bless( {
8548             'subrule' => 'expr11op',
8549             'matchrule' => 0,
8550             'implicit' => undef,
8551             'argcode' => undef,
8552             'lookahead' => 0,
8553             'line' => 133
8554             }, 'Parse::RecDescent::Subrule' )
8555             }, 'Parse::RecDescent::Operator' ),
8556             bless( {
8557             'hashname' => '__ACTION1__',
8558             'lookahead' => 0,
8559             'line' => 134,
8560             'code' => '{ nonassoc(@item) }'
8561             }, 'Parse::RecDescent::Action' )
8562             ],
8563             'line' => undef
8564             }, 'Parse::RecDescent::Production' )
8565             ],
8566             'name' => 'expr11',
8567             'vars' => '',
8568             'line' => 133
8569             }, 'Parse::RecDescent::Rule' ),
8570             'expr12op' => bless( {
8571             'impcount' => 0,
8572             'calls' => [],
8573             'changed' => 0,
8574             'opcount' => 0,
8575             'prods' => [
8576             bless( {
8577             'number' => 0,
8578             'strcount' => 0,
8579             'dircount' => 0,
8580             'uncommit' => undef,
8581             'error' => undef,
8582             'patcount' => 1,
8583             'actcount' => 1,
8584             'items' => [
8585             bless( {
8586             'pattern' => '(<|>|<=|>=|lt|gt|le|ge)',
8587             'hashname' => '__PATTERN1__',
8588             'description' => '/(<|>|<=|>=|lt|gt|le|ge)/',
8589             'lookahead' => 0,
8590             'rdelim' => '/',
8591             'line' => 142,
8592             'mod' => '',
8593             'ldelim' => '/'
8594             }, 'Parse::RecDescent::Token' ),
8595             bless( {
8596             'hashname' => '__ACTION1__',
8597             'lookahead' => 0,
8598             'line' => 143,
8599             'code' => '{ $item[1] }'
8600             }, 'Parse::RecDescent::Action' )
8601             ],
8602             'line' => undef
8603             }, 'Parse::RecDescent::Production' )
8604             ],
8605             'name' => 'expr12op',
8606             'vars' => '',
8607             'line' => 142
8608             }, 'Parse::RecDescent::Rule' ),
8609             'expr8' => bless( {
8610             'impcount' => 0,
8611             'calls' => [
8612             'expr9',
8613             'expr8op'
8614             ],
8615             'changed' => 0,
8616             'opcount' => 0,
8617             'prods' => [
8618             bless( {
8619             'number' => 0,
8620             'strcount' => 0,
8621             'dircount' => 1,
8622             'uncommit' => undef,
8623             'error' => undef,
8624             'patcount' => 0,
8625             'actcount' => 1,
8626             'op' => [],
8627             'items' => [
8628             bless( {
8629             'expected' => '',
8630             'min' => 1,
8631             'name' => '',
8632             'max' => 100000000,
8633             'leftarg' => bless( {
8634             'subrule' => 'expr9',
8635             'matchrule' => 0,
8636             'implicit' => undef,
8637             'argcode' => undef,
8638             'lookahead' => 0,
8639             'line' => 115
8640             }, 'Parse::RecDescent::Subrule' ),
8641             'rightarg' => bless( {
8642             'subrule' => 'expr9',
8643             'matchrule' => 0,
8644             'implicit' => undef,
8645             'argcode' => undef,
8646             'lookahead' => 0,
8647             'line' => 115
8648             }, 'Parse::RecDescent::Subrule' ),
8649             'hashname' => '__DIRECTIVE1__',
8650             'type' => 'leftop',
8651             'op' => bless( {
8652             'subrule' => 'expr8op',
8653             'matchrule' => 0,
8654             'implicit' => undef,
8655             'argcode' => undef,
8656             'lookahead' => 0,
8657             'line' => 115
8658             }, 'Parse::RecDescent::Subrule' )
8659             }, 'Parse::RecDescent::Operator' ),
8660             bless( {
8661             'hashname' => '__ACTION1__',
8662             'lookahead' => 0,
8663             'line' => 116,
8664             'code' => '{ left(@item) }'
8665             }, 'Parse::RecDescent::Action' )
8666             ],
8667             'line' => undef
8668             }, 'Parse::RecDescent::Production' )
8669             ],
8670             'name' => 'expr8',
8671             'vars' => '',
8672             'line' => 115
8673             }, 'Parse::RecDescent::Rule' ),
8674             'expr5' => bless( {
8675             'impcount' => 0,
8676             'calls' => [
8677             'expr6'
8678             ],
8679             'changed' => 0,
8680             'opcount' => 0,
8681             'prods' => [
8682             bless( {
8683             'number' => 0,
8684             'strcount' => 1,
8685             'dircount' => 0,
8686             'uncommit' => undef,
8687             'error' => undef,
8688             'patcount' => 0,
8689             'actcount' => 1,
8690             'items' => [
8691             bless( {
8692             'pattern' => 'not',
8693             'hashname' => '__STRING1__',
8694             'description' => '\'not\'',
8695             'lookahead' => 0,
8696             'line' => 99
8697             }, 'Parse::RecDescent::InterpLit' ),
8698             bless( {
8699             'subrule' => 'expr6',
8700             'matchrule' => 0,
8701             'implicit' => undef,
8702             'argcode' => undef,
8703             'lookahead' => 0,
8704             'line' => 99
8705             }, 'Parse::RecDescent::Subrule' ),
8706             bless( {
8707             'hashname' => '__ACTION1__',
8708             'lookahead' => 0,
8709             'line' => 100,
8710             'code' => '{ unary(\'not\', $item[2]) }'
8711             }, 'Parse::RecDescent::Action' )
8712             ],
8713             'line' => undef
8714             }, 'Parse::RecDescent::Production' ),
8715             bless( {
8716             'number' => 1,
8717             'strcount' => 0,
8718             'dircount' => 0,
8719             'uncommit' => undef,
8720             'error' => undef,
8721             'patcount' => 0,
8722             'actcount' => 1,
8723             'items' => [
8724             bless( {
8725             'subrule' => 'expr6',
8726             'matchrule' => 0,
8727             'implicit' => undef,
8728             'argcode' => undef,
8729             'lookahead' => 0,
8730             'line' => 101
8731             }, 'Parse::RecDescent::Subrule' ),
8732             bless( {
8733             'hashname' => '__ACTION1__',
8734             'lookahead' => 0,
8735             'line' => 102,
8736             'code' => '{ $item[1] }'
8737             }, 'Parse::RecDescent::Action' )
8738             ],
8739             'line' => 101
8740             }, 'Parse::RecDescent::Production' )
8741             ],
8742             'name' => 'expr5',
8743             'vars' => '',
8744             'line' => 99
8745             }, 'Parse::RecDescent::Rule' ),
8746             'expr14' => bless( {
8747             'impcount' => 0,
8748             'calls' => [
8749             'expr15',
8750             'expr14op'
8751             ],
8752             'changed' => 0,
8753             'opcount' => 0,
8754             'prods' => [
8755             bless( {
8756             'number' => 0,
8757             'strcount' => 0,
8758             'dircount' => 1,
8759             'uncommit' => undef,
8760             'error' => undef,
8761             'patcount' => 0,
8762             'actcount' => 1,
8763             'op' => [],
8764             'items' => [
8765             bless( {
8766             'expected' => '',
8767             'min' => 1,
8768             'name' => '',
8769             'max' => 100000000,
8770             'leftarg' => bless( {
8771             'subrule' => 'expr15',
8772             'matchrule' => 0,
8773             'implicit' => undef,
8774             'argcode' => undef,
8775             'lookahead' => 0,
8776             'line' => 151
8777             }, 'Parse::RecDescent::Subrule' ),
8778             'rightarg' => bless( {
8779             'subrule' => 'expr15',
8780             'matchrule' => 0,
8781             'implicit' => undef,
8782             'argcode' => undef,
8783             'lookahead' => 0,
8784             'line' => 151
8785             }, 'Parse::RecDescent::Subrule' ),
8786             'hashname' => '__DIRECTIVE1__',
8787             'type' => 'leftop',
8788             'op' => bless( {
8789             'subrule' => 'expr14op',
8790             'matchrule' => 0,
8791             'implicit' => undef,
8792             'argcode' => undef,
8793             'lookahead' => 0,
8794             'line' => 151
8795             }, 'Parse::RecDescent::Subrule' )
8796             }, 'Parse::RecDescent::Operator' ),
8797             bless( {
8798             'hashname' => '__ACTION1__',
8799             'lookahead' => 0,
8800             'line' => 152,
8801             'code' => '{ left(@item) }'
8802             }, 'Parse::RecDescent::Action' )
8803             ],
8804             'line' => undef
8805             }, 'Parse::RecDescent::Production' )
8806             ],
8807             'name' => 'expr14',
8808             'vars' => '',
8809             'line' => 151
8810             }, 'Parse::RecDescent::Rule' ),
8811             'expr6' => bless( {
8812             'impcount' => 0,
8813             'calls' => [
8814             'expr7',
8815             'expr6'
8816             ],
8817             'changed' => 0,
8818             'opcount' => 0,
8819             'prods' => [
8820             bless( {
8821             'number' => 0,
8822             'strcount' => 2,
8823             'dircount' => 0,
8824             'uncommit' => undef,
8825             'error' => undef,
8826             'patcount' => 0,
8827             'actcount' => 1,
8828             'items' => [
8829             bless( {
8830             'subrule' => 'expr7',
8831             'matchrule' => 0,
8832             'implicit' => undef,
8833             'argcode' => undef,
8834             'lookahead' => 0,
8835             'line' => 104
8836             }, 'Parse::RecDescent::Subrule' ),
8837             bless( {
8838             'pattern' => '?',
8839             'hashname' => '__STRING1__',
8840             'description' => '\'?\'',
8841             'lookahead' => 0,
8842             'line' => 104
8843             }, 'Parse::RecDescent::InterpLit' ),
8844             bless( {
8845             'subrule' => 'expr7',
8846             'matchrule' => 0,
8847             'implicit' => undef,
8848             'argcode' => undef,
8849             'lookahead' => 0,
8850             'line' => 104
8851             }, 'Parse::RecDescent::Subrule' ),
8852             bless( {
8853             'pattern' => ':',
8854             'hashname' => '__STRING2__',
8855             'description' => '\':\'',
8856             'lookahead' => 0,
8857             'line' => 104
8858             }, 'Parse::RecDescent::InterpLit' ),
8859             bless( {
8860             'subrule' => 'expr6',
8861             'matchrule' => 0,
8862             'implicit' => undef,
8863             'argcode' => undef,
8864             'lookahead' => 0,
8865             'line' => 104
8866             }, 'Parse::RecDescent::Subrule' ),
8867             bless( {
8868             'hashname' => '__ACTION1__',
8869             'lookahead' => 0,
8870             'line' => 105,
8871             'code' => '{ sub { run($item[1]) ? run($item[3]) : run($item[5]) } }'
8872             }, 'Parse::RecDescent::Action' )
8873             ],
8874             'line' => undef
8875             }, 'Parse::RecDescent::Production' ),
8876             bless( {
8877             'number' => 1,
8878             'strcount' => 0,
8879             'dircount' => 0,
8880             'uncommit' => undef,
8881             'error' => undef,
8882             'patcount' => 0,
8883             'actcount' => 1,
8884             'items' => [
8885             bless( {
8886             'subrule' => 'expr7',
8887             'matchrule' => 0,
8888             'implicit' => undef,
8889             'argcode' => undef,
8890             'lookahead' => 0,
8891             'line' => 106
8892             }, 'Parse::RecDescent::Subrule' ),
8893             bless( {
8894             'hashname' => '__ACTION1__',
8895             'lookahead' => 0,
8896             'line' => 107,
8897             'code' => '{ $item[1] }'
8898             }, 'Parse::RecDescent::Action' )
8899             ],
8900             'line' => 106
8901             }, 'Parse::RecDescent::Production' )
8902             ],
8903             'name' => 'expr6',
8904             'vars' => '',
8905             'line' => 104
8906             }, 'Parse::RecDescent::Rule' ),
8907             'expr13op' => bless( {
8908             'impcount' => 0,
8909             'calls' => [],
8910             'changed' => 0,
8911             'opcount' => 0,
8912             'prods' => [
8913             bless( {
8914             'number' => 0,
8915             'strcount' => 0,
8916             'dircount' => 0,
8917             'uncommit' => undef,
8918             'error' => undef,
8919             'patcount' => 1,
8920             'actcount' => 1,
8921             'items' => [
8922             bless( {
8923             'pattern' => '(<<|>>)',
8924             'hashname' => '__PATTERN1__',
8925             'description' => '/(<<|>>)/',
8926             'lookahead' => 0,
8927             'rdelim' => '/',
8928             'line' => 148,
8929             'mod' => '',
8930             'ldelim' => '/'
8931             }, 'Parse::RecDescent::Token' ),
8932             bless( {
8933             'hashname' => '__ACTION1__',
8934             'lookahead' => 0,
8935             'line' => 149,
8936             'code' => '{ $item[1] }'
8937             }, 'Parse::RecDescent::Action' )
8938             ],
8939             'line' => undef
8940             }, 'Parse::RecDescent::Production' )
8941             ],
8942             'name' => 'expr13op',
8943             'vars' => '',
8944             'line' => 148
8945             }, 'Parse::RecDescent::Rule' ),
8946             'expr8op' => bless( {
8947             'impcount' => 0,
8948             'calls' => [],
8949             'changed' => 0,
8950             'opcount' => 0,
8951             'prods' => [
8952             bless( {
8953             'number' => 0,
8954             'strcount' => 1,
8955             'dircount' => 0,
8956             'uncommit' => undef,
8957             'error' => undef,
8958             'patcount' => 0,
8959             'actcount' => 1,
8960             'items' => [
8961             bless( {
8962             'pattern' => '&&',
8963             'hashname' => '__STRING1__',
8964             'description' => '\'&&\'',
8965             'lookahead' => 0,
8966             'line' => 118
8967             }, 'Parse::RecDescent::InterpLit' ),
8968             bless( {
8969             'hashname' => '__ACTION1__',
8970             'lookahead' => 0,
8971             'line' => 119,
8972             'code' => '{ $item[1] }'
8973             }, 'Parse::RecDescent::Action' )
8974             ],
8975             'line' => undef
8976             }, 'Parse::RecDescent::Production' )
8977             ],
8978             'name' => 'expr8op',
8979             'vars' => '',
8980             'line' => 118
8981             }, 'Parse::RecDescent::Rule' ),
8982             'macro' => bless( {
8983             'impcount' => 0,
8984             'calls' => [],
8985             'changed' => 0,
8986             'opcount' => 0,
8987             'prods' => [
8988             bless( {
8989             'number' => 0,
8990             'strcount' => 0,
8991             'dircount' => 0,
8992             'uncommit' => undef,
8993             'error' => undef,
8994             'patcount' => 1,
8995             'actcount' => 1,
8996             'items' => [
8997             bless( {
8998             'pattern' => '] | \'[^\'<>]*\' | "[^"<>]*" )* >',
8999             'hashname' => '__PATTERN1__',
9000             'description' => '/] | \'[^\'<>]*\' | "[^"<>]*" )* >/x',
9001             'lookahead' => 0,
9002             'rdelim' => '/',
9003             'line' => 205,
9004             'mod' => 'x',
9005             'ldelim' => '/'
9006             }, 'Parse::RecDescent::Token' ),
9007             bless( {
9008             'hashname' => '__ACTION1__',
9009             'lookahead' => 0,
9010             'line' => 206,
9011             'code' => '{
9012            
9013             my $buf = HTML::Transmorgify::compile($HTML::Transmorgify::modules, \\$item[1]);
9014             $return = sub {
9015             local(@rtmp) = ( \'\' );
9016             run($buf, \\@rtmp);
9017             return $rtmp[0];
9018             };
9019             }'
9020             }, 'Parse::RecDescent::Action' )
9021             ],
9022             'line' => undef
9023             }, 'Parse::RecDescent::Production' )
9024             ],
9025             'name' => 'macro',
9026             'vars' => '',
9027             'line' => 205
9028             }, 'Parse::RecDescent::Rule' ),
9029             'expr16op' => bless( {
9030             'impcount' => 0,
9031             'calls' => [],
9032             'changed' => 0,
9033             'opcount' => 0,
9034             'prods' => [
9035             bless( {
9036             'number' => 0,
9037             'strcount' => 0,
9038             'dircount' => 0,
9039             'uncommit' => undef,
9040             'error' => undef,
9041             'patcount' => 1,
9042             'actcount' => 1,
9043             'items' => [
9044             bless( {
9045             'pattern' => '(=~|\\!~)',
9046             'hashname' => '__PATTERN1__',
9047             'description' => '/(=~|\\\\!~)/',
9048             'lookahead' => 0,
9049             'rdelim' => '/',
9050             'line' => 171,
9051             'mod' => '',
9052             'ldelim' => '/'
9053             }, 'Parse::RecDescent::Token' ),
9054             bless( {
9055             'hashname' => '__ACTION1__',
9056             'lookahead' => 0,
9057             'line' => 172,
9058             'code' => '{ $item[1] }'
9059             }, 'Parse::RecDescent::Action' )
9060             ],
9061             'line' => undef
9062             }, 'Parse::RecDescent::Production' )
9063             ],
9064             'name' => 'expr16op',
9065             'vars' => '',
9066             'line' => 171
9067             }, 'Parse::RecDescent::Rule' ),
9068             'expr10op' => bless( {
9069             'impcount' => 0,
9070             'calls' => [],
9071             'changed' => 0,
9072             'opcount' => 0,
9073             'prods' => [
9074             bless( {
9075             'number' => 0,
9076             'strcount' => 0,
9077             'dircount' => 0,
9078             'uncommit' => undef,
9079             'error' => undef,
9080             'patcount' => 1,
9081             'actcount' => 1,
9082             'items' => [
9083             bless( {
9084             'pattern' => '(\\&)',
9085             'hashname' => '__PATTERN1__',
9086             'description' => '/(\\\\&)/',
9087             'lookahead' => 0,
9088             'rdelim' => '/',
9089             'line' => 130,
9090             'mod' => '',
9091             'ldelim' => '/'
9092             }, 'Parse::RecDescent::Token' ),
9093             bless( {
9094             'hashname' => '__ACTION1__',
9095             'lookahead' => 0,
9096             'line' => 131,
9097             'code' => '{ $item[1] }'
9098             }, 'Parse::RecDescent::Action' )
9099             ],
9100             'line' => undef
9101             }, 'Parse::RecDescent::Production' )
9102             ],
9103             'name' => 'expr10op',
9104             'vars' => '',
9105             'line' => 130
9106             }, 'Parse::RecDescent::Rule' ),
9107             'expr11op' => bless( {
9108             'impcount' => 0,
9109             'calls' => [],
9110             'changed' => 0,
9111             'opcount' => 0,
9112             'prods' => [
9113             bless( {
9114             'number' => 0,
9115             'strcount' => 0,
9116             'dircount' => 0,
9117             'uncommit' => undef,
9118             'error' => undef,
9119             'patcount' => 1,
9120             'actcount' => 1,
9121             'items' => [
9122             bless( {
9123             'pattern' => '(==|\\!=|<=>|eq|ne|cmp)',
9124             'hashname' => '__PATTERN1__',
9125             'description' => '/(==|\\\\!=|<=>|eq|ne|cmp)/',
9126             'lookahead' => 0,
9127             'rdelim' => '/',
9128             'line' => 136,
9129             'mod' => '',
9130             'ldelim' => '/'
9131             }, 'Parse::RecDescent::Token' ),
9132             bless( {
9133             'hashname' => '__ACTION1__',
9134             'lookahead' => 0,
9135             'line' => 137,
9136             'code' => '{ $item[1] }'
9137             }, 'Parse::RecDescent::Action' )
9138             ],
9139             'line' => undef
9140             }, 'Parse::RecDescent::Production' )
9141             ],
9142             'name' => 'expr11op',
9143             'vars' => '',
9144             'line' => 136
9145             }, 'Parse::RecDescent::Rule' ),
9146             'function' => bless( {
9147             'impcount' => 0,
9148             'calls' => [
9149             'expr'
9150             ],
9151             'changed' => 0,
9152             'opcount' => 0,
9153             'prods' => [
9154             bless( {
9155             'number' => 0,
9156             'strcount' => 2,
9157             'dircount' => 1,
9158             'uncommit' => undef,
9159             'error' => undef,
9160             'patcount' => 2,
9161             'actcount' => 1,
9162             'op' => [],
9163             'items' => [
9164             bless( {
9165             'pattern' => '[A-Za-z_](?:\\w|::(?=[^:]))*',
9166             'hashname' => '__PATTERN1__',
9167             'description' => '/[A-Za-z_](?:\\\\w|::(?=[^:]))*/',
9168             'lookahead' => 0,
9169             'rdelim' => '/',
9170             'line' => 189,
9171             'mod' => '',
9172             'ldelim' => '/'
9173             }, 'Parse::RecDescent::Token' ),
9174             bless( {
9175             'pattern' => '(',
9176             'hashname' => '__STRING1__',
9177             'description' => '\'(\'',
9178             'lookahead' => 0,
9179             'line' => 189
9180             }, 'Parse::RecDescent::Literal' ),
9181             bless( {
9182             'expected' => '',
9183             'min' => 1,
9184             'name' => '\'expr(s)\'',
9185             'max' => 100000000,
9186             'leftarg' => bless( {
9187             'subrule' => 'expr',
9188             'matchrule' => 0,
9189             'implicit' => undef,
9190             'argcode' => undef,
9191             'lookahead' => 0,
9192             'line' => 189
9193             }, 'Parse::RecDescent::Subrule' ),
9194             'rightarg' => bless( {
9195             'subrule' => 'expr',
9196             'matchrule' => 0,
9197             'implicit' => undef,
9198             'argcode' => undef,
9199             'lookahead' => 0,
9200             'line' => 189
9201             }, 'Parse::RecDescent::Subrule' ),
9202             'hashname' => '__DIRECTIVE1__',
9203             'type' => 'leftop',
9204             'op' => bless( {
9205             'pattern' => ',',
9206             'hashname' => '__PATTERN2__',
9207             'description' => '/,/',
9208             'lookahead' => 0,
9209             'rdelim' => '/',
9210             'line' => 189,
9211             'mod' => '',
9212             'ldelim' => '/'
9213             }, 'Parse::RecDescent::Token' )
9214             }, 'Parse::RecDescent::Operator' ),
9215             bless( {
9216             'pattern' => ')',
9217             'hashname' => '__STRING2__',
9218             'description' => '\')\'',
9219             'lookahead' => 0,
9220             'line' => 189
9221             }, 'Parse::RecDescent::Literal' ),
9222             bless( {
9223             'hashname' => '__ACTION1__',
9224             'lookahead' => 0,
9225             'line' => 190,
9226             'code' => '{
9227            
9228             die unless $allowed_funcs->{$item[1]};
9229             $return = sub {
9230             $allowed_funcs->{$item[1]}->( map { run($_) } @item[3..$#item] );
9231             };
9232             }'
9233             }, 'Parse::RecDescent::Action' )
9234             ],
9235             'line' => undef
9236             }, 'Parse::RecDescent::Production' )
9237             ],
9238             'name' => 'function',
9239             'vars' => '',
9240             'line' => 189
9241             }, 'Parse::RecDescent::Rule' ),
9242             'expr7op' => bless( {
9243             'impcount' => 0,
9244             'calls' => [],
9245             'changed' => 0,
9246             'opcount' => 0,
9247             'prods' => [
9248             bless( {
9249             'number' => 0,
9250             'strcount' => 1,
9251             'dircount' => 0,
9252             'uncommit' => undef,
9253             'error' => undef,
9254             'patcount' => 0,
9255             'actcount' => 1,
9256             'items' => [
9257             bless( {
9258             'pattern' => '||',
9259             'hashname' => '__STRING1__',
9260             'description' => '\'||\'',
9261             'lookahead' => 0,
9262             'line' => 112
9263             }, 'Parse::RecDescent::InterpLit' ),
9264             bless( {
9265             'hashname' => '__ACTION1__',
9266             'lookahead' => 0,
9267             'line' => 113,
9268             'code' => '{ $item[1] }'
9269             }, 'Parse::RecDescent::Action' )
9270             ],
9271             'line' => undef
9272             }, 'Parse::RecDescent::Production' )
9273             ],
9274             'name' => 'expr7op',
9275             'vars' => '',
9276             'line' => 112
9277             }, 'Parse::RecDescent::Rule' ),
9278             'term' => bless( {
9279             'impcount' => 0,
9280             'calls' => [
9281             'expr',
9282             'constant',
9283             'macro',
9284             'function'
9285             ],
9286             'changed' => 0,
9287             'opcount' => 0,
9288             'prods' => [
9289             bless( {
9290             'number' => 0,
9291             'strcount' => 2,
9292             'dircount' => 0,
9293             'uncommit' => undef,
9294             'error' => undef,
9295             'patcount' => 0,
9296             'actcount' => 1,
9297             'items' => [
9298             bless( {
9299             'pattern' => '(',
9300             'hashname' => '__STRING1__',
9301             'description' => '\'(\'',
9302             'lookahead' => 0,
9303             'line' => 180
9304             }, 'Parse::RecDescent::Literal' ),
9305             bless( {
9306             'subrule' => 'expr',
9307             'matchrule' => 0,
9308             'implicit' => undef,
9309             'argcode' => undef,
9310             'lookahead' => 0,
9311             'line' => 180
9312             }, 'Parse::RecDescent::Subrule' ),
9313             bless( {
9314             'pattern' => ')',
9315             'hashname' => '__STRING2__',
9316             'description' => '\')\'',
9317             'lookahead' => 0,
9318             'line' => 180
9319             }, 'Parse::RecDescent::Literal' ),
9320             bless( {
9321             'hashname' => '__ACTION1__',
9322             'lookahead' => 0,
9323             'line' => 181,
9324             'code' => '{ $return = $item[2] }'
9325             }, 'Parse::RecDescent::Action' )
9326             ],
9327             'line' => undef
9328             }, 'Parse::RecDescent::Production' ),
9329             bless( {
9330             'number' => 1,
9331             'strcount' => 0,
9332             'dircount' => 0,
9333             'uncommit' => undef,
9334             'error' => undef,
9335             'patcount' => 0,
9336             'actcount' => 1,
9337             'items' => [
9338             bless( {
9339             'subrule' => 'constant',
9340             'matchrule' => 0,
9341             'implicit' => undef,
9342             'argcode' => undef,
9343             'lookahead' => 0,
9344             'line' => 182
9345             }, 'Parse::RecDescent::Subrule' ),
9346             bless( {
9347             'hashname' => '__ACTION1__',
9348             'lookahead' => 0,
9349             'line' => 183,
9350             'code' => '{ $return = $item[1] }'
9351             }, 'Parse::RecDescent::Action' )
9352             ],
9353             'line' => 182
9354             }, 'Parse::RecDescent::Production' ),
9355             bless( {
9356             'number' => 2,
9357             'strcount' => 0,
9358             'dircount' => 0,
9359             'uncommit' => undef,
9360             'error' => undef,
9361             'patcount' => 0,
9362             'actcount' => 1,
9363             'items' => [
9364             bless( {
9365             'subrule' => 'macro',
9366             'matchrule' => 0,
9367             'implicit' => undef,
9368             'argcode' => undef,
9369             'lookahead' => 0,
9370             'line' => 184
9371             }, 'Parse::RecDescent::Subrule' ),
9372             bless( {
9373             'hashname' => '__ACTION1__',
9374             'lookahead' => 0,
9375             'line' => 185,
9376             'code' => '{ $return = $item[1] }'
9377             }, 'Parse::RecDescent::Action' )
9378             ],
9379             'line' => 184
9380             }, 'Parse::RecDescent::Production' ),
9381             bless( {
9382             'number' => 3,
9383             'strcount' => 0,
9384             'dircount' => 0,
9385             'uncommit' => undef,
9386             'error' => undef,
9387             'patcount' => 0,
9388             'actcount' => 1,
9389             'items' => [
9390             bless( {
9391             'subrule' => 'function',
9392             'matchrule' => 0,
9393             'implicit' => undef,
9394             'argcode' => undef,
9395             'lookahead' => 0,
9396             'line' => 186
9397             }, 'Parse::RecDescent::Subrule' ),
9398             bless( {
9399             'hashname' => '__ACTION1__',
9400             'lookahead' => 0,
9401             'line' => 187,
9402             'code' => '{ $return = $item[1] }'
9403             }, 'Parse::RecDescent::Action' )
9404             ],
9405             'line' => 186
9406             }, 'Parse::RecDescent::Production' )
9407             ],
9408             'name' => 'term',
9409             'vars' => '',
9410             'line' => 180
9411             }, 'Parse::RecDescent::Rule' ),
9412             'expr13' => bless( {
9413             'impcount' => 0,
9414             'calls' => [
9415             'expr14',
9416             'expr13op'
9417             ],
9418             'changed' => 0,
9419             'opcount' => 0,
9420             'prods' => [
9421             bless( {
9422             'number' => 0,
9423             'strcount' => 0,
9424             'dircount' => 1,
9425             'uncommit' => undef,
9426             'error' => undef,
9427             'patcount' => 0,
9428             'actcount' => 1,
9429             'op' => [],
9430             'items' => [
9431             bless( {
9432             'expected' => '',
9433             'min' => 1,
9434             'name' => '',
9435             'max' => 100000000,
9436             'leftarg' => bless( {
9437             'subrule' => 'expr14',
9438             'matchrule' => 0,
9439             'implicit' => undef,
9440             'argcode' => undef,
9441             'lookahead' => 0,
9442             'line' => 145
9443             }, 'Parse::RecDescent::Subrule' ),
9444             'rightarg' => bless( {
9445             'subrule' => 'expr14',
9446             'matchrule' => 0,
9447             'implicit' => undef,
9448             'argcode' => undef,
9449             'lookahead' => 0,
9450             'line' => 145
9451             }, 'Parse::RecDescent::Subrule' ),
9452             'hashname' => '__DIRECTIVE1__',
9453             'type' => 'leftop',
9454             'op' => bless( {
9455             'subrule' => 'expr13op',
9456             'matchrule' => 0,
9457             'implicit' => undef,
9458             'argcode' => undef,
9459             'lookahead' => 0,
9460             'line' => 145
9461             }, 'Parse::RecDescent::Subrule' )
9462             }, 'Parse::RecDescent::Operator' ),
9463             bless( {
9464             'hashname' => '__ACTION1__',
9465             'lookahead' => 0,
9466             'line' => 146,
9467             'code' => '{ left(@item) }'
9468             }, 'Parse::RecDescent::Action' )
9469             ],
9470             'line' => undef
9471             }, 'Parse::RecDescent::Production' )
9472             ],
9473             'name' => 'expr13',
9474             'vars' => '',
9475             'line' => 145
9476             }, 'Parse::RecDescent::Rule' ),
9477             'expr17op' => bless( {
9478             'impcount' => 0,
9479             'calls' => [],
9480             'changed' => 0,
9481             'opcount' => 0,
9482             'prods' => [
9483             bless( {
9484             'number' => 0,
9485             'strcount' => 0,
9486             'dircount' => 0,
9487             'uncommit' => undef,
9488             'error' => undef,
9489             'patcount' => 1,
9490             'actcount' => 1,
9491             'items' => [
9492             bless( {
9493             'pattern' => '(\\*\\*)',
9494             'hashname' => '__PATTERN1__',
9495             'description' => '/(\\\\*\\\\*)/',
9496             'lookahead' => 0,
9497             'rdelim' => '/',
9498             'line' => 177,
9499             'mod' => '',
9500             'ldelim' => '/'
9501             }, 'Parse::RecDescent::Token' ),
9502             bless( {
9503             'hashname' => '__ACTION1__',
9504             'lookahead' => 0,
9505             'line' => 178,
9506             'code' => '{ $item[1] }'
9507             }, 'Parse::RecDescent::Action' )
9508             ],
9509             'line' => undef
9510             }, 'Parse::RecDescent::Production' )
9511             ],
9512             'name' => 'expr17op',
9513             'vars' => '',
9514             'line' => 177
9515             }, 'Parse::RecDescent::Rule' ),
9516             'expr17' => bless( {
9517             'impcount' => 0,
9518             'calls' => [
9519             'term',
9520             'expr17op'
9521             ],
9522             'changed' => 0,
9523             'opcount' => 0,
9524             'prods' => [
9525             bless( {
9526             'number' => 0,
9527             'strcount' => 0,
9528             'dircount' => 1,
9529             'uncommit' => undef,
9530             'error' => undef,
9531             'patcount' => 0,
9532             'actcount' => 1,
9533             'op' => [],
9534             'items' => [
9535             bless( {
9536             'expected' => '',
9537             'min' => 1,
9538             'name' => '',
9539             'max' => 100000000,
9540             'leftarg' => bless( {
9541             'subrule' => 'term',
9542             'matchrule' => 0,
9543             'implicit' => undef,
9544             'argcode' => undef,
9545             'lookahead' => 0,
9546             'line' => 174
9547             }, 'Parse::RecDescent::Subrule' ),
9548             'rightarg' => bless( {
9549             'subrule' => 'term',
9550             'matchrule' => 0,
9551             'implicit' => undef,
9552             'argcode' => undef,
9553             'lookahead' => 0,
9554             'line' => 174
9555             }, 'Parse::RecDescent::Subrule' ),
9556             'hashname' => '__DIRECTIVE1__',
9557             'type' => 'leftop',
9558             'op' => bless( {
9559             'subrule' => 'expr17op',
9560             'matchrule' => 0,
9561             'implicit' => undef,
9562             'argcode' => undef,
9563             'lookahead' => 0,
9564             'line' => 174
9565             }, 'Parse::RecDescent::Subrule' )
9566             }, 'Parse::RecDescent::Operator' ),
9567             bless( {
9568             'hashname' => '__ACTION1__',
9569             'lookahead' => 0,
9570             'line' => 175,
9571             'code' => '{ left(@item) }'
9572             }, 'Parse::RecDescent::Action' )
9573             ],
9574             'line' => undef
9575             }, 'Parse::RecDescent::Production' )
9576             ],
9577             'name' => 'expr17',
9578             'vars' => '',
9579             'line' => 174
9580             }, 'Parse::RecDescent::Rule' ),
9581             'expr' => bless( {
9582             'impcount' => 0,
9583             'calls' => [
9584             'expr2',
9585             'expr_op'
9586             ],
9587             'changed' => 0,
9588             'opcount' => 0,
9589             'prods' => [
9590             bless( {
9591             'number' => 0,
9592             'strcount' => 0,
9593             'dircount' => 1,
9594             'uncommit' => undef,
9595             'error' => undef,
9596             'patcount' => 0,
9597             'actcount' => 1,
9598             'op' => [],
9599             'items' => [
9600             bless( {
9601             'expected' => '',
9602             'min' => 1,
9603             'name' => '',
9604             'max' => 100000000,
9605             'leftarg' => bless( {
9606             'subrule' => 'expr2',
9607             'matchrule' => 0,
9608             'implicit' => undef,
9609             'argcode' => undef,
9610             'lookahead' => 0,
9611             'line' => 87
9612             }, 'Parse::RecDescent::Subrule' ),
9613             'rightarg' => bless( {
9614             'subrule' => 'expr2',
9615             'matchrule' => 0,
9616             'implicit' => undef,
9617             'argcode' => undef,
9618             'lookahead' => 0,
9619             'line' => 87
9620             }, 'Parse::RecDescent::Subrule' ),
9621             'hashname' => '__DIRECTIVE1__',
9622             'type' => 'leftop',
9623             'op' => bless( {
9624             'subrule' => 'expr_op',
9625             'matchrule' => 0,
9626             'implicit' => undef,
9627             'argcode' => undef,
9628             'lookahead' => 0,
9629             'line' => 87
9630             }, 'Parse::RecDescent::Subrule' )
9631             }, 'Parse::RecDescent::Operator' ),
9632             bless( {
9633             'hashname' => '__ACTION1__',
9634             'lookahead' => 0,
9635             'line' => 88,
9636             'code' => '{ left(@item) }'
9637             }, 'Parse::RecDescent::Action' )
9638             ],
9639             'line' => undef
9640             }, 'Parse::RecDescent::Production' )
9641             ],
9642             'name' => 'expr',
9643             'vars' => '',
9644             'line' => 87
9645             }, 'Parse::RecDescent::Rule' ),
9646             'expr12' => bless( {
9647             'impcount' => 0,
9648             'calls' => [
9649             'expr13',
9650             'expr12op'
9651             ],
9652             'changed' => 0,
9653             'opcount' => 0,
9654             'prods' => [
9655             bless( {
9656             'number' => 0,
9657             'strcount' => 0,
9658             'dircount' => 1,
9659             'uncommit' => undef,
9660             'error' => undef,
9661             'patcount' => 0,
9662             'actcount' => 1,
9663             'op' => [],
9664             'items' => [
9665             bless( {
9666             'expected' => '',
9667             'min' => 1,
9668             'name' => '',
9669             'max' => 100000000,
9670             'leftarg' => bless( {
9671             'subrule' => 'expr13',
9672             'matchrule' => 0,
9673             'implicit' => undef,
9674             'argcode' => undef,
9675             'lookahead' => 0,
9676             'line' => 139
9677             }, 'Parse::RecDescent::Subrule' ),
9678             'rightarg' => bless( {
9679             'subrule' => 'expr13',
9680             'matchrule' => 0,
9681             'implicit' => undef,
9682             'argcode' => undef,
9683             'lookahead' => 0,
9684             'line' => 139
9685             }, 'Parse::RecDescent::Subrule' ),
9686             'hashname' => '__DIRECTIVE1__',
9687             'type' => 'leftop',
9688             'op' => bless( {
9689             'subrule' => 'expr12op',
9690             'matchrule' => 0,
9691             'implicit' => undef,
9692             'argcode' => undef,
9693             'lookahead' => 0,
9694             'line' => 139
9695             }, 'Parse::RecDescent::Subrule' )
9696             }, 'Parse::RecDescent::Operator' ),
9697             bless( {
9698             'hashname' => '__ACTION1__',
9699             'lookahead' => 0,
9700             'line' => 140,
9701             'code' => '{ nonassoc(@item) }'
9702             }, 'Parse::RecDescent::Action' )
9703             ],
9704             'line' => undef
9705             }, 'Parse::RecDescent::Production' )
9706             ],
9707             'name' => 'expr12',
9708             'vars' => '',
9709             'line' => 139
9710             }, 'Parse::RecDescent::Rule' ),
9711             'expr16' => bless( {
9712             'impcount' => 0,
9713             'calls' => [
9714             'expr17',
9715             'expr16op'
9716             ],
9717             'changed' => 0,
9718             'opcount' => 0,
9719             'prods' => [
9720             bless( {
9721             'number' => 0,
9722             'strcount' => 0,
9723             'dircount' => 1,
9724             'uncommit' => undef,
9725             'error' => undef,
9726             'patcount' => 0,
9727             'actcount' => 1,
9728             'op' => [],
9729             'items' => [
9730             bless( {
9731             'expected' => '',
9732             'min' => 1,
9733             'name' => '',
9734             'max' => 100000000,
9735             'leftarg' => bless( {
9736             'subrule' => 'expr17',
9737             'matchrule' => 0,
9738             'implicit' => undef,
9739             'argcode' => undef,
9740             'lookahead' => 0,
9741             'line' => 168
9742             }, 'Parse::RecDescent::Subrule' ),
9743             'rightarg' => bless( {
9744             'subrule' => 'expr17',
9745             'matchrule' => 0,
9746             'implicit' => undef,
9747             'argcode' => undef,
9748             'lookahead' => 0,
9749             'line' => 168
9750             }, 'Parse::RecDescent::Subrule' ),
9751             'hashname' => '__DIRECTIVE1__',
9752             'type' => 'leftop',
9753             'op' => bless( {
9754             'subrule' => 'expr16op',
9755             'matchrule' => 0,
9756             'implicit' => undef,
9757             'argcode' => undef,
9758             'lookahead' => 0,
9759             'line' => 168
9760             }, 'Parse::RecDescent::Subrule' )
9761             }, 'Parse::RecDescent::Operator' ),
9762             bless( {
9763             'hashname' => '__ACTION1__',
9764             'lookahead' => 0,
9765             'line' => 169,
9766             'code' => '{ left(@item) }'
9767             }, 'Parse::RecDescent::Action' )
9768             ],
9769             'line' => undef
9770             }, 'Parse::RecDescent::Production' )
9771             ],
9772             'name' => 'expr16',
9773             'vars' => '',
9774             'line' => 168
9775             }, 'Parse::RecDescent::Rule' ),
9776             'expr2op' => bless( {
9777             'impcount' => 0,
9778             'calls' => [],
9779             'changed' => 0,
9780             'opcount' => 0,
9781             'prods' => [
9782             bless( {
9783             'number' => 0,
9784             'strcount' => 1,
9785             'dircount' => 0,
9786             'uncommit' => undef,
9787             'error' => undef,
9788             'patcount' => 0,
9789             'actcount' => 1,
9790             'items' => [
9791             bless( {
9792             'pattern' => 'and',
9793             'hashname' => '__STRING1__',
9794             'description' => '\'and\'',
9795             'lookahead' => 0,
9796             'line' => 96
9797             }, 'Parse::RecDescent::InterpLit' ),
9798             bless( {
9799             'hashname' => '__ACTION1__',
9800             'lookahead' => 0,
9801             'line' => 97,
9802             'code' => '{ return $item[1] }'
9803             }, 'Parse::RecDescent::Action' )
9804             ],
9805             'line' => undef
9806             }, 'Parse::RecDescent::Production' )
9807             ],
9808             'name' => 'expr2op',
9809             'vars' => '',
9810             'line' => 96
9811             }, 'Parse::RecDescent::Rule' ),
9812             'expr_op' => bless( {
9813             'impcount' => 0,
9814             'calls' => [],
9815             'changed' => 0,
9816             'opcount' => 0,
9817             'prods' => [
9818             bless( {
9819             'number' => 0,
9820             'strcount' => 0,
9821             'dircount' => 0,
9822             'uncommit' => undef,
9823             'error' => undef,
9824             'patcount' => 1,
9825             'actcount' => 1,
9826             'items' => [
9827             bless( {
9828             'pattern' => 'or|xor',
9829             'hashname' => '__PATTERN1__',
9830             'description' => '/or|xor/',
9831             'lookahead' => 0,
9832             'rdelim' => '/',
9833             'line' => 90,
9834             'mod' => '',
9835             'ldelim' => '/'
9836             }, 'Parse::RecDescent::Token' ),
9837             bless( {
9838             'hashname' => '__ACTION1__',
9839             'lookahead' => 0,
9840             'line' => 91,
9841             'code' => '{ $item[1] }'
9842             }, 'Parse::RecDescent::Action' )
9843             ],
9844             'line' => undef
9845             }, 'Parse::RecDescent::Production' )
9846             ],
9847             'name' => 'expr_op',
9848             'vars' => '',
9849             'line' => 90
9850             }, 'Parse::RecDescent::Rule' ),
9851             'expr7' => bless( {
9852             'impcount' => 0,
9853             'calls' => [
9854             'expr8',
9855             'expr7op'
9856             ],
9857             'changed' => 0,
9858             'opcount' => 0,
9859             'prods' => [
9860             bless( {
9861             'number' => 0,
9862             'strcount' => 0,
9863             'dircount' => 1,
9864             'uncommit' => undef,
9865             'error' => undef,
9866             'patcount' => 0,
9867             'actcount' => 1,
9868             'op' => [],
9869             'items' => [
9870             bless( {
9871             'expected' => '',
9872             'min' => 1,
9873             'name' => '',
9874             'max' => 100000000,
9875             'leftarg' => bless( {
9876             'subrule' => 'expr8',
9877             'matchrule' => 0,
9878             'implicit' => undef,
9879             'argcode' => undef,
9880             'lookahead' => 0,
9881             'line' => 109
9882             }, 'Parse::RecDescent::Subrule' ),
9883             'rightarg' => bless( {
9884             'subrule' => 'expr8',
9885             'matchrule' => 0,
9886             'implicit' => undef,
9887             'argcode' => undef,
9888             'lookahead' => 0,
9889             'line' => 109
9890             }, 'Parse::RecDescent::Subrule' ),
9891             'hashname' => '__DIRECTIVE1__',
9892             'type' => 'leftop',
9893             'op' => bless( {
9894             'subrule' => 'expr7op',
9895             'matchrule' => 0,
9896             'implicit' => undef,
9897             'argcode' => undef,
9898             'lookahead' => 0,
9899             'line' => 109
9900             }, 'Parse::RecDescent::Subrule' )
9901             }, 'Parse::RecDescent::Operator' ),
9902             bless( {
9903             'hashname' => '__ACTION1__',
9904             'lookahead' => 0,
9905             'line' => 110,
9906             'code' => '{ left(@item) }'
9907             }, 'Parse::RecDescent::Action' )
9908             ],
9909             'line' => undef
9910             }, 'Parse::RecDescent::Production' )
9911             ],
9912             'name' => 'expr7',
9913             'vars' => '',
9914             'line' => 109
9915             }, 'Parse::RecDescent::Rule' ),
9916             'constant' => bless( {
9917             'impcount' => 0,
9918             'calls' => [],
9919             'changed' => 0,
9920             'opcount' => 0,
9921             'prods' => [
9922             bless( {
9923             'number' => 0,
9924             'strcount' => 0,
9925             'dircount' => 0,
9926             'uncommit' => undef,
9927             'error' => undef,
9928             'patcount' => 1,
9929             'actcount' => 1,
9930             'items' => [
9931             bless( {
9932             'pattern' => ' -? (?: \\d+ (?: \\.\\d+ )? | (?: \\.\\d+) ) (?:[eE]-?\\d+)? ',
9933             'hashname' => '__PATTERN1__',
9934             'description' => '/ -? (?: \\\\d+ (?: \\\\.\\\\d+ )? | (?: \\\\.\\\\d+) ) (?:[eE]-?\\\\d+)? /x',
9935             'lookahead' => 0,
9936             'rdelim' => '/',
9937             'line' => 198,
9938             'mod' => 'x',
9939             'ldelim' => '/'
9940             }, 'Parse::RecDescent::Token' ),
9941             bless( {
9942             'hashname' => '__ACTION1__',
9943             'lookahead' => 0,
9944             'line' => 199,
9945             'code' => '{ $item[1] }'
9946             }, 'Parse::RecDescent::Action' )
9947             ],
9948             'line' => undef
9949             }, 'Parse::RecDescent::Production' ),
9950             bless( {
9951             'number' => 1,
9952             'strcount' => 2,
9953             'dircount' => 0,
9954             'uncommit' => undef,
9955             'error' => undef,
9956             'patcount' => 1,
9957             'actcount' => 1,
9958             'items' => [
9959             bless( {
9960             'pattern' => '\'',
9961             'hashname' => '__STRING1__',
9962             'description' => '\'\'\'',
9963             'lookahead' => 0,
9964             'line' => 200
9965             }, 'Parse::RecDescent::InterpLit' ),
9966             bless( {
9967             'pattern' => '[^"]*',
9968             'hashname' => '__PATTERN1__',
9969             'description' => '/[^"]*/',
9970             'lookahead' => 0,
9971             'rdelim' => '/',
9972             'line' => 200,
9973             'mod' => '',
9974             'ldelim' => '/'
9975             }, 'Parse::RecDescent::Token' ),
9976             bless( {
9977             'pattern' => '"',
9978             'hashname' => '__STRING2__',
9979             'description' => '\'"\'',
9980             'lookahead' => 0,
9981             'line' => 200
9982             }, 'Parse::RecDescent::Literal' ),
9983             bless( {
9984             'hashname' => '__ACTION1__',
9985             'lookahead' => 0,
9986             'line' => 201,
9987             'code' => '{ $item[2] }'
9988             }, 'Parse::RecDescent::Action' )
9989             ],
9990             'line' => 200
9991             }, 'Parse::RecDescent::Production' ),
9992             bless( {
9993             'number' => 2,
9994             'strcount' => 2,
9995             'dircount' => 0,
9996             'uncommit' => undef,
9997             'error' => undef,
9998             'patcount' => 1,
9999             'actcount' => 1,
10000             'items' => [
10001             bless( {
10002             'pattern' => '"',
10003             'hashname' => '__STRING1__',
10004             'description' => '\'"\'',
10005             'lookahead' => 0,
10006             'line' => 202
10007             }, 'Parse::RecDescent::Literal' ),
10008             bless( {
10009             'pattern' => '[^\']*',
10010             'hashname' => '__PATTERN1__',
10011             'description' => '/[^\']*/',
10012             'lookahead' => 0,
10013             'rdelim' => '/',
10014             'line' => 202,
10015             'mod' => '',
10016             'ldelim' => '/'
10017             }, 'Parse::RecDescent::Token' ),
10018             bless( {
10019             'pattern' => '\'',
10020             'hashname' => '__STRING2__',
10021             'description' => '\'\'\'',
10022             'lookahead' => 0,
10023             'line' => 202
10024             }, 'Parse::RecDescent::InterpLit' ),
10025             bless( {
10026             'hashname' => '__ACTION1__',
10027             'lookahead' => 0,
10028             'line' => 203,
10029             'code' => '{ $item[2] }'
10030             }, 'Parse::RecDescent::Action' )
10031             ],
10032             'line' => 202
10033             }, 'Parse::RecDescent::Production' )
10034             ],
10035             'name' => 'constant',
10036             'vars' => '',
10037             'line' => 198
10038             }, 'Parse::RecDescent::Rule' ),
10039             'expr9op' => bless( {
10040             'impcount' => 0,
10041             'calls' => [],
10042             'changed' => 0,
10043             'opcount' => 0,
10044             'prods' => [
10045             bless( {
10046             'number' => 0,
10047             'strcount' => 0,
10048             'dircount' => 0,
10049             'uncommit' => undef,
10050             'error' => undef,
10051             'patcount' => 1,
10052             'actcount' => 1,
10053             'items' => [
10054             bless( {
10055             'pattern' => '(\\||\\^)',
10056             'hashname' => '__PATTERN1__',
10057             'description' => '/(\\\\||\\\\^)/',
10058             'lookahead' => 0,
10059             'rdelim' => '/',
10060             'line' => 124,
10061             'mod' => '',
10062             'ldelim' => '/'
10063             }, 'Parse::RecDescent::Token' ),
10064             bless( {
10065             'hashname' => '__ACTION1__',
10066             'lookahead' => 0,
10067             'line' => 125,
10068             'code' => '{ $item[1] }'
10069             }, 'Parse::RecDescent::Action' )
10070             ],
10071             'line' => undef
10072             }, 'Parse::RecDescent::Production' )
10073             ],
10074             'name' => 'expr9op',
10075             'vars' => '',
10076             'line' => 124
10077             }, 'Parse::RecDescent::Rule' ),
10078             'conditional' => bless( {
10079             'impcount' => 0,
10080             'calls' => [
10081             'expr'
10082             ],
10083             'changed' => 0,
10084             'opcount' => 0,
10085             'prods' => [
10086             bless( {
10087             'number' => 0,
10088             'strcount' => 0,
10089             'dircount' => 0,
10090             'uncommit' => undef,
10091             'error' => undef,
10092             'patcount' => 1,
10093             'actcount' => 1,
10094             'items' => [
10095             bless( {
10096             'subrule' => 'expr',
10097             'matchrule' => 0,
10098             'implicit' => undef,
10099             'argcode' => undef,
10100             'lookahead' => 0,
10101             'line' => 84
10102             }, 'Parse::RecDescent::Subrule' ),
10103             bless( {
10104             'pattern' => '\\Z',
10105             'hashname' => '__PATTERN1__',
10106             'description' => '/\\\\Z/',
10107             'lookahead' => 0,
10108             'rdelim' => '/',
10109             'line' => 84,
10110             'mod' => '',
10111             'ldelim' => '/'
10112             }, 'Parse::RecDescent::Token' ),
10113             bless( {
10114             'hashname' => '__ACTION1__',
10115             'lookahead' => 0,
10116             'line' => 85,
10117             'code' => '{ $item[1] }'
10118             }, 'Parse::RecDescent::Action' )
10119             ],
10120             'line' => undef
10121             }, 'Parse::RecDescent::Production' )
10122             ],
10123             'name' => 'conditional',
10124             'vars' => '',
10125             'line' => 84
10126             }, 'Parse::RecDescent::Rule' ),
10127             'expr14op' => bless( {
10128             'impcount' => 0,
10129             'calls' => [],
10130             'changed' => 0,
10131             'opcount' => 0,
10132             'prods' => [
10133             bless( {
10134             'number' => 0,
10135             'strcount' => 0,
10136             'dircount' => 0,
10137             'uncommit' => undef,
10138             'error' => undef,
10139             'patcount' => 1,
10140             'actcount' => 1,
10141             'items' => [
10142             bless( {
10143             'pattern' => '(\\+|-|\\.)',
10144             'hashname' => '__PATTERN1__',
10145             'description' => '/(\\\\+|-|\\\\.)/',
10146             'lookahead' => 0,
10147             'rdelim' => '/',
10148             'line' => 154,
10149             'mod' => '',
10150             'ldelim' => '/'
10151             }, 'Parse::RecDescent::Token' ),
10152             bless( {
10153             'hashname' => '__ACTION1__',
10154             'lookahead' => 0,
10155             'line' => 155,
10156             'code' => '{ $item[1] }'
10157             }, 'Parse::RecDescent::Action' )
10158             ],
10159             'line' => undef
10160             }, 'Parse::RecDescent::Production' )
10161             ],
10162             'name' => 'expr14op',
10163             'vars' => '',
10164             'line' => 154
10165             }, 'Parse::RecDescent::Rule' ),
10166             'expr9' => bless( {
10167             'impcount' => 0,
10168             'calls' => [
10169             'expr10',
10170             'expr9op'
10171             ],
10172             'changed' => 0,
10173             'opcount' => 0,
10174             'prods' => [
10175             bless( {
10176             'number' => 0,
10177             'strcount' => 0,
10178             'dircount' => 1,
10179             'uncommit' => undef,
10180             'error' => undef,
10181             'patcount' => 0,
10182             'actcount' => 1,
10183             'op' => [],
10184             'items' => [
10185             bless( {
10186             'expected' => '',
10187             'min' => 1,
10188             'name' => '',
10189             'max' => 100000000,
10190             'leftarg' => bless( {
10191             'subrule' => 'expr10',
10192             'matchrule' => 0,
10193             'implicit' => undef,
10194             'argcode' => undef,
10195             'lookahead' => 0,
10196             'line' => 121
10197             }, 'Parse::RecDescent::Subrule' ),
10198             'rightarg' => bless( {
10199             'subrule' => 'expr10',
10200             'matchrule' => 0,
10201             'implicit' => undef,
10202             'argcode' => undef,
10203             'lookahead' => 0,
10204             'line' => 121
10205             }, 'Parse::RecDescent::Subrule' ),
10206             'hashname' => '__DIRECTIVE1__',
10207             'type' => 'leftop',
10208             'op' => bless( {
10209             'subrule' => 'expr9op',
10210             'matchrule' => 0,
10211             'implicit' => undef,
10212             'argcode' => undef,
10213             'lookahead' => 0,
10214             'line' => 121
10215             }, 'Parse::RecDescent::Subrule' )
10216             }, 'Parse::RecDescent::Operator' ),
10217             bless( {
10218             'hashname' => '__ACTION1__',
10219             'lookahead' => 0,
10220             'line' => 122,
10221             'code' => '{ left(@item) }'
10222             }, 'Parse::RecDescent::Action' )
10223             ],
10224             'line' => undef
10225             }, 'Parse::RecDescent::Production' )
10226             ],
10227             'name' => 'expr9',
10228             'vars' => '',
10229             'line' => 121
10230             }, 'Parse::RecDescent::Rule' )
10231             },
10232             '_AUTOTREE' => undef,
10233             '_check' => {
10234             'thisoffset' => '',
10235             'itempos' => '',
10236             'prevoffset' => '',
10237             'prevline' => '',
10238             'prevcolumn' => '',
10239             'thiscolumn' => ''
10240             },
10241             '_AUTOACTION' => undef
10242             }, 'Parse::RecDescent' );
10243             }