File Coverage

blib/lib/Bigtop/Grammar.pm
Criterion Covered Total %
statement 447 5920 7.5
branch 0 3608 0.0
condition 0 1236 0.0
subroutine 149 296 50.3
pod 1 1 100.0
total 597 11061 5.4


line stmt bran cond sub pod time code
1             package Bigtop::Grammar;
2 41     41   84030 use Parse::RecDescent;
  41         3339918  
  41         378  
3              
4             { my $ERRORS;
5              
6              
7             package Parse::RecDescent::Bigtop::Grammar;
8 41     41   2984 use strict;
  41         97  
  41         1624  
9 41     41   208 use vars qw($skip $AUTOLOAD );
  41         87  
  41         5401  
10             $skip = '\s*';
11              
12             my $backtick_line = 0;
13             my $backtick_warning = '';
14             ;
15              
16              
17             {
18             local $SIG{__WARN__} = sub {0};
19             # PRETEND TO BE IN Parse::RecDescent NAMESPACE
20             *Parse::RecDescent::Bigtop::Grammar::AUTOLOAD = sub
21             {
22 41     41   219 no strict 'refs';
  41         73  
  41         4504  
23 0     0     $AUTOLOAD =~ s/^Parse::RecDescent::Bigtop::Grammar/Parse::RecDescent/;
24 0           goto &{$AUTOLOAD};
  0            
25             }
26             }
27              
28             push @Parse::RecDescent::Bigtop::Grammar::ISA, 'Parse::RecDescent';
29             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30             sub Parse::RecDescent::Bigtop::Grammar::method_type
31             {
32 0     0     my $thisparser = $_[0];
33 41     41   207 use vars q{$tracelevel};
  41         71  
  41         25886  
34 0   0       local $tracelevel = ($tracelevel||0)+1;
35 0           $ERRORS = 0;
36 0           my $thisrule = $thisparser->{"rules"}{"method_type"};
37            
38 0 0         Parse::RecDescent::_trace(q{Trying rule: [method_type]},
39             Parse::RecDescent::_tracefirst($_[1]),
40             q{method_type},
41             $tracelevel)
42             if defined $::RD_TRACE;
43              
44            
45 0           my $err_at = @{$thisparser->{errors}};
  0            
46              
47 0           my $score;
48             my $score_return;
49 0           my $_tok;
50 0           my $return = undef;
51 0           my $_matched=0;
52 0           my $commit=0;
53 0           my @item = ();
54 0           my %item = ();
55 0   0       my $repeating = defined($_[2]) && $_[2];
56 0   0       my $_noactions = defined($_[3]) && $_[3];
57 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
58 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
59 0           my $text;
60 0           my $lastsep="";
61 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
62 0           $expectation->at($_[1]);
63            
64 0           my $thisline;
65 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
66              
67            
68              
69 0   0       while (!$_matched && !$commit)
70             {
71            
72 0 0         Parse::RecDescent::_trace(q{Trying production: ['is' IDENT]},
73             Parse::RecDescent::_tracefirst($_[1]),
74             q{method_type},
75             $tracelevel)
76             if defined $::RD_TRACE;
77 0           my $thisprod = $thisrule->{"prods"}[0];
78 0           $text = $_[1];
79 0           my $_savetext;
80 0           @item = (q{method_type});
81 0           %item = (__RULE__ => q{method_type});
82 0           my $repcount = 0;
83              
84              
85 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['is']},
86             Parse::RecDescent::_tracefirst($text),
87             q{method_type},
88             $tracelevel)
89             if defined $::RD_TRACE;
90 0           $lastsep = "";
91 0           $expectation->is(q{})->at($text);
92            
93              
94 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ais//)
  0 0          
95             {
96            
97 0           $expectation->failed();
98 0 0         Parse::RecDescent::_trace(qq{<>},
99             Parse::RecDescent::_tracefirst($text))
100             if defined $::RD_TRACE;
101 0           last;
102             }
103 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
104             . $& . q{])},
105             Parse::RecDescent::_tracefirst($text))
106             if defined $::RD_TRACE;
107 0           push @item, $item{__STRING1__}=$&;
108            
109              
110 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
111             Parse::RecDescent::_tracefirst($text),
112             q{method_type},
113             $tracelevel)
114             if defined $::RD_TRACE;
115 41     41   264 if (1) { no strict qw{refs};
  41         113  
  41         28389  
  0            
116 0           $expectation->is(q{IDENT})->at($text);
117 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
118             {
119            
120 0 0         Parse::RecDescent::_trace(q{<>},
121             Parse::RecDescent::_tracefirst($text),
122             q{method_type},
123             $tracelevel)
124             if defined $::RD_TRACE;
125 0           $expectation->failed();
126 0           last;
127             }
128 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
129             . $_tok . q{]},
130            
131             Parse::RecDescent::_tracefirst($text),
132             q{method_type},
133             $tracelevel)
134             if defined $::RD_TRACE;
135 0           $item{q{IDENT}} = $_tok;
136 0           push @item, $_tok;
137            
138             }
139              
140 0 0         Parse::RecDescent::_trace(q{Trying action},
141             Parse::RecDescent::_tracefirst($text),
142             q{method_type},
143             $tracelevel)
144             if defined $::RD_TRACE;
145            
146              
147 0 0         $_tok = ($_noactions) ? 0 : do { $item{IDENT} };
  0            
148 0 0         unless (defined $_tok)
149             {
150 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
151             if defined $::RD_TRACE;
152 0           last;
153             }
154 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
155             . $_tok . q{])},
156             Parse::RecDescent::_tracefirst($text))
157             if defined $::RD_TRACE;
158 0           push @item, $_tok;
159 0           $item{__ACTION1__}=$_tok;
160            
161              
162              
163 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['is' IDENT]<<},
164             Parse::RecDescent::_tracefirst($text),
165             q{method_type},
166             $tracelevel)
167             if defined $::RD_TRACE;
168 0           $_matched = 1;
169 0           last;
170             }
171              
172              
173 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
174             {
175            
176              
177 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
178 0 0         Parse::RecDescent::_trace(q{<>},
179             Parse::RecDescent::_tracefirst($_[1]),
180             q{method_type},
181             $tracelevel)
182             if defined $::RD_TRACE;
183 0           return undef;
184             }
185 0 0 0       if (!defined($return) && defined($score))
186             {
187 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
188             q{method_type},
189             $tracelevel)
190             if defined $::RD_TRACE;
191 0           $return = $score_return;
192             }
193 0           splice @{$thisparser->{errors}}, $err_at;
  0            
194 0 0         $return = $item[$#item] unless defined $return;
195 0 0         if (defined $::RD_TRACE)
196             {
197 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
198             $return . q{])}, "",
199             q{method_type},
200             $tracelevel);
201 0           Parse::RecDescent::_trace(q{(consumed: [} .
202             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
203             Parse::RecDescent::_tracefirst($text),
204             , q{method_type},
205             $tracelevel)
206             }
207 0           $_[1] = $text;
208 0           return $return;
209             }
210              
211             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
212             sub Parse::RecDescent::Bigtop::Grammar::join_table_statement
213             {
214 0     0     my $thisparser = $_[0];
215 41     41   241 use vars q{$tracelevel};
  41         81  
  41         32617  
216 0   0       local $tracelevel = ($tracelevel||0)+1;
217 0           $ERRORS = 0;
218 0           my $thisrule = $thisparser->{"rules"}{"join_table_statement"};
219            
220 0 0         Parse::RecDescent::_trace(q{Trying rule: [join_table_statement]},
221             Parse::RecDescent::_tracefirst($_[1]),
222             q{join_table_statement},
223             $tracelevel)
224             if defined $::RD_TRACE;
225              
226            
227 0           my $err_at = @{$thisparser->{errors}};
  0            
228              
229 0           my $score;
230             my $score_return;
231 0           my $_tok;
232 0           my $return = undef;
233 0           my $_matched=0;
234 0           my $commit=0;
235 0           my @item = ();
236 0           my %item = ();
237 0   0       my $repeating = defined($_[2]) && $_[2];
238 0   0       my $_noactions = defined($_[3]) && $_[3];
239 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
240 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
241 0           my $text;
242 0           my $lastsep="";
243 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
244 0           $expectation->at($_[1]);
245            
246 0           my $thisline;
247 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
248              
249            
250              
251 0   0       while (!$_matched && !$commit)
252             {
253            
254 0 0         Parse::RecDescent::_trace(q{Trying production: ['field' IDENT '\{' field_body '\}']},
255             Parse::RecDescent::_tracefirst($_[1]),
256             q{join_table_statement},
257             $tracelevel)
258             if defined $::RD_TRACE;
259 0           my $thisprod = $thisrule->{"prods"}[0];
260 0           $text = $_[1];
261 0           my $_savetext;
262 0           @item = (q{join_table_statement});
263 0           %item = (__RULE__ => q{join_table_statement});
264 0           my $repcount = 0;
265              
266              
267 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['field']},
268             Parse::RecDescent::_tracefirst($text),
269             q{join_table_statement},
270             $tracelevel)
271             if defined $::RD_TRACE;
272 0           $lastsep = "";
273 0           $expectation->is(q{})->at($text);
274            
275              
276 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Afield//)
  0 0          
277             {
278            
279 0           $expectation->failed();
280 0 0         Parse::RecDescent::_trace(qq{<>},
281             Parse::RecDescent::_tracefirst($text))
282             if defined $::RD_TRACE;
283 0           last;
284             }
285 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
286             . $& . q{])},
287             Parse::RecDescent::_tracefirst($text))
288             if defined $::RD_TRACE;
289 0           push @item, $item{__STRING1__}=$&;
290            
291              
292            
293              
294 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
295             Parse::RecDescent::_tracefirst($text),
296             q{join_table_statement},
297             $tracelevel)
298             if defined $::RD_TRACE;
299 0           $_tok = do { $commit = 1 };
  0            
300 0 0         if (defined($_tok))
301             {
302 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
303             . $_tok . q{])},
304             Parse::RecDescent::_tracefirst($text))
305             if defined $::RD_TRACE;
306             }
307             else
308             {
309 0 0         Parse::RecDescent::_trace(q{<>},
310             Parse::RecDescent::_tracefirst($text))
311             if defined $::RD_TRACE;
312             }
313            
314 0 0         last unless defined $_tok;
315 0           push @item, $item{__DIRECTIVE1__}=$_tok;
316            
317              
318 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
319             Parse::RecDescent::_tracefirst($text),
320             q{join_table_statement},
321             $tracelevel)
322             if defined $::RD_TRACE;
323 41     41   268 if (1) { no strict qw{refs};
  41         76  
  41         17550  
  0            
324 0           $expectation->is(q{IDENT})->at($text);
325 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
326             {
327            
328 0 0         Parse::RecDescent::_trace(q{<>},
329             Parse::RecDescent::_tracefirst($text),
330             q{join_table_statement},
331             $tracelevel)
332             if defined $::RD_TRACE;
333 0           $expectation->failed();
334 0           last;
335             }
336 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
337             . $_tok . q{]},
338            
339             Parse::RecDescent::_tracefirst($text),
340             q{join_table_statement},
341             $tracelevel)
342             if defined $::RD_TRACE;
343 0           $item{q{IDENT}} = $_tok;
344 0           push @item, $_tok;
345            
346             }
347              
348 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
349             Parse::RecDescent::_tracefirst($text),
350             q{join_table_statement},
351             $tracelevel)
352             if defined $::RD_TRACE;
353 0           $lastsep = "";
354 0           $expectation->is(q{'\{'})->at($text);
355            
356              
357 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
358             {
359            
360 0           $expectation->failed();
361 0 0         Parse::RecDescent::_trace(qq{<>},
362             Parse::RecDescent::_tracefirst($text))
363             if defined $::RD_TRACE;
364 0           last;
365             }
366 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
367             . $& . q{])},
368             Parse::RecDescent::_tracefirst($text))
369             if defined $::RD_TRACE;
370 0           push @item, $item{__STRING2__}=$&;
371            
372              
373 0 0         Parse::RecDescent::_trace(q{Trying subrule: [field_body]},
374             Parse::RecDescent::_tracefirst($text),
375             q{join_table_statement},
376             $tracelevel)
377             if defined $::RD_TRACE;
378 41     41   273 if (1) { no strict qw{refs};
  41         100  
  41         39225  
  0            
379 0           $expectation->is(q{field_body})->at($text);
380 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::field_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
381             {
382            
383 0 0         Parse::RecDescent::_trace(q{<>},
384             Parse::RecDescent::_tracefirst($text),
385             q{join_table_statement},
386             $tracelevel)
387             if defined $::RD_TRACE;
388 0           $expectation->failed();
389 0           last;
390             }
391 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [field_body]<< (return value: [}
392             . $_tok . q{]},
393            
394             Parse::RecDescent::_tracefirst($text),
395             q{join_table_statement},
396             $tracelevel)
397             if defined $::RD_TRACE;
398 0           $item{q{field_body}} = $_tok;
399 0           push @item, $_tok;
400            
401             }
402              
403 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
404             Parse::RecDescent::_tracefirst($text),
405             q{join_table_statement},
406             $tracelevel)
407             if defined $::RD_TRACE;
408 0           $lastsep = "";
409 0           $expectation->is(q{'\}'})->at($text);
410            
411              
412 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
413             {
414            
415 0           $expectation->failed();
416 0 0         Parse::RecDescent::_trace(qq{<>},
417             Parse::RecDescent::_tracefirst($text))
418             if defined $::RD_TRACE;
419 0           last;
420             }
421 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
422             . $& . q{])},
423             Parse::RecDescent::_tracefirst($text))
424             if defined $::RD_TRACE;
425 0           push @item, $item{__STRING3__}=$&;
426            
427              
428 0 0         Parse::RecDescent::_trace(q{Trying action},
429             Parse::RecDescent::_tracefirst($text),
430             q{join_table_statement},
431             $tracelevel)
432             if defined $::RD_TRACE;
433            
434              
435 0 0         $_tok = ($_noactions) ? 0 : do {
436 0           bless {
437             __IDENT__ => Bigtop::Parser->get_ident(),
438             __TYPE__ => 'field',
439             __NAME__ => $item{IDENT},
440             __BODY__ =>
441             $item{field_body}{'field_statement(s?)'},
442             }, 'table_element_block'
443             };
444 0 0         unless (defined $_tok)
445             {
446 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
447             if defined $::RD_TRACE;
448 0           last;
449             }
450 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
451             . $_tok . q{])},
452             Parse::RecDescent::_tracefirst($text))
453             if defined $::RD_TRACE;
454 0           push @item, $_tok;
455 0           $item{__ACTION1__}=$_tok;
456            
457              
458              
459 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['field' IDENT '\{' field_body '\}']<<},
460             Parse::RecDescent::_tracefirst($text),
461             q{join_table_statement},
462             $tracelevel)
463             if defined $::RD_TRACE;
464 0           $_matched = 1;
465 0           last;
466             }
467              
468              
469 0   0       while (!$_matched && !$commit)
470             {
471            
472 0 0         Parse::RecDescent::_trace(q{Trying production: [keyword arg_list SEMI_COLON]},
473             Parse::RecDescent::_tracefirst($_[1]),
474             q{join_table_statement},
475             $tracelevel)
476             if defined $::RD_TRACE;
477 0           my $thisprod = $thisrule->{"prods"}[1];
478 0           $text = $_[1];
479 0           my $_savetext;
480 0           @item = (q{join_table_statement});
481 0           %item = (__RULE__ => q{join_table_statement});
482 0           my $repcount = 0;
483              
484              
485 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
486             Parse::RecDescent::_tracefirst($text),
487             q{join_table_statement},
488             $tracelevel)
489             if defined $::RD_TRACE;
490 41     41   280 if (1) { no strict qw{refs};
  41         82  
  41         11165  
  0            
491 0           $expectation->is(q{})->at($text);
492 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return ['join_table'] })))
  0            
493             {
494            
495 0 0         Parse::RecDescent::_trace(q{<>},
496             Parse::RecDescent::_tracefirst($text),
497             q{join_table_statement},
498             $tracelevel)
499             if defined $::RD_TRACE;
500 0           $expectation->failed();
501 0           last;
502             }
503 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
504             . $_tok . q{]},
505            
506             Parse::RecDescent::_tracefirst($text),
507             q{join_table_statement},
508             $tracelevel)
509             if defined $::RD_TRACE;
510 0           $item{q{keyword}} = $_tok;
511 0           push @item, $_tok;
512            
513             }
514              
515 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_list]},
516             Parse::RecDescent::_tracefirst($text),
517             q{join_table_statement},
518             $tracelevel)
519             if defined $::RD_TRACE;
520 41     41   237 if (1) { no strict qw{refs};
  41         83  
  41         12466  
  0            
521 0           $expectation->is(q{arg_list})->at($text);
522 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
523             {
524            
525 0 0         Parse::RecDescent::_trace(q{<>},
526             Parse::RecDescent::_tracefirst($text),
527             q{join_table_statement},
528             $tracelevel)
529             if defined $::RD_TRACE;
530 0           $expectation->failed();
531 0           last;
532             }
533 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_list]<< (return value: [}
534             . $_tok . q{]},
535            
536             Parse::RecDescent::_tracefirst($text),
537             q{join_table_statement},
538             $tracelevel)
539             if defined $::RD_TRACE;
540 0           $item{q{arg_list}} = $_tok;
541 0           push @item, $_tok;
542            
543             }
544              
545 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
546             Parse::RecDescent::_tracefirst($text),
547             q{join_table_statement},
548             $tracelevel)
549             if defined $::RD_TRACE;
550 41     41   225 if (1) { no strict qw{refs};
  41         86  
  41         34510  
  0            
551 0           $expectation->is(q{SEMI_COLON})->at($text);
552 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
553             {
554            
555 0 0         Parse::RecDescent::_trace(q{<>},
556             Parse::RecDescent::_tracefirst($text),
557             q{join_table_statement},
558             $tracelevel)
559             if defined $::RD_TRACE;
560 0           $expectation->failed();
561 0           last;
562             }
563 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
564             . $_tok . q{]},
565            
566             Parse::RecDescent::_tracefirst($text),
567             q{join_table_statement},
568             $tracelevel)
569             if defined $::RD_TRACE;
570 0           $item{q{SEMI_COLON}} = $_tok;
571 0           push @item, $_tok;
572            
573             }
574              
575 0 0         Parse::RecDescent::_trace(q{Trying action},
576             Parse::RecDescent::_tracefirst($text),
577             q{join_table_statement},
578             $tracelevel)
579             if defined $::RD_TRACE;
580            
581              
582 0 0         $_tok = ($_noactions) ? 0 : do {
583 0           bless {
584             __KEYWORD__ => $item[1], __DEF__ => $item[2]
585             }, 'join_table_statement'
586             };
587 0 0         unless (defined $_tok)
588             {
589 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
590             if defined $::RD_TRACE;
591 0           last;
592             }
593 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
594             . $_tok . q{])},
595             Parse::RecDescent::_tracefirst($text))
596             if defined $::RD_TRACE;
597 0           push @item, $_tok;
598 0           $item{__ACTION1__}=$_tok;
599            
600              
601              
602 0 0         Parse::RecDescent::_trace(q{>>Matched production: [keyword arg_list SEMI_COLON]<<},
603             Parse::RecDescent::_tracefirst($text),
604             q{join_table_statement},
605             $tracelevel)
606             if defined $::RD_TRACE;
607 0           $_matched = 1;
608 0           last;
609             }
610              
611              
612 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
613             {
614            
615              
616 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
617 0 0         Parse::RecDescent::_trace(q{<>},
618             Parse::RecDescent::_tracefirst($_[1]),
619             q{join_table_statement},
620             $tracelevel)
621             if defined $::RD_TRACE;
622 0           return undef;
623             }
624 0 0 0       if (!defined($return) && defined($score))
625             {
626 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
627             q{join_table_statement},
628             $tracelevel)
629             if defined $::RD_TRACE;
630 0           $return = $score_return;
631             }
632 0           splice @{$thisparser->{errors}}, $err_at;
  0            
633 0 0         $return = $item[$#item] unless defined $return;
634 0 0         if (defined $::RD_TRACE)
635             {
636 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
637             $return . q{])}, "",
638             q{join_table_statement},
639             $tracelevel);
640 0           Parse::RecDescent::_trace(q{(consumed: [} .
641             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
642             Parse::RecDescent::_tracefirst($text),
643             , q{join_table_statement},
644             $tracelevel)
645             }
646 0           $_[1] = $text;
647 0           return $return;
648             }
649              
650             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
651             sub Parse::RecDescent::Bigtop::Grammar::backend_body
652             {
653 0     0     my $thisparser = $_[0];
654 41     41   265 use vars q{$tracelevel};
  41         75  
  41         44139  
655 0   0       local $tracelevel = ($tracelevel||0)+1;
656 0           $ERRORS = 0;
657 0           my $thisrule = $thisparser->{"rules"}{"backend_body"};
658            
659 0 0         Parse::RecDescent::_trace(q{Trying rule: [backend_body]},
660             Parse::RecDescent::_tracefirst($_[1]),
661             q{backend_body},
662             $tracelevel)
663             if defined $::RD_TRACE;
664              
665            
666 0           my $err_at = @{$thisparser->{errors}};
  0            
667              
668 0           my $score;
669             my $score_return;
670 0           my $_tok;
671 0           my $return = undef;
672 0           my $_matched=0;
673 0           my $commit=0;
674 0           my @item = ();
675 0           my %item = ();
676 0   0       my $repeating = defined($_[2]) && $_[2];
677 0   0       my $_noactions = defined($_[3]) && $_[3];
678 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
679 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
680 0           my $text;
681 0           my $lastsep="";
682 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
683 0           $expectation->at($_[1]);
684            
685 0           my $thisline;
686 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
687              
688            
689              
690 0   0       while (!$_matched && !$commit)
691             {
692            
693 0 0         Parse::RecDescent::_trace(q{Trying production: [backend_statement]},
694             Parse::RecDescent::_tracefirst($_[1]),
695             q{backend_body},
696             $tracelevel)
697             if defined $::RD_TRACE;
698 0           my $thisprod = $thisrule->{"prods"}[0];
699 0           $text = $_[1];
700 0           my $_savetext;
701 0           @item = (q{backend_body});
702 0           %item = (__RULE__ => q{backend_body});
703 0           my $repcount = 0;
704              
705              
706 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [backend_statement]},
707             Parse::RecDescent::_tracefirst($text),
708             q{backend_body},
709             $tracelevel)
710             if defined $::RD_TRACE;
711 0           $expectation->is(q{})->at($text);
712            
713 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::backend_statement, 0, 100000000, $_noactions,$expectation,undef)))
714             {
715 0 0         Parse::RecDescent::_trace(q{<>},
716             Parse::RecDescent::_tracefirst($text),
717             q{backend_body},
718             $tracelevel)
719             if defined $::RD_TRACE;
720 0           last;
721             }
722 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [backend_statement]<< (}
723             . @$_tok . q{ times)},
724            
725             Parse::RecDescent::_tracefirst($text),
726             q{backend_body},
727             $tracelevel)
728             if defined $::RD_TRACE;
729 0           $item{q{backend_statement(s?)}} = $_tok;
730 0           push @item, $_tok;
731            
732              
733              
734 0 0         Parse::RecDescent::_trace(q{Trying action},
735             Parse::RecDescent::_tracefirst($text),
736             q{backend_body},
737             $tracelevel)
738             if defined $::RD_TRACE;
739            
740              
741 0 0         $_tok = ($_noactions) ? 0 : do {
742 0           my %config;
743 0           foreach my $statement ( @{ $item{'backend_statement(s?)'} } ) {
  0            
744 0           $config{ $statement->[0] } = $statement->[1];
745             }
746 0           $return = \%config;
747             };
748 0 0         unless (defined $_tok)
749             {
750 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
751             if defined $::RD_TRACE;
752 0           last;
753             }
754 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
755             . $_tok . q{])},
756             Parse::RecDescent::_tracefirst($text))
757             if defined $::RD_TRACE;
758 0           push @item, $_tok;
759 0           $item{__ACTION1__}=$_tok;
760            
761              
762              
763 0 0         Parse::RecDescent::_trace(q{>>Matched production: [backend_statement]<<},
764             Parse::RecDescent::_tracefirst($text),
765             q{backend_body},
766             $tracelevel)
767             if defined $::RD_TRACE;
768 0           $_matched = 1;
769 0           last;
770             }
771              
772              
773 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
774             {
775            
776              
777 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
778 0 0         Parse::RecDescent::_trace(q{<>},
779             Parse::RecDescent::_tracefirst($_[1]),
780             q{backend_body},
781             $tracelevel)
782             if defined $::RD_TRACE;
783 0           return undef;
784             }
785 0 0 0       if (!defined($return) && defined($score))
786             {
787 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
788             q{backend_body},
789             $tracelevel)
790             if defined $::RD_TRACE;
791 0           $return = $score_return;
792             }
793 0           splice @{$thisparser->{errors}}, $err_at;
  0            
794 0 0         $return = $item[$#item] unless defined $return;
795 0 0         if (defined $::RD_TRACE)
796             {
797 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
798             $return . q{])}, "",
799             q{backend_body},
800             $tracelevel);
801 0           Parse::RecDescent::_trace(q{(consumed: [} .
802             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
803             Parse::RecDescent::_tracefirst($text),
804             , q{backend_body},
805             $tracelevel)
806             }
807 0           $_[1] = $text;
808 0           return $return;
809             }
810              
811             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
812             sub Parse::RecDescent::Bigtop::Grammar::arg
813             {
814 0     0     my $thisparser = $_[0];
815 41     41   285 use vars q{$tracelevel};
  41         103  
  41         17929  
816 0   0       local $tracelevel = ($tracelevel||0)+1;
817 0           $ERRORS = 0;
818 0           my $thisrule = $thisparser->{"rules"}{"arg"};
819            
820 0 0         Parse::RecDescent::_trace(q{Trying rule: [arg]},
821             Parse::RecDescent::_tracefirst($_[1]),
822             q{arg},
823             $tracelevel)
824             if defined $::RD_TRACE;
825              
826            
827 0           my $err_at = @{$thisparser->{errors}};
  0            
828              
829 0           my $score;
830             my $score_return;
831 0           my $_tok;
832 0           my $return = undef;
833 0           my $_matched=0;
834 0           my $commit=0;
835 0           my @item = ();
836 0           my %item = ();
837 0   0       my $repeating = defined($_[2]) && $_[2];
838 0   0       my $_noactions = defined($_[3]) && $_[3];
839 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
840 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
841 0           my $text;
842 0           my $lastsep="";
843 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
844 0           $expectation->at($_[1]);
845            
846 0           my $thisline;
847 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
848              
849            
850              
851 0   0       while (!$_matched && !$commit)
852             {
853            
854 0 0         Parse::RecDescent::_trace(q{Trying production: [arg_element '=>' arg_element]},
855             Parse::RecDescent::_tracefirst($_[1]),
856             q{arg},
857             $tracelevel)
858             if defined $::RD_TRACE;
859 0           my $thisprod = $thisrule->{"prods"}[0];
860 0           $text = $_[1];
861 0           my $_savetext;
862 0           @item = (q{arg});
863 0           %item = (__RULE__ => q{arg});
864 0           my $repcount = 0;
865              
866              
867 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_element]},
868             Parse::RecDescent::_tracefirst($text),
869             q{arg},
870             $tracelevel)
871             if defined $::RD_TRACE;
872 41     41   234 if (1) { no strict qw{refs};
  41         122  
  41         23775  
  0            
873 0           $expectation->is(q{})->at($text);
874 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
875             {
876            
877 0 0         Parse::RecDescent::_trace(q{<>},
878             Parse::RecDescent::_tracefirst($text),
879             q{arg},
880             $tracelevel)
881             if defined $::RD_TRACE;
882 0           $expectation->failed();
883 0           last;
884             }
885 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_element]<< (return value: [}
886             . $_tok . q{]},
887            
888             Parse::RecDescent::_tracefirst($text),
889             q{arg},
890             $tracelevel)
891             if defined $::RD_TRACE;
892 0           $item{q{arg_element}} = $_tok;
893 0           push @item, $_tok;
894            
895             }
896              
897 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['=>']},
898             Parse::RecDescent::_tracefirst($text),
899             q{arg},
900             $tracelevel)
901             if defined $::RD_TRACE;
902 0           $lastsep = "";
903 0           $expectation->is(q{'=>'})->at($text);
904            
905              
906 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\=\>//)
  0 0          
907             {
908            
909 0           $expectation->failed();
910 0 0         Parse::RecDescent::_trace(qq{<>},
911             Parse::RecDescent::_tracefirst($text))
912             if defined $::RD_TRACE;
913 0           last;
914             }
915 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
916             . $& . q{])},
917             Parse::RecDescent::_tracefirst($text))
918             if defined $::RD_TRACE;
919 0           push @item, $item{__STRING1__}=$&;
920            
921              
922 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_element]},
923             Parse::RecDescent::_tracefirst($text),
924             q{arg},
925             $tracelevel)
926             if defined $::RD_TRACE;
927 41     41   267 if (1) { no strict qw{refs};
  41         78  
  41         24313  
  0            
928 0           $expectation->is(q{arg_element})->at($text);
929 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
930             {
931            
932 0 0         Parse::RecDescent::_trace(q{<>},
933             Parse::RecDescent::_tracefirst($text),
934             q{arg},
935             $tracelevel)
936             if defined $::RD_TRACE;
937 0           $expectation->failed();
938 0           last;
939             }
940 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_element]<< (return value: [}
941             . $_tok . q{]},
942            
943             Parse::RecDescent::_tracefirst($text),
944             q{arg},
945             $tracelevel)
946             if defined $::RD_TRACE;
947 0           $item{q{arg_element}} = $_tok;
948 0           push @item, $_tok;
949            
950             }
951              
952 0 0         Parse::RecDescent::_trace(q{Trying action},
953             Parse::RecDescent::_tracefirst($text),
954             q{arg},
955             $tracelevel)
956             if defined $::RD_TRACE;
957            
958              
959 0 0         $_tok = ($_noactions) ? 0 : do { $return = { $item[1] => $item[3] } };
  0            
960 0 0         unless (defined $_tok)
961             {
962 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
963             if defined $::RD_TRACE;
964 0           last;
965             }
966 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
967             . $_tok . q{])},
968             Parse::RecDescent::_tracefirst($text))
969             if defined $::RD_TRACE;
970 0           push @item, $_tok;
971 0           $item{__ACTION1__}=$_tok;
972            
973              
974              
975 0 0         Parse::RecDescent::_trace(q{>>Matched production: [arg_element '=>' arg_element]<<},
976             Parse::RecDescent::_tracefirst($text),
977             q{arg},
978             $tracelevel)
979             if defined $::RD_TRACE;
980 0           $_matched = 1;
981 0           last;
982             }
983              
984              
985 0   0       while (!$_matched && !$commit)
986             {
987            
988 0 0         Parse::RecDescent::_trace(q{Trying production: [arg_element]},
989             Parse::RecDescent::_tracefirst($_[1]),
990             q{arg},
991             $tracelevel)
992             if defined $::RD_TRACE;
993 0           my $thisprod = $thisrule->{"prods"}[1];
994 0           $text = $_[1];
995 0           my $_savetext;
996 0           @item = (q{arg});
997 0           %item = (__RULE__ => q{arg});
998 0           my $repcount = 0;
999              
1000              
1001 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_element]},
1002             Parse::RecDescent::_tracefirst($text),
1003             q{arg},
1004             $tracelevel)
1005             if defined $::RD_TRACE;
1006 41     41   244 if (1) { no strict qw{refs};
  41         88  
  41         33531  
  0            
1007 0           $expectation->is(q{})->at($text);
1008 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1009             {
1010            
1011 0 0         Parse::RecDescent::_trace(q{<>},
1012             Parse::RecDescent::_tracefirst($text),
1013             q{arg},
1014             $tracelevel)
1015             if defined $::RD_TRACE;
1016 0           $expectation->failed();
1017 0           last;
1018             }
1019 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_element]<< (return value: [}
1020             . $_tok . q{]},
1021            
1022             Parse::RecDescent::_tracefirst($text),
1023             q{arg},
1024             $tracelevel)
1025             if defined $::RD_TRACE;
1026 0           $item{q{arg_element}} = $_tok;
1027 0           push @item, $_tok;
1028            
1029             }
1030              
1031 0 0         Parse::RecDescent::_trace(q{Trying action},
1032             Parse::RecDescent::_tracefirst($text),
1033             q{arg},
1034             $tracelevel)
1035             if defined $::RD_TRACE;
1036            
1037              
1038 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] };
  0            
1039 0 0         unless (defined $_tok)
1040             {
1041 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
1042             if defined $::RD_TRACE;
1043 0           last;
1044             }
1045 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1046             . $_tok . q{])},
1047             Parse::RecDescent::_tracefirst($text))
1048             if defined $::RD_TRACE;
1049 0           push @item, $_tok;
1050 0           $item{__ACTION1__}=$_tok;
1051            
1052              
1053              
1054 0 0         Parse::RecDescent::_trace(q{>>Matched production: [arg_element]<<},
1055             Parse::RecDescent::_tracefirst($text),
1056             q{arg},
1057             $tracelevel)
1058             if defined $::RD_TRACE;
1059 0           $_matched = 1;
1060 0           last;
1061             }
1062              
1063              
1064 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
1065             {
1066            
1067              
1068 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
1069 0 0         Parse::RecDescent::_trace(q{<>},
1070             Parse::RecDescent::_tracefirst($_[1]),
1071             q{arg},
1072             $tracelevel)
1073             if defined $::RD_TRACE;
1074 0           return undef;
1075             }
1076 0 0 0       if (!defined($return) && defined($score))
1077             {
1078 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1079             q{arg},
1080             $tracelevel)
1081             if defined $::RD_TRACE;
1082 0           $return = $score_return;
1083             }
1084 0           splice @{$thisparser->{errors}}, $err_at;
  0            
1085 0 0         $return = $item[$#item] unless defined $return;
1086 0 0         if (defined $::RD_TRACE)
1087             {
1088 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1089             $return . q{])}, "",
1090             q{arg},
1091             $tracelevel);
1092 0           Parse::RecDescent::_trace(q{(consumed: [} .
1093             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1094             Parse::RecDescent::_tracefirst($text),
1095             , q{arg},
1096             $tracelevel)
1097             }
1098 0           $_[1] = $text;
1099 0           return $return;
1100             }
1101              
1102             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1103             sub Parse::RecDescent::Bigtop::Grammar::IDENT
1104             {
1105 0     0     my $thisparser = $_[0];
1106 41     41   249 use vars q{$tracelevel};
  41         79  
  41         48676  
1107 0   0       local $tracelevel = ($tracelevel||0)+1;
1108 0           $ERRORS = 0;
1109 0           my $thisrule = $thisparser->{"rules"}{"IDENT"};
1110            
1111 0 0         Parse::RecDescent::_trace(q{Trying rule: [IDENT]},
1112             Parse::RecDescent::_tracefirst($_[1]),
1113             q{IDENT},
1114             $tracelevel)
1115             if defined $::RD_TRACE;
1116              
1117            
1118 0           my $err_at = @{$thisparser->{errors}};
  0            
1119              
1120 0           my $score;
1121             my $score_return;
1122 0           my $_tok;
1123 0           my $return = undef;
1124 0           my $_matched=0;
1125 0           my $commit=0;
1126 0           my @item = ();
1127 0           my %item = ();
1128 0   0       my $repeating = defined($_[2]) && $_[2];
1129 0   0       my $_noactions = defined($_[3]) && $_[3];
1130 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
1131 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1132 0           my $text;
1133 0           my $lastsep="";
1134 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1135 0           $expectation->at($_[1]);
1136            
1137 0           my $thisline;
1138 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1139              
1140            
1141              
1142 0   0       while (!$_matched && !$commit)
1143             {
1144            
1145 0 0         Parse::RecDescent::_trace(q{Trying production: [/^\\w[\\w\\d_]*/]},
1146             Parse::RecDescent::_tracefirst($_[1]),
1147             q{IDENT},
1148             $tracelevel)
1149             if defined $::RD_TRACE;
1150 0           my $thisprod = $thisrule->{"prods"}[0];
1151 0           $text = $_[1];
1152 0           my $_savetext;
1153 0           @item = (q{IDENT});
1154 0           %item = (__RULE__ => q{IDENT});
1155 0           my $repcount = 0;
1156              
1157              
1158 0 0         Parse::RecDescent::_trace(q{Trying terminal: [/^\\w[\\w\\d_]*/]}, Parse::RecDescent::_tracefirst($text),
1159             q{IDENT},
1160             $tracelevel)
1161             if defined $::RD_TRACE;
1162 0           $lastsep = "";
1163 0           $expectation->is(q{})->at($text);
1164            
1165              
1166 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:^\w[\w\d_]*)//)
  0 0          
1167             {
1168            
1169 0           $expectation->failed();
1170 0 0         Parse::RecDescent::_trace(q{<>},
1171             Parse::RecDescent::_tracefirst($text))
1172             if defined $::RD_TRACE;
1173              
1174 0           last;
1175             }
1176 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1177             . $& . q{])},
1178             Parse::RecDescent::_tracefirst($text))
1179             if defined $::RD_TRACE;
1180 0           push @item, $item{__PATTERN1__}=$&;
1181            
1182              
1183 0 0         Parse::RecDescent::_trace(q{Trying action},
1184             Parse::RecDescent::_tracefirst($text),
1185             q{IDENT},
1186             $tracelevel)
1187             if defined $::RD_TRACE;
1188            
1189              
1190 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] };
  0            
1191 0 0         unless (defined $_tok)
1192             {
1193 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
1194             if defined $::RD_TRACE;
1195 0           last;
1196             }
1197 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1198             . $_tok . q{])},
1199             Parse::RecDescent::_tracefirst($text))
1200             if defined $::RD_TRACE;
1201 0           push @item, $_tok;
1202 0           $item{__ACTION1__}=$_tok;
1203            
1204              
1205              
1206 0 0         Parse::RecDescent::_trace(q{>>Matched production: [/^\\w[\\w\\d_]*/]<<},
1207             Parse::RecDescent::_tracefirst($text),
1208             q{IDENT},
1209             $tracelevel)
1210             if defined $::RD_TRACE;
1211 0           $_matched = 1;
1212 0           last;
1213             }
1214              
1215              
1216 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
1217             {
1218            
1219              
1220 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
1221 0 0         Parse::RecDescent::_trace(q{<>},
1222             Parse::RecDescent::_tracefirst($_[1]),
1223             q{IDENT},
1224             $tracelevel)
1225             if defined $::RD_TRACE;
1226 0           return undef;
1227             }
1228 0 0 0       if (!defined($return) && defined($score))
1229             {
1230 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1231             q{IDENT},
1232             $tracelevel)
1233             if defined $::RD_TRACE;
1234 0           $return = $score_return;
1235             }
1236 0           splice @{$thisparser->{errors}}, $err_at;
  0            
1237 0 0         $return = $item[$#item] unless defined $return;
1238 0 0         if (defined $::RD_TRACE)
1239             {
1240 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1241             $return . q{])}, "",
1242             q{IDENT},
1243             $tracelevel);
1244 0           Parse::RecDescent::_trace(q{(consumed: [} .
1245             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1246             Parse::RecDescent::_tracefirst($text),
1247             , q{IDENT},
1248             $tracelevel)
1249             }
1250 0           $_[1] = $text;
1251 0           return $return;
1252             }
1253              
1254             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1255             sub Parse::RecDescent::Bigtop::Grammar::string
1256             {
1257 0     0     my $thisparser = $_[0];
1258 41     41   4529 use vars q{$tracelevel};
  41         98  
  41         16949  
1259 0   0       local $tracelevel = ($tracelevel||0)+1;
1260 0           $ERRORS = 0;
1261 0           my $thisrule = $thisparser->{"rules"}{"string"};
1262            
1263 0 0         Parse::RecDescent::_trace(q{Trying rule: [string]},
1264             Parse::RecDescent::_tracefirst($_[1]),
1265             q{string},
1266             $tracelevel)
1267             if defined $::RD_TRACE;
1268              
1269            
1270 0           my $err_at = @{$thisparser->{errors}};
  0            
1271              
1272 0           my $score;
1273             my $score_return;
1274 0           my $_tok;
1275 0           my $return = undef;
1276 0           my $_matched=0;
1277 0           my $commit=0;
1278 0           my @item = ();
1279 0           my %item = ();
1280 0   0       my $repeating = defined($_[2]) && $_[2];
1281 0   0       my $_noactions = defined($_[3]) && $_[3];
1282 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
1283 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1284 0           my $text;
1285 0           my $lastsep="";
1286 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1287 0           $expectation->at($_[1]);
1288            
1289 0           my $thisline;
1290 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1291              
1292            
1293              
1294 0   0       while (!$_matched && !$commit)
1295             {
1296 0 0         local $skip = defined($skip) ? $skip : $Parse::RecDescent::skip;
1297 0 0         Parse::RecDescent::_trace(q{Trying production: [BACKTICK text BACKTICK]},
1298             Parse::RecDescent::_tracefirst($_[1]),
1299             q{string},
1300             $tracelevel)
1301             if defined $::RD_TRACE;
1302 0           my $thisprod = $thisrule->{"prods"}[0];
1303 0           $text = $_[1];
1304 0           my $_savetext;
1305 0           @item = (q{string});
1306 0           %item = (__RULE__ => q{string});
1307 0           my $repcount = 0;
1308              
1309              
1310 0 0         Parse::RecDescent::_trace(q{Trying subrule: [BACKTICK]},
1311             Parse::RecDescent::_tracefirst($text),
1312             q{string},
1313             $tracelevel)
1314             if defined $::RD_TRACE;
1315 41     41   234 if (1) { no strict qw{refs};
  41         85  
  41         15232  
  0            
1316 0           $expectation->is(q{})->at($text);
1317 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::BACKTICK($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1318             {
1319            
1320 0 0         Parse::RecDescent::_trace(q{<>},
1321             Parse::RecDescent::_tracefirst($text),
1322             q{string},
1323             $tracelevel)
1324             if defined $::RD_TRACE;
1325 0           $expectation->failed();
1326 0           last;
1327             }
1328 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [BACKTICK]<< (return value: [}
1329             . $_tok . q{]},
1330            
1331             Parse::RecDescent::_tracefirst($text),
1332             q{string},
1333             $tracelevel)
1334             if defined $::RD_TRACE;
1335 0           $item{q{BACKTICK}} = $_tok;
1336 0           push @item, $_tok;
1337            
1338             }
1339              
1340            
1341              
1342 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
1343             Parse::RecDescent::_tracefirst($text),
1344             q{string},
1345             $tracelevel)
1346             if defined $::RD_TRACE;
1347 0           $_tok = do { my $oldskip = $skip; $skip=''; $oldskip };
  0            
  0            
  0            
1348 0 0         if (defined($_tok))
1349             {
1350 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
1351             . $_tok . q{])},
1352             Parse::RecDescent::_tracefirst($text))
1353             if defined $::RD_TRACE;
1354             }
1355             else
1356             {
1357 0 0         Parse::RecDescent::_trace(q{<>},
1358             Parse::RecDescent::_tracefirst($text))
1359             if defined $::RD_TRACE;
1360             }
1361            
1362 0 0         last unless defined $_tok;
1363 0           push @item, $item{__DIRECTIVE1__}=$_tok;
1364            
1365              
1366 0 0         Parse::RecDescent::_trace(q{Trying subrule: [text]},
1367             Parse::RecDescent::_tracefirst($text),
1368             q{string},
1369             $tracelevel)
1370             if defined $::RD_TRACE;
1371 41     41   250 if (1) { no strict qw{refs};
  41         87  
  41         9897  
  0            
1372 0           $expectation->is(q{text})->at($text);
1373 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::text($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1374             {
1375            
1376 0 0         Parse::RecDescent::_trace(q{<>},
1377             Parse::RecDescent::_tracefirst($text),
1378             q{string},
1379             $tracelevel)
1380             if defined $::RD_TRACE;
1381 0           $expectation->failed();
1382 0           last;
1383             }
1384 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [text]<< (return value: [}
1385             . $_tok . q{]},
1386            
1387             Parse::RecDescent::_tracefirst($text),
1388             q{string},
1389             $tracelevel)
1390             if defined $::RD_TRACE;
1391 0           $item{q{text}} = $_tok;
1392 0           push @item, $_tok;
1393            
1394             }
1395              
1396 0 0         Parse::RecDescent::_trace(q{Trying subrule: [BACKTICK]},
1397             Parse::RecDescent::_tracefirst($text),
1398             q{string},
1399             $tracelevel)
1400             if defined $::RD_TRACE;
1401 41     41   231 if (1) { no strict qw{refs};
  41         82  
  41         32834  
  0            
1402 0           $expectation->is(q{BACKTICK})->at($text);
1403 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::BACKTICK($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1404             {
1405            
1406 0 0         Parse::RecDescent::_trace(q{<>},
1407             Parse::RecDescent::_tracefirst($text),
1408             q{string},
1409             $tracelevel)
1410             if defined $::RD_TRACE;
1411 0           $expectation->failed();
1412 0           last;
1413             }
1414 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [BACKTICK]<< (return value: [}
1415             . $_tok . q{]},
1416            
1417             Parse::RecDescent::_tracefirst($text),
1418             q{string},
1419             $tracelevel)
1420             if defined $::RD_TRACE;
1421 0           $item{q{BACKTICK}} = $_tok;
1422 0           push @item, $_tok;
1423            
1424             }
1425              
1426 0 0         Parse::RecDescent::_trace(q{Trying action},
1427             Parse::RecDescent::_tracefirst($text),
1428             q{string},
1429             $tracelevel)
1430             if defined $::RD_TRACE;
1431            
1432              
1433 0 0         $_tok = ($_noactions) ? 0 : do { $item{text} };
  0            
1434 0 0         unless (defined $_tok)
1435             {
1436 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
1437             if defined $::RD_TRACE;
1438 0           last;
1439             }
1440 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1441             . $_tok . q{])},
1442             Parse::RecDescent::_tracefirst($text))
1443             if defined $::RD_TRACE;
1444 0           push @item, $_tok;
1445 0           $item{__ACTION1__}=$_tok;
1446            
1447              
1448              
1449 0 0         Parse::RecDescent::_trace(q{>>Matched production: [BACKTICK text BACKTICK]<<},
1450             Parse::RecDescent::_tracefirst($text),
1451             q{string},
1452             $tracelevel)
1453             if defined $::RD_TRACE;
1454 0           $_matched = 1;
1455 0           last;
1456             }
1457              
1458              
1459 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
1460             {
1461            
1462              
1463 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
1464 0 0         Parse::RecDescent::_trace(q{<>},
1465             Parse::RecDescent::_tracefirst($_[1]),
1466             q{string},
1467             $tracelevel)
1468             if defined $::RD_TRACE;
1469 0           return undef;
1470             }
1471 0 0 0       if (!defined($return) && defined($score))
1472             {
1473 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1474             q{string},
1475             $tracelevel)
1476             if defined $::RD_TRACE;
1477 0           $return = $score_return;
1478             }
1479 0           splice @{$thisparser->{errors}}, $err_at;
  0            
1480 0 0         $return = $item[$#item] unless defined $return;
1481 0 0         if (defined $::RD_TRACE)
1482             {
1483 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1484             $return . q{])}, "",
1485             q{string},
1486             $tracelevel);
1487 0           Parse::RecDescent::_trace(q{(consumed: [} .
1488             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1489             Parse::RecDescent::_tracefirst($text),
1490             , q{string},
1491             $tracelevel)
1492             }
1493 0           $_[1] = $text;
1494 0           return $return;
1495             }
1496              
1497             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1498             sub Parse::RecDescent::Bigtop::Grammar::app_config_statement
1499             {
1500 0     0     my $thisparser = $_[0];
1501 41     41   262 use vars q{$tracelevel};
  41         89  
  41         16533  
1502 0   0       local $tracelevel = ($tracelevel||0)+1;
1503 0           $ERRORS = 0;
1504 0           my $thisrule = $thisparser->{"rules"}{"app_config_statement"};
1505            
1506 0 0         Parse::RecDescent::_trace(q{Trying rule: [app_config_statement]},
1507             Parse::RecDescent::_tracefirst($_[1]),
1508             q{app_config_statement},
1509             $tracelevel)
1510             if defined $::RD_TRACE;
1511              
1512            
1513 0           my $err_at = @{$thisparser->{errors}};
  0            
1514              
1515 0           my $score;
1516             my $score_return;
1517 0           my $_tok;
1518 0           my $return = undef;
1519 0           my $_matched=0;
1520 0           my $commit=0;
1521 0           my @item = ();
1522 0           my %item = ();
1523 0   0       my $repeating = defined($_[2]) && $_[2];
1524 0   0       my $_noactions = defined($_[3]) && $_[3];
1525 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
1526 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1527 0           my $text;
1528 0           my $lastsep="";
1529 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1530 0           $expectation->at($_[1]);
1531            
1532 0           my $thisline;
1533 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1534              
1535            
1536              
1537 0   0       while (!$_matched && !$commit)
1538             {
1539            
1540 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT arg_list SEMI_COLON]},
1541             Parse::RecDescent::_tracefirst($_[1]),
1542             q{app_config_statement},
1543             $tracelevel)
1544             if defined $::RD_TRACE;
1545 0           my $thisprod = $thisrule->{"prods"}[0];
1546 0           $text = $_[1];
1547 0           my $_savetext;
1548 0           @item = (q{app_config_statement});
1549 0           %item = (__RULE__ => q{app_config_statement});
1550 0           my $repcount = 0;
1551              
1552              
1553 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
1554             Parse::RecDescent::_tracefirst($text),
1555             q{app_config_statement},
1556             $tracelevel)
1557             if defined $::RD_TRACE;
1558 41     41   243 if (1) { no strict qw{refs};
  41         91  
  41         8326  
  0            
1559 0           $expectation->is(q{})->at($text);
1560 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1561             {
1562            
1563 0 0         Parse::RecDescent::_trace(q{<>},
1564             Parse::RecDescent::_tracefirst($text),
1565             q{app_config_statement},
1566             $tracelevel)
1567             if defined $::RD_TRACE;
1568 0           $expectation->failed();
1569 0           last;
1570             }
1571 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
1572             . $_tok . q{]},
1573            
1574             Parse::RecDescent::_tracefirst($text),
1575             q{app_config_statement},
1576             $tracelevel)
1577             if defined $::RD_TRACE;
1578 0           $item{q{IDENT}} = $_tok;
1579 0           push @item, $_tok;
1580            
1581             }
1582              
1583 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_list]},
1584             Parse::RecDescent::_tracefirst($text),
1585             q{app_config_statement},
1586             $tracelevel)
1587             if defined $::RD_TRACE;
1588 41     41   1239 if (1) { no strict qw{refs};
  41         100  
  41         9732  
  0            
1589 0           $expectation->is(q{arg_list})->at($text);
1590 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1591             {
1592            
1593 0 0         Parse::RecDescent::_trace(q{<>},
1594             Parse::RecDescent::_tracefirst($text),
1595             q{app_config_statement},
1596             $tracelevel)
1597             if defined $::RD_TRACE;
1598 0           $expectation->failed();
1599 0           last;
1600             }
1601 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_list]<< (return value: [}
1602             . $_tok . q{]},
1603            
1604             Parse::RecDescent::_tracefirst($text),
1605             q{app_config_statement},
1606             $tracelevel)
1607             if defined $::RD_TRACE;
1608 0           $item{q{arg_list}} = $_tok;
1609 0           push @item, $_tok;
1610            
1611             }
1612              
1613 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
1614             Parse::RecDescent::_tracefirst($text),
1615             q{app_config_statement},
1616             $tracelevel)
1617             if defined $::RD_TRACE;
1618 41     41   217 if (1) { no strict qw{refs};
  41         66  
  41         56157  
  0            
1619 0           $expectation->is(q{SEMI_COLON})->at($text);
1620 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1621             {
1622            
1623 0 0         Parse::RecDescent::_trace(q{<>},
1624             Parse::RecDescent::_tracefirst($text),
1625             q{app_config_statement},
1626             $tracelevel)
1627             if defined $::RD_TRACE;
1628 0           $expectation->failed();
1629 0           last;
1630             }
1631 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
1632             . $_tok . q{]},
1633            
1634             Parse::RecDescent::_tracefirst($text),
1635             q{app_config_statement},
1636             $tracelevel)
1637             if defined $::RD_TRACE;
1638 0           $item{q{SEMI_COLON}} = $_tok;
1639 0           push @item, $_tok;
1640            
1641             }
1642              
1643 0 0         Parse::RecDescent::_trace(q{Trying action},
1644             Parse::RecDescent::_tracefirst($text),
1645             q{app_config_statement},
1646             $tracelevel)
1647             if defined $::RD_TRACE;
1648            
1649              
1650 0 0         $_tok = ($_noactions) ? 0 : do {
1651 0           bless {
1652             __KEYWORD__ => $item{IDENT},
1653             __ARGS__ => $item{arg_list}
1654             }, 'app_config_statement'
1655             };
1656 0 0         unless (defined $_tok)
1657             {
1658 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
1659             if defined $::RD_TRACE;
1660 0           last;
1661             }
1662 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1663             . $_tok . q{])},
1664             Parse::RecDescent::_tracefirst($text))
1665             if defined $::RD_TRACE;
1666 0           push @item, $_tok;
1667 0           $item{__ACTION1__}=$_tok;
1668            
1669              
1670              
1671 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT arg_list SEMI_COLON]<<},
1672             Parse::RecDescent::_tracefirst($text),
1673             q{app_config_statement},
1674             $tracelevel)
1675             if defined $::RD_TRACE;
1676 0           $_matched = 1;
1677 0           last;
1678             }
1679              
1680              
1681 0   0       while (!$_matched && !$commit)
1682             {
1683            
1684 0 0         Parse::RecDescent::_trace(q{Trying production: [/[^\\\}]/]},
1685             Parse::RecDescent::_tracefirst($_[1]),
1686             q{app_config_statement},
1687             $tracelevel)
1688             if defined $::RD_TRACE;
1689 0           my $thisprod = $thisrule->{"prods"}[1];
1690 0           $text = $_[1];
1691 0           my $_savetext;
1692 0           @item = (q{app_config_statement});
1693 0           %item = (__RULE__ => q{app_config_statement});
1694 0           my $repcount = 0;
1695              
1696              
1697 0 0         Parse::RecDescent::_trace(q{Trying terminal: [/[^\\\}]/]}, Parse::RecDescent::_tracefirst($text),
1698             q{app_config_statement},
1699             $tracelevel)
1700             if defined $::RD_TRACE;
1701 0           $lastsep = "";
1702 0           $expectation->is(q{})->at($text);
1703            
1704              
1705 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[^\}])//)
  0 0          
1706             {
1707            
1708 0           $expectation->failed();
1709 0 0         Parse::RecDescent::_trace(q{<>},
1710             Parse::RecDescent::_tracefirst($text))
1711             if defined $::RD_TRACE;
1712              
1713 0           last;
1714             }
1715 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1716             . $& . q{])},
1717             Parse::RecDescent::_tracefirst($text))
1718             if defined $::RD_TRACE;
1719 0           push @item, $item{__PATTERN1__}=$&;
1720            
1721              
1722 0 0         Parse::RecDescent::_trace(q{Trying action},
1723             Parse::RecDescent::_tracefirst($text),
1724             q{app_config_statement},
1725             $tracelevel)
1726             if defined $::RD_TRACE;
1727            
1728              
1729 0 0         $_tok = ($_noactions) ? 0 : do {
1730 0           my $message = "bad config statement, "
1731             . "possible extra semicolon";
1732 0 0         if ( $backtick_warning ) {
1733 0           $message .= " ($backtick_warning)";
1734 0           $backtick_warning = '';
1735             }
1736 0           my $diag_text = $item[1] . $text;
1737 0           Bigtop::Parser->fatal_error_two_lines(
1738             $message, $diag_text, $thisline
1739             );
1740             };
1741 0 0         unless (defined $_tok)
1742             {
1743 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
1744             if defined $::RD_TRACE;
1745 0           last;
1746             }
1747 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1748             . $_tok . q{])},
1749             Parse::RecDescent::_tracefirst($text))
1750             if defined $::RD_TRACE;
1751 0           push @item, $_tok;
1752 0           $item{__ACTION1__}=$_tok;
1753            
1754              
1755              
1756 0 0         Parse::RecDescent::_trace(q{>>Matched production: [/[^\\\}]/]<<},
1757             Parse::RecDescent::_tracefirst($text),
1758             q{app_config_statement},
1759             $tracelevel)
1760             if defined $::RD_TRACE;
1761 0           $_matched = 1;
1762 0           last;
1763             }
1764              
1765              
1766 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
1767             {
1768            
1769              
1770 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
1771 0 0         Parse::RecDescent::_trace(q{<>},
1772             Parse::RecDescent::_tracefirst($_[1]),
1773             q{app_config_statement},
1774             $tracelevel)
1775             if defined $::RD_TRACE;
1776 0           return undef;
1777             }
1778 0 0 0       if (!defined($return) && defined($score))
1779             {
1780 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1781             q{app_config_statement},
1782             $tracelevel)
1783             if defined $::RD_TRACE;
1784 0           $return = $score_return;
1785             }
1786 0           splice @{$thisparser->{errors}}, $err_at;
  0            
1787 0 0         $return = $item[$#item] unless defined $return;
1788 0 0         if (defined $::RD_TRACE)
1789             {
1790 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1791             $return . q{])}, "",
1792             q{app_config_statement},
1793             $tracelevel);
1794 0           Parse::RecDescent::_trace(q{(consumed: [} .
1795             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1796             Parse::RecDescent::_tracefirst($text),
1797             , q{app_config_statement},
1798             $tracelevel)
1799             }
1800 0           $_[1] = $text;
1801 0           return $return;
1802             }
1803              
1804             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1805             sub Parse::RecDescent::Bigtop::Grammar::arg_element
1806             {
1807 0     0     my $thisparser = $_[0];
1808 41     41   302 use vars q{$tracelevel};
  41         75  
  41         17198  
1809 0   0       local $tracelevel = ($tracelevel||0)+1;
1810 0           $ERRORS = 0;
1811 0           my $thisrule = $thisparser->{"rules"}{"arg_element"};
1812            
1813 0 0         Parse::RecDescent::_trace(q{Trying rule: [arg_element]},
1814             Parse::RecDescent::_tracefirst($_[1]),
1815             q{arg_element},
1816             $tracelevel)
1817             if defined $::RD_TRACE;
1818              
1819            
1820 0           my $err_at = @{$thisparser->{errors}};
  0            
1821              
1822 0           my $score;
1823             my $score_return;
1824 0           my $_tok;
1825 0           my $return = undef;
1826 0           my $_matched=0;
1827 0           my $commit=0;
1828 0           my @item = ();
1829 0           my %item = ();
1830 0   0       my $repeating = defined($_[2]) && $_[2];
1831 0   0       my $_noactions = defined($_[3]) && $_[3];
1832 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
1833 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
1834 0           my $text;
1835 0           my $lastsep="";
1836 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1837 0           $expectation->at($_[1]);
1838            
1839 0           my $thisline;
1840 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1841              
1842            
1843              
1844 0   0       while (!$_matched && !$commit)
1845             {
1846            
1847 0 0         Parse::RecDescent::_trace(q{Trying production: [module_ident]},
1848             Parse::RecDescent::_tracefirst($_[1]),
1849             q{arg_element},
1850             $tracelevel)
1851             if defined $::RD_TRACE;
1852 0           my $thisprod = $thisrule->{"prods"}[0];
1853 0           $text = $_[1];
1854 0           my $_savetext;
1855 0           @item = (q{arg_element});
1856 0           %item = (__RULE__ => q{arg_element});
1857 0           my $repcount = 0;
1858              
1859              
1860 0 0         Parse::RecDescent::_trace(q{Trying subrule: [module_ident]},
1861             Parse::RecDescent::_tracefirst($text),
1862             q{arg_element},
1863             $tracelevel)
1864             if defined $::RD_TRACE;
1865 41     41   249 if (1) { no strict qw{refs};
  41         87  
  41         20025  
  0            
1866 0           $expectation->is(q{})->at($text);
1867 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::module_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1868             {
1869            
1870 0 0         Parse::RecDescent::_trace(q{<>},
1871             Parse::RecDescent::_tracefirst($text),
1872             q{arg_element},
1873             $tracelevel)
1874             if defined $::RD_TRACE;
1875 0           $expectation->failed();
1876 0           last;
1877             }
1878 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [module_ident]<< (return value: [}
1879             . $_tok . q{]},
1880            
1881             Parse::RecDescent::_tracefirst($text),
1882             q{arg_element},
1883             $tracelevel)
1884             if defined $::RD_TRACE;
1885 0           $item{q{module_ident}} = $_tok;
1886 0           push @item, $_tok;
1887            
1888             }
1889              
1890 0 0         Parse::RecDescent::_trace(q{Trying action},
1891             Parse::RecDescent::_tracefirst($text),
1892             q{arg_element},
1893             $tracelevel)
1894             if defined $::RD_TRACE;
1895            
1896              
1897 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] };
  0            
1898 0 0         unless (defined $_tok)
1899             {
1900 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
1901             if defined $::RD_TRACE;
1902 0           last;
1903             }
1904 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1905             . $_tok . q{])},
1906             Parse::RecDescent::_tracefirst($text))
1907             if defined $::RD_TRACE;
1908 0           push @item, $_tok;
1909 0           $item{__ACTION1__}=$_tok;
1910            
1911              
1912              
1913 0 0         Parse::RecDescent::_trace(q{>>Matched production: [module_ident]<<},
1914             Parse::RecDescent::_tracefirst($text),
1915             q{arg_element},
1916             $tracelevel)
1917             if defined $::RD_TRACE;
1918 0           $_matched = 1;
1919 0           last;
1920             }
1921              
1922              
1923 0   0       while (!$_matched && !$commit)
1924             {
1925            
1926 0 0         Parse::RecDescent::_trace(q{Trying production: [string]},
1927             Parse::RecDescent::_tracefirst($_[1]),
1928             q{arg_element},
1929             $tracelevel)
1930             if defined $::RD_TRACE;
1931 0           my $thisprod = $thisrule->{"prods"}[1];
1932 0           $text = $_[1];
1933 0           my $_savetext;
1934 0           @item = (q{arg_element});
1935 0           %item = (__RULE__ => q{arg_element});
1936 0           my $repcount = 0;
1937              
1938              
1939 0 0         Parse::RecDescent::_trace(q{Trying subrule: [string]},
1940             Parse::RecDescent::_tracefirst($text),
1941             q{arg_element},
1942             $tracelevel)
1943             if defined $::RD_TRACE;
1944 41     41   17436 if (1) { no strict qw{refs};
  41         1333  
  41         50369  
  0            
1945 0           $expectation->is(q{})->at($text);
1946 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::string($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
1947             {
1948            
1949 0 0         Parse::RecDescent::_trace(q{<>},
1950             Parse::RecDescent::_tracefirst($text),
1951             q{arg_element},
1952             $tracelevel)
1953             if defined $::RD_TRACE;
1954 0           $expectation->failed();
1955 0           last;
1956             }
1957 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [string]<< (return value: [}
1958             . $_tok . q{]},
1959            
1960             Parse::RecDescent::_tracefirst($text),
1961             q{arg_element},
1962             $tracelevel)
1963             if defined $::RD_TRACE;
1964 0           $item{q{string}} = $_tok;
1965 0           push @item, $_tok;
1966            
1967             }
1968              
1969 0 0         Parse::RecDescent::_trace(q{Trying action},
1970             Parse::RecDescent::_tracefirst($text),
1971             q{arg_element},
1972             $tracelevel)
1973             if defined $::RD_TRACE;
1974            
1975              
1976 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] };
  0            
1977 0 0         unless (defined $_tok)
1978             {
1979 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
1980             if defined $::RD_TRACE;
1981 0           last;
1982             }
1983 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1984             . $_tok . q{])},
1985             Parse::RecDescent::_tracefirst($text))
1986             if defined $::RD_TRACE;
1987 0           push @item, $_tok;
1988 0           $item{__ACTION1__}=$_tok;
1989            
1990              
1991              
1992 0 0         Parse::RecDescent::_trace(q{>>Matched production: [string]<<},
1993             Parse::RecDescent::_tracefirst($text),
1994             q{arg_element},
1995             $tracelevel)
1996             if defined $::RD_TRACE;
1997 0           $_matched = 1;
1998 0           last;
1999             }
2000              
2001              
2002 0   0       while (!$_matched && !$commit)
2003             {
2004            
2005 0 0         Parse::RecDescent::_trace(q{Trying production: []},
2006             Parse::RecDescent::_tracefirst($_[1]),
2007             q{arg_element},
2008             $tracelevel)
2009             if defined $::RD_TRACE;
2010 0           my $thisprod = $thisrule->{"prods"}[2];
2011 0           $text = $_[1];
2012 0           my $_savetext;
2013 0           @item = (q{arg_element});
2014 0           %item = (__RULE__ => q{arg_element});
2015 0           my $repcount = 0;
2016              
2017              
2018 0 0         Parse::RecDescent::_trace(q{Trying action},
2019             Parse::RecDescent::_tracefirst($text),
2020             q{arg_element},
2021             $tracelevel)
2022             if defined $::RD_TRACE;
2023            
2024              
2025 0 0         $_tok = ($_noactions) ? 0 : do {
2026 0           my $message = "I was expecting an argument or argument list";
2027 0 0         if ( $backtick_warning ) {
2028 0           $message .= " ($backtick_warning)";
2029 0           $backtick_warning = '';
2030             }
2031             Bigtop::Parser->fatal_error_two_lines(
2032 0           $message, $text, $thisline
2033             );
2034             };
2035 0 0         unless (defined $_tok)
2036             {
2037 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
2038             if defined $::RD_TRACE;
2039 0           last;
2040             }
2041 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2042             . $_tok . q{])},
2043             Parse::RecDescent::_tracefirst($text))
2044             if defined $::RD_TRACE;
2045 0           push @item, $_tok;
2046 0           $item{__ACTION1__}=$_tok;
2047            
2048              
2049              
2050 0 0         Parse::RecDescent::_trace(q{>>Matched production: []<<},
2051             Parse::RecDescent::_tracefirst($text),
2052             q{arg_element},
2053             $tracelevel)
2054             if defined $::RD_TRACE;
2055 0           $_matched = 1;
2056 0           last;
2057             }
2058              
2059              
2060 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
2061             {
2062            
2063              
2064 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
2065 0 0         Parse::RecDescent::_trace(q{<>},
2066             Parse::RecDescent::_tracefirst($_[1]),
2067             q{arg_element},
2068             $tracelevel)
2069             if defined $::RD_TRACE;
2070 0           return undef;
2071             }
2072 0 0 0       if (!defined($return) && defined($score))
2073             {
2074 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2075             q{arg_element},
2076             $tracelevel)
2077             if defined $::RD_TRACE;
2078 0           $return = $score_return;
2079             }
2080 0           splice @{$thisparser->{errors}}, $err_at;
  0            
2081 0 0         $return = $item[$#item] unless defined $return;
2082 0 0         if (defined $::RD_TRACE)
2083             {
2084 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2085             $return . q{])}, "",
2086             q{arg_element},
2087             $tracelevel);
2088 0           Parse::RecDescent::_trace(q{(consumed: [} .
2089             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2090             Parse::RecDescent::_tracefirst($text),
2091             , q{arg_element},
2092             $tracelevel)
2093             }
2094 0           $_[1] = $text;
2095 0           return $return;
2096             }
2097              
2098             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2099             sub Parse::RecDescent::Bigtop::Grammar::backend_statement
2100             {
2101 0     0     my $thisparser = $_[0];
2102 41     41   275 use vars q{$tracelevel};
  41         93  
  41         2806070  
2103 0   0       local $tracelevel = ($tracelevel||0)+1;
2104 0           $ERRORS = 0;
2105 0           my $thisrule = $thisparser->{"rules"}{"backend_statement"};
2106            
2107 0 0         Parse::RecDescent::_trace(q{Trying rule: [backend_statement]},
2108             Parse::RecDescent::_tracefirst($_[1]),
2109             q{backend_statement},
2110             $tracelevel)
2111             if defined $::RD_TRACE;
2112              
2113            
2114 0           my $err_at = @{$thisparser->{errors}};
  0            
2115              
2116 0           my $score;
2117             my $score_return;
2118 0           my $_tok;
2119 0           my $return = undef;
2120 0           my $_matched=0;
2121 0           my $commit=0;
2122 0           my @item = ();
2123 0           my %item = ();
2124 0   0       my $repeating = defined($_[2]) && $_[2];
2125 0   0       my $_noactions = defined($_[3]) && $_[3];
2126 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
2127 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2128 0           my $text;
2129 0           my $lastsep="";
2130 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2131 0           $expectation->at($_[1]);
2132            
2133 0           my $thisline;
2134 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2135              
2136            
2137              
2138 0   0       while (!$_matched && !$commit)
2139             {
2140            
2141 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT arg_element SEMI_COLON]},
2142             Parse::RecDescent::_tracefirst($_[1]),
2143             q{backend_statement},
2144             $tracelevel)
2145             if defined $::RD_TRACE;
2146 0           my $thisprod = $thisrule->{"prods"}[0];
2147 0           $text = $_[1];
2148 0           my $_savetext;
2149 0           @item = (q{backend_statement});
2150 0           %item = (__RULE__ => q{backend_statement});
2151 0           my $repcount = 0;
2152              
2153              
2154 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
2155             Parse::RecDescent::_tracefirst($text),
2156             q{backend_statement},
2157             $tracelevel)
2158             if defined $::RD_TRACE;
2159 41     41   1669 if (1) { no strict qw{refs};
  41         1374  
  41         15696  
  0            
2160 0           $expectation->is(q{})->at($text);
2161 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
2162             {
2163            
2164 0 0         Parse::RecDescent::_trace(q{<>},
2165             Parse::RecDescent::_tracefirst($text),
2166             q{backend_statement},
2167             $tracelevel)
2168             if defined $::RD_TRACE;
2169 0           $expectation->failed();
2170 0           last;
2171             }
2172 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
2173             . $_tok . q{]},
2174            
2175             Parse::RecDescent::_tracefirst($text),
2176             q{backend_statement},
2177             $tracelevel)
2178             if defined $::RD_TRACE;
2179 0           $item{q{IDENT}} = $_tok;
2180 0           push @item, $_tok;
2181            
2182             }
2183              
2184 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_element]},
2185             Parse::RecDescent::_tracefirst($text),
2186             q{backend_statement},
2187             $tracelevel)
2188             if defined $::RD_TRACE;
2189 41     41   304 if (1) { no strict qw{refs};
  41         1393  
  41         14399  
  0            
2190 0           $expectation->is(q{arg_element})->at($text);
2191 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
2192             {
2193            
2194 0 0         Parse::RecDescent::_trace(q{<>},
2195             Parse::RecDescent::_tracefirst($text),
2196             q{backend_statement},
2197             $tracelevel)
2198             if defined $::RD_TRACE;
2199 0           $expectation->failed();
2200 0           last;
2201             }
2202 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_element]<< (return value: [}
2203             . $_tok . q{]},
2204            
2205             Parse::RecDescent::_tracefirst($text),
2206             q{backend_statement},
2207             $tracelevel)
2208             if defined $::RD_TRACE;
2209 0           $item{q{arg_element}} = $_tok;
2210 0           push @item, $_tok;
2211            
2212             }
2213              
2214 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
2215             Parse::RecDescent::_tracefirst($text),
2216             q{backend_statement},
2217             $tracelevel)
2218             if defined $::RD_TRACE;
2219 41     41   240 if (1) { no strict qw{refs};
  41         87  
  41         31071  
  0            
2220 0           $expectation->is(q{SEMI_COLON})->at($text);
2221 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
2222             {
2223            
2224 0 0         Parse::RecDescent::_trace(q{<>},
2225             Parse::RecDescent::_tracefirst($text),
2226             q{backend_statement},
2227             $tracelevel)
2228             if defined $::RD_TRACE;
2229 0           $expectation->failed();
2230 0           last;
2231             }
2232 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
2233             . $_tok . q{]},
2234            
2235             Parse::RecDescent::_tracefirst($text),
2236             q{backend_statement},
2237             $tracelevel)
2238             if defined $::RD_TRACE;
2239 0           $item{q{SEMI_COLON}} = $_tok;
2240 0           push @item, $_tok;
2241            
2242             }
2243              
2244 0 0         Parse::RecDescent::_trace(q{Trying action},
2245             Parse::RecDescent::_tracefirst($text),
2246             q{backend_statement},
2247             $tracelevel)
2248             if defined $::RD_TRACE;
2249            
2250              
2251 0 0         $_tok = ($_noactions) ? 0 : do {
2252 0           $return = [ $item{IDENT} => $item{arg_element} ];
2253             };
2254 0 0         unless (defined $_tok)
2255             {
2256 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
2257             if defined $::RD_TRACE;
2258 0           last;
2259             }
2260 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2261             . $_tok . q{])},
2262             Parse::RecDescent::_tracefirst($text))
2263             if defined $::RD_TRACE;
2264 0           push @item, $_tok;
2265 0           $item{__ACTION1__}=$_tok;
2266            
2267              
2268              
2269 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT arg_element SEMI_COLON]<<},
2270             Parse::RecDescent::_tracefirst($text),
2271             q{backend_statement},
2272             $tracelevel)
2273             if defined $::RD_TRACE;
2274 0           $_matched = 1;
2275 0           last;
2276             }
2277              
2278              
2279 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
2280             {
2281            
2282              
2283 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
2284 0 0         Parse::RecDescent::_trace(q{<>},
2285             Parse::RecDescent::_tracefirst($_[1]),
2286             q{backend_statement},
2287             $tracelevel)
2288             if defined $::RD_TRACE;
2289 0           return undef;
2290             }
2291 0 0 0       if (!defined($return) && defined($score))
2292             {
2293 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2294             q{backend_statement},
2295             $tracelevel)
2296             if defined $::RD_TRACE;
2297 0           $return = $score_return;
2298             }
2299 0           splice @{$thisparser->{errors}}, $err_at;
  0            
2300 0 0         $return = $item[$#item] unless defined $return;
2301 0 0         if (defined $::RD_TRACE)
2302             {
2303 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2304             $return . q{])}, "",
2305             q{backend_statement},
2306             $tracelevel);
2307 0           Parse::RecDescent::_trace(q{(consumed: [} .
2308             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2309             Parse::RecDescent::_tracefirst($text),
2310             , q{backend_statement},
2311             $tracelevel)
2312             }
2313 0           $_[1] = $text;
2314 0           return $return;
2315             }
2316              
2317             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2318             sub Parse::RecDescent::Bigtop::Grammar::config_only
2319             {
2320 0     0     my $thisparser = $_[0];
2321 41     41   1943 use vars q{$tracelevel};
  41         117  
  41         19061  
2322 0   0       local $tracelevel = ($tracelevel||0)+1;
2323 0           $ERRORS = 0;
2324 0           my $thisrule = $thisparser->{"rules"}{"config_only"};
2325            
2326 0 0         Parse::RecDescent::_trace(q{Trying rule: [config_only]},
2327             Parse::RecDescent::_tracefirst($_[1]),
2328             q{config_only},
2329             $tracelevel)
2330             if defined $::RD_TRACE;
2331              
2332            
2333 0           my $err_at = @{$thisparser->{errors}};
  0            
2334              
2335 0           my $score;
2336             my $score_return;
2337 0           my $_tok;
2338 0           my $return = undef;
2339 0           my $_matched=0;
2340 0           my $commit=0;
2341 0           my @item = ();
2342 0           my %item = ();
2343 0   0       my $repeating = defined($_[2]) && $_[2];
2344 0   0       my $_noactions = defined($_[3]) && $_[3];
2345 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
2346 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2347 0           my $text;
2348 0           my $lastsep="";
2349 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2350 0           $expectation->at($_[1]);
2351            
2352 0           my $thisline;
2353 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2354              
2355            
2356              
2357 0   0       while (!$_matched && !$commit)
2358             {
2359            
2360 0 0         Parse::RecDescent::_trace(q{Trying production: [configuration anything]},
2361             Parse::RecDescent::_tracefirst($_[1]),
2362             q{config_only},
2363             $tracelevel)
2364             if defined $::RD_TRACE;
2365 0           my $thisprod = $thisrule->{"prods"}[0];
2366 0           $text = $_[1];
2367 0           my $_savetext;
2368 0           @item = (q{config_only});
2369 0           %item = (__RULE__ => q{config_only});
2370 0           my $repcount = 0;
2371              
2372              
2373 0 0         Parse::RecDescent::_trace(q{Trying subrule: [configuration]},
2374             Parse::RecDescent::_tracefirst($text),
2375             q{config_only},
2376             $tracelevel)
2377             if defined $::RD_TRACE;
2378 41     41   2528 if (1) { no strict qw{refs};
  41         78  
  41         12860  
  0            
2379 0           $expectation->is(q{})->at($text);
2380 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::configuration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
2381             {
2382            
2383 0 0         Parse::RecDescent::_trace(q{<>},
2384             Parse::RecDescent::_tracefirst($text),
2385             q{config_only},
2386             $tracelevel)
2387             if defined $::RD_TRACE;
2388 0           $expectation->failed();
2389 0           last;
2390             }
2391 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [configuration]<< (return value: [}
2392             . $_tok . q{]},
2393            
2394             Parse::RecDescent::_tracefirst($text),
2395             q{config_only},
2396             $tracelevel)
2397             if defined $::RD_TRACE;
2398 0           $item{q{configuration}} = $_tok;
2399 0           push @item, $_tok;
2400            
2401             }
2402              
2403 0 0         Parse::RecDescent::_trace(q{Trying subrule: [anything]},
2404             Parse::RecDescent::_tracefirst($text),
2405             q{config_only},
2406             $tracelevel)
2407             if defined $::RD_TRACE;
2408 41     41   251 if (1) { no strict qw{refs};
  41         67  
  41         27882  
  0            
2409 0           $expectation->is(q{anything})->at($text);
2410 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::anything($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
2411             {
2412            
2413 0 0         Parse::RecDescent::_trace(q{<>},
2414             Parse::RecDescent::_tracefirst($text),
2415             q{config_only},
2416             $tracelevel)
2417             if defined $::RD_TRACE;
2418 0           $expectation->failed();
2419 0           last;
2420             }
2421 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [anything]<< (return value: [}
2422             . $_tok . q{]},
2423            
2424             Parse::RecDescent::_tracefirst($text),
2425             q{config_only},
2426             $tracelevel)
2427             if defined $::RD_TRACE;
2428 0           $item{q{anything}} = $_tok;
2429 0           push @item, $_tok;
2430            
2431             }
2432              
2433 0 0         Parse::RecDescent::_trace(q{Trying action},
2434             Parse::RecDescent::_tracefirst($text),
2435             q{config_only},
2436             $tracelevel)
2437             if defined $::RD_TRACE;
2438            
2439              
2440 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] };
  0            
2441 0 0         unless (defined $_tok)
2442             {
2443 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
2444             if defined $::RD_TRACE;
2445 0           last;
2446             }
2447 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2448             . $_tok . q{])},
2449             Parse::RecDescent::_tracefirst($text))
2450             if defined $::RD_TRACE;
2451 0           push @item, $_tok;
2452 0           $item{__ACTION1__}=$_tok;
2453            
2454              
2455              
2456 0 0         Parse::RecDescent::_trace(q{>>Matched production: [configuration anything]<<},
2457             Parse::RecDescent::_tracefirst($text),
2458             q{config_only},
2459             $tracelevel)
2460             if defined $::RD_TRACE;
2461 0           $_matched = 1;
2462 0           last;
2463             }
2464              
2465              
2466 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
2467             {
2468            
2469              
2470 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
2471 0 0         Parse::RecDescent::_trace(q{<>},
2472             Parse::RecDescent::_tracefirst($_[1]),
2473             q{config_only},
2474             $tracelevel)
2475             if defined $::RD_TRACE;
2476 0           return undef;
2477             }
2478 0 0 0       if (!defined($return) && defined($score))
2479             {
2480 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2481             q{config_only},
2482             $tracelevel)
2483             if defined $::RD_TRACE;
2484 0           $return = $score_return;
2485             }
2486 0           splice @{$thisparser->{errors}}, $err_at;
  0            
2487 0 0         $return = $item[$#item] unless defined $return;
2488 0 0         if (defined $::RD_TRACE)
2489             {
2490 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2491             $return . q{])}, "",
2492             q{config_only},
2493             $tracelevel);
2494 0           Parse::RecDescent::_trace(q{(consumed: [} .
2495             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2496             Parse::RecDescent::_tracefirst($text),
2497             , q{config_only},
2498             $tracelevel)
2499             }
2500 0           $_[1] = $text;
2501 0           return $return;
2502             }
2503              
2504             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2505             sub Parse::RecDescent::Bigtop::Grammar::extra_sql_statement_def
2506             {
2507 0     0     my $thisparser = $_[0];
2508 41     41   261 use vars q{$tracelevel};
  41         106  
  41         58796  
2509 0   0       local $tracelevel = ($tracelevel||0)+1;
2510 0           $ERRORS = 0;
2511 0           my $thisrule = $thisparser->{"rules"}{"extra_sql_statement_def"};
2512            
2513 0 0         Parse::RecDescent::_trace(q{Trying rule: [extra_sql_statement_def]},
2514             Parse::RecDescent::_tracefirst($_[1]),
2515             q{extra_sql_statement_def},
2516             $tracelevel)
2517             if defined $::RD_TRACE;
2518              
2519            
2520 0           my $err_at = @{$thisparser->{errors}};
  0            
2521              
2522 0           my $score;
2523             my $score_return;
2524 0           my $_tok;
2525 0           my $return = undef;
2526 0           my $_matched=0;
2527 0           my $commit=0;
2528 0           my @item = ();
2529 0           my %item = ();
2530 0   0       my $repeating = defined($_[2]) && $_[2];
2531 0   0       my $_noactions = defined($_[3]) && $_[3];
2532 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
2533 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2534 0           my $text;
2535 0           my $lastsep="";
2536 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2537 0           $expectation->at($_[1]);
2538            
2539 0           my $thisline;
2540 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2541              
2542            
2543              
2544 0   0       while (!$_matched && !$commit)
2545             {
2546            
2547 0 0         Parse::RecDescent::_trace(q{Trying production: [arg_list]},
2548             Parse::RecDescent::_tracefirst($_[1]),
2549             q{extra_sql_statement_def},
2550             $tracelevel)
2551             if defined $::RD_TRACE;
2552 0           my $thisprod = $thisrule->{"prods"}[0];
2553 0           $text = $_[1];
2554 0           my $_savetext;
2555 0           @item = (q{extra_sql_statement_def});
2556 0           %item = (__RULE__ => q{extra_sql_statement_def});
2557 0           my $repcount = 0;
2558              
2559              
2560 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [arg_list]},
2561             Parse::RecDescent::_tracefirst($text),
2562             q{extra_sql_statement_def},
2563             $tracelevel)
2564             if defined $::RD_TRACE;
2565 0           $expectation->is(q{})->at($text);
2566            
2567 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::arg_list, 0, 1, $_noactions,$expectation,undef)))
2568             {
2569 0 0         Parse::RecDescent::_trace(q{<>},
2570             Parse::RecDescent::_tracefirst($text),
2571             q{extra_sql_statement_def},
2572             $tracelevel)
2573             if defined $::RD_TRACE;
2574 0           last;
2575             }
2576 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [arg_list]<< (}
2577             . @$_tok . q{ times)},
2578            
2579             Parse::RecDescent::_tracefirst($text),
2580             q{extra_sql_statement_def},
2581             $tracelevel)
2582             if defined $::RD_TRACE;
2583 0           $item{q{arg_list(?)}} = $_tok;
2584 0           push @item, $_tok;
2585            
2586              
2587              
2588 0 0         Parse::RecDescent::_trace(q{Trying action},
2589             Parse::RecDescent::_tracefirst($text),
2590             q{extra_sql_statement_def},
2591             $tracelevel)
2592             if defined $::RD_TRACE;
2593            
2594              
2595 0 0         $_tok = ($_noactions) ? 0 : do {
2596 0           bless {
2597             __ARGS__ => $item[1]->[0]
2598             }, 'extra_sql_statement_def'
2599             };
2600 0 0         unless (defined $_tok)
2601             {
2602 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
2603             if defined $::RD_TRACE;
2604 0           last;
2605             }
2606 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2607             . $_tok . q{])},
2608             Parse::RecDescent::_tracefirst($text))
2609             if defined $::RD_TRACE;
2610 0           push @item, $_tok;
2611 0           $item{__ACTION1__}=$_tok;
2612            
2613              
2614              
2615 0 0         Parse::RecDescent::_trace(q{>>Matched production: [arg_list]<<},
2616             Parse::RecDescent::_tracefirst($text),
2617             q{extra_sql_statement_def},
2618             $tracelevel)
2619             if defined $::RD_TRACE;
2620 0           $_matched = 1;
2621 0           last;
2622             }
2623              
2624              
2625 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
2626             {
2627            
2628              
2629 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
2630 0 0         Parse::RecDescent::_trace(q{<>},
2631             Parse::RecDescent::_tracefirst($_[1]),
2632             q{extra_sql_statement_def},
2633             $tracelevel)
2634             if defined $::RD_TRACE;
2635 0           return undef;
2636             }
2637 0 0 0       if (!defined($return) && defined($score))
2638             {
2639 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2640             q{extra_sql_statement_def},
2641             $tracelevel)
2642             if defined $::RD_TRACE;
2643 0           $return = $score_return;
2644             }
2645 0           splice @{$thisparser->{errors}}, $err_at;
  0            
2646 0 0         $return = $item[$#item] unless defined $return;
2647 0 0         if (defined $::RD_TRACE)
2648             {
2649 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2650             $return . q{])}, "",
2651             q{extra_sql_statement_def},
2652             $tracelevel);
2653 0           Parse::RecDescent::_trace(q{(consumed: [} .
2654             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2655             Parse::RecDescent::_tracefirst($text),
2656             , q{extra_sql_statement_def},
2657             $tracelevel)
2658             }
2659 0           $_[1] = $text;
2660 0           return $return;
2661             }
2662              
2663             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2664             sub Parse::RecDescent::Bigtop::Grammar::field_statement_def
2665             {
2666 0     0     my $thisparser = $_[0];
2667 41     41   274 use vars q{$tracelevel};
  41         80  
  41         48843  
2668 0   0       local $tracelevel = ($tracelevel||0)+1;
2669 0           $ERRORS = 0;
2670 0           my $thisrule = $thisparser->{"rules"}{"field_statement_def"};
2671            
2672 0 0         Parse::RecDescent::_trace(q{Trying rule: [field_statement_def]},
2673             Parse::RecDescent::_tracefirst($_[1]),
2674             q{field_statement_def},
2675             $tracelevel)
2676             if defined $::RD_TRACE;
2677              
2678            
2679 0           my $err_at = @{$thisparser->{errors}};
  0            
2680              
2681 0           my $score;
2682             my $score_return;
2683 0           my $_tok;
2684 0           my $return = undef;
2685 0           my $_matched=0;
2686 0           my $commit=0;
2687 0           my @item = ();
2688 0           my %item = ();
2689 0   0       my $repeating = defined($_[2]) && $_[2];
2690 0   0       my $_noactions = defined($_[3]) && $_[3];
2691 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
2692 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2693 0           my $text;
2694 0           my $lastsep="";
2695 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2696 0           $expectation->at($_[1]);
2697            
2698 0           my $thisline;
2699 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2700              
2701            
2702              
2703 0   0       while (!$_matched && !$commit)
2704             {
2705            
2706 0 0         Parse::RecDescent::_trace(q{Trying production: [arg_list]},
2707             Parse::RecDescent::_tracefirst($_[1]),
2708             q{field_statement_def},
2709             $tracelevel)
2710             if defined $::RD_TRACE;
2711 0           my $thisprod = $thisrule->{"prods"}[0];
2712 0           $text = $_[1];
2713 0           my $_savetext;
2714 0           @item = (q{field_statement_def});
2715 0           %item = (__RULE__ => q{field_statement_def});
2716 0           my $repcount = 0;
2717              
2718              
2719 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [arg_list]},
2720             Parse::RecDescent::_tracefirst($text),
2721             q{field_statement_def},
2722             $tracelevel)
2723             if defined $::RD_TRACE;
2724 0           $expectation->is(q{})->at($text);
2725            
2726 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::arg_list, 0, 1, $_noactions,$expectation,undef)))
2727             {
2728 0 0         Parse::RecDescent::_trace(q{<>},
2729             Parse::RecDescent::_tracefirst($text),
2730             q{field_statement_def},
2731             $tracelevel)
2732             if defined $::RD_TRACE;
2733 0           last;
2734             }
2735 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [arg_list]<< (}
2736             . @$_tok . q{ times)},
2737            
2738             Parse::RecDescent::_tracefirst($text),
2739             q{field_statement_def},
2740             $tracelevel)
2741             if defined $::RD_TRACE;
2742 0           $item{q{arg_list(?)}} = $_tok;
2743 0           push @item, $_tok;
2744            
2745              
2746              
2747 0 0         Parse::RecDescent::_trace(q{Trying action},
2748             Parse::RecDescent::_tracefirst($text),
2749             q{field_statement_def},
2750             $tracelevel)
2751             if defined $::RD_TRACE;
2752            
2753              
2754 0 0         $_tok = ($_noactions) ? 0 : do {
2755 0           bless {
2756             __ARGS__ => $item[1]->[0]
2757             }, 'field_statement_def'
2758             };
2759 0 0         unless (defined $_tok)
2760             {
2761 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
2762             if defined $::RD_TRACE;
2763 0           last;
2764             }
2765 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
2766             . $_tok . q{])},
2767             Parse::RecDescent::_tracefirst($text))
2768             if defined $::RD_TRACE;
2769 0           push @item, $_tok;
2770 0           $item{__ACTION1__}=$_tok;
2771            
2772              
2773              
2774 0 0         Parse::RecDescent::_trace(q{>>Matched production: [arg_list]<<},
2775             Parse::RecDescent::_tracefirst($text),
2776             q{field_statement_def},
2777             $tracelevel)
2778             if defined $::RD_TRACE;
2779 0           $_matched = 1;
2780 0           last;
2781             }
2782              
2783              
2784 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
2785             {
2786            
2787              
2788 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
2789 0 0         Parse::RecDescent::_trace(q{<>},
2790             Parse::RecDescent::_tracefirst($_[1]),
2791             q{field_statement_def},
2792             $tracelevel)
2793             if defined $::RD_TRACE;
2794 0           return undef;
2795             }
2796 0 0 0       if (!defined($return) && defined($score))
2797             {
2798 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2799             q{field_statement_def},
2800             $tracelevel)
2801             if defined $::RD_TRACE;
2802 0           $return = $score_return;
2803             }
2804 0           splice @{$thisparser->{errors}}, $err_at;
  0            
2805 0 0         $return = $item[$#item] unless defined $return;
2806 0 0         if (defined $::RD_TRACE)
2807             {
2808 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2809             $return . q{])}, "",
2810             q{field_statement_def},
2811             $tracelevel);
2812 0           Parse::RecDescent::_trace(q{(consumed: [} .
2813             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2814             Parse::RecDescent::_tracefirst($text),
2815             , q{field_statement_def},
2816             $tracelevel)
2817             }
2818 0           $_[1] = $text;
2819 0           return $return;
2820             }
2821              
2822             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2823             sub Parse::RecDescent::Bigtop::Grammar::controller_statement
2824             {
2825 0     0     my $thisparser = $_[0];
2826 41     41   383 use vars q{$tracelevel};
  41         86  
  41         26253  
2827 0   0       local $tracelevel = ($tracelevel||0)+1;
2828 0           $ERRORS = 0;
2829 0           my $thisrule = $thisparser->{"rules"}{"controller_statement"};
2830            
2831 0 0         Parse::RecDescent::_trace(q{Trying rule: [controller_statement]},
2832             Parse::RecDescent::_tracefirst($_[1]),
2833             q{controller_statement},
2834             $tracelevel)
2835             if defined $::RD_TRACE;
2836              
2837            
2838 0           my $err_at = @{$thisparser->{errors}};
  0            
2839              
2840 0           my $score;
2841             my $score_return;
2842 0           my $_tok;
2843 0           my $return = undef;
2844 0           my $_matched=0;
2845 0           my $commit=0;
2846 0           my @item = ();
2847 0           my %item = ();
2848 0   0       my $repeating = defined($_[2]) && $_[2];
2849 0   0       my $_noactions = defined($_[3]) && $_[3];
2850 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
2851 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
2852 0           my $text;
2853 0           my $lastsep="";
2854 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2855 0           $expectation->at($_[1]);
2856            
2857 0           my $thisline;
2858 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2859              
2860            
2861              
2862 0   0       while (!$_matched && !$commit)
2863             {
2864            
2865 0 0         Parse::RecDescent::_trace(q{Trying production: ['method' IDENT method_type '\{' method_body '\}']},
2866             Parse::RecDescent::_tracefirst($_[1]),
2867             q{controller_statement},
2868             $tracelevel)
2869             if defined $::RD_TRACE;
2870 0           my $thisprod = $thisrule->{"prods"}[0];
2871 0           $text = $_[1];
2872 0           my $_savetext;
2873 0           @item = (q{controller_statement});
2874 0           %item = (__RULE__ => q{controller_statement});
2875 0           my $repcount = 0;
2876              
2877              
2878 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['method']},
2879             Parse::RecDescent::_tracefirst($text),
2880             q{controller_statement},
2881             $tracelevel)
2882             if defined $::RD_TRACE;
2883 0           $lastsep = "";
2884 0           $expectation->is(q{})->at($text);
2885            
2886              
2887 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Amethod//)
  0 0          
2888             {
2889            
2890 0           $expectation->failed();
2891 0 0         Parse::RecDescent::_trace(qq{<>},
2892             Parse::RecDescent::_tracefirst($text))
2893             if defined $::RD_TRACE;
2894 0           last;
2895             }
2896 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2897             . $& . q{])},
2898             Parse::RecDescent::_tracefirst($text))
2899             if defined $::RD_TRACE;
2900 0           push @item, $item{__STRING1__}=$&;
2901            
2902              
2903 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
2904             Parse::RecDescent::_tracefirst($text),
2905             q{controller_statement},
2906             $tracelevel)
2907             if defined $::RD_TRACE;
2908 41     41   255 if (1) { no strict qw{refs};
  41         86  
  41         9719  
  0            
2909 0           $expectation->is(q{IDENT})->at($text);
2910 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
2911             {
2912            
2913 0 0         Parse::RecDescent::_trace(q{<>},
2914             Parse::RecDescent::_tracefirst($text),
2915             q{controller_statement},
2916             $tracelevel)
2917             if defined $::RD_TRACE;
2918 0           $expectation->failed();
2919 0           last;
2920             }
2921 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
2922             . $_tok . q{]},
2923            
2924             Parse::RecDescent::_tracefirst($text),
2925             q{controller_statement},
2926             $tracelevel)
2927             if defined $::RD_TRACE;
2928 0           $item{q{IDENT}} = $_tok;
2929 0           push @item, $_tok;
2930            
2931             }
2932              
2933 0 0         Parse::RecDescent::_trace(q{Trying subrule: [method_type]},
2934             Parse::RecDescent::_tracefirst($text),
2935             q{controller_statement},
2936             $tracelevel)
2937             if defined $::RD_TRACE;
2938 41     41   247 if (1) { no strict qw{refs};
  41         76  
  41         27325  
  0            
2939 0           $expectation->is(q{method_type})->at($text);
2940 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::method_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
2941             {
2942            
2943 0 0         Parse::RecDescent::_trace(q{<>},
2944             Parse::RecDescent::_tracefirst($text),
2945             q{controller_statement},
2946             $tracelevel)
2947             if defined $::RD_TRACE;
2948 0           $expectation->failed();
2949 0           last;
2950             }
2951 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [method_type]<< (return value: [}
2952             . $_tok . q{]},
2953            
2954             Parse::RecDescent::_tracefirst($text),
2955             q{controller_statement},
2956             $tracelevel)
2957             if defined $::RD_TRACE;
2958 0           $item{q{method_type}} = $_tok;
2959 0           push @item, $_tok;
2960            
2961             }
2962              
2963 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
2964             Parse::RecDescent::_tracefirst($text),
2965             q{controller_statement},
2966             $tracelevel)
2967             if defined $::RD_TRACE;
2968 0           $lastsep = "";
2969 0           $expectation->is(q{'\{'})->at($text);
2970            
2971              
2972 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
2973             {
2974            
2975 0           $expectation->failed();
2976 0 0         Parse::RecDescent::_trace(qq{<>},
2977             Parse::RecDescent::_tracefirst($text))
2978             if defined $::RD_TRACE;
2979 0           last;
2980             }
2981 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2982             . $& . q{])},
2983             Parse::RecDescent::_tracefirst($text))
2984             if defined $::RD_TRACE;
2985 0           push @item, $item{__STRING2__}=$&;
2986            
2987              
2988 0 0         Parse::RecDescent::_trace(q{Trying subrule: [method_body]},
2989             Parse::RecDescent::_tracefirst($text),
2990             q{controller_statement},
2991             $tracelevel)
2992             if defined $::RD_TRACE;
2993 41     41   286 if (1) { no strict qw{refs};
  41         96  
  41         55031  
  0            
2994 0           $expectation->is(q{method_body})->at($text);
2995 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::method_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
2996             {
2997            
2998 0 0         Parse::RecDescent::_trace(q{<>},
2999             Parse::RecDescent::_tracefirst($text),
3000             q{controller_statement},
3001             $tracelevel)
3002             if defined $::RD_TRACE;
3003 0           $expectation->failed();
3004 0           last;
3005             }
3006 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [method_body]<< (return value: [}
3007             . $_tok . q{]},
3008            
3009             Parse::RecDescent::_tracefirst($text),
3010             q{controller_statement},
3011             $tracelevel)
3012             if defined $::RD_TRACE;
3013 0           $item{q{method_body}} = $_tok;
3014 0           push @item, $_tok;
3015            
3016             }
3017              
3018 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
3019             Parse::RecDescent::_tracefirst($text),
3020             q{controller_statement},
3021             $tracelevel)
3022             if defined $::RD_TRACE;
3023 0           $lastsep = "";
3024 0           $expectation->is(q{'\}'})->at($text);
3025            
3026              
3027 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
3028             {
3029            
3030 0           $expectation->failed();
3031 0 0         Parse::RecDescent::_trace(qq{<>},
3032             Parse::RecDescent::_tracefirst($text))
3033             if defined $::RD_TRACE;
3034 0           last;
3035             }
3036 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3037             . $& . q{])},
3038             Parse::RecDescent::_tracefirst($text))
3039             if defined $::RD_TRACE;
3040 0           push @item, $item{__STRING3__}=$&;
3041            
3042              
3043 0 0         Parse::RecDescent::_trace(q{Trying action},
3044             Parse::RecDescent::_tracefirst($text),
3045             q{controller_statement},
3046             $tracelevel)
3047             if defined $::RD_TRACE;
3048            
3049              
3050 0 0         $_tok = ($_noactions) ? 0 : do {
3051 0           bless {
3052             __IDENT__ => Bigtop::Parser->get_ident(),
3053             __NAME__ => $item{IDENT},
3054             __BODY__ => $item{method_body},
3055             __TYPE__ => $item{method_type},
3056             }, 'controller_method'
3057             };
3058 0 0         unless (defined $_tok)
3059             {
3060 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
3061             if defined $::RD_TRACE;
3062 0           last;
3063             }
3064 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3065             . $_tok . q{])},
3066             Parse::RecDescent::_tracefirst($text))
3067             if defined $::RD_TRACE;
3068 0           push @item, $_tok;
3069 0           $item{__ACTION1__}=$_tok;
3070            
3071              
3072              
3073 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['method' IDENT method_type '\{' method_body '\}']<<},
3074             Parse::RecDescent::_tracefirst($text),
3075             q{controller_statement},
3076             $tracelevel)
3077             if defined $::RD_TRACE;
3078 0           $_matched = 1;
3079 0           last;
3080             }
3081              
3082              
3083 0   0       while (!$_matched && !$commit)
3084             {
3085            
3086 0 0         Parse::RecDescent::_trace(q{Trying production: ['method' IDENT '\{']},
3087             Parse::RecDescent::_tracefirst($_[1]),
3088             q{controller_statement},
3089             $tracelevel)
3090             if defined $::RD_TRACE;
3091 0           my $thisprod = $thisrule->{"prods"}[1];
3092 0           $text = $_[1];
3093 0           my $_savetext;
3094 0           @item = (q{controller_statement});
3095 0           %item = (__RULE__ => q{controller_statement});
3096 0           my $repcount = 0;
3097              
3098              
3099 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['method']},
3100             Parse::RecDescent::_tracefirst($text),
3101             q{controller_statement},
3102             $tracelevel)
3103             if defined $::RD_TRACE;
3104 0           $lastsep = "";
3105 0           $expectation->is(q{})->at($text);
3106            
3107              
3108 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Amethod//)
  0 0          
3109             {
3110            
3111 0           $expectation->failed();
3112 0 0         Parse::RecDescent::_trace(qq{<>},
3113             Parse::RecDescent::_tracefirst($text))
3114             if defined $::RD_TRACE;
3115 0           last;
3116             }
3117 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3118             . $& . q{])},
3119             Parse::RecDescent::_tracefirst($text))
3120             if defined $::RD_TRACE;
3121 0           push @item, $item{__STRING1__}=$&;
3122            
3123              
3124 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
3125             Parse::RecDescent::_tracefirst($text),
3126             q{controller_statement},
3127             $tracelevel)
3128             if defined $::RD_TRACE;
3129 41     41   319 if (1) { no strict qw{refs};
  41         87  
  41         47829  
  0            
3130 0           $expectation->is(q{IDENT})->at($text);
3131 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
3132             {
3133            
3134 0 0         Parse::RecDescent::_trace(q{<>},
3135             Parse::RecDescent::_tracefirst($text),
3136             q{controller_statement},
3137             $tracelevel)
3138             if defined $::RD_TRACE;
3139 0           $expectation->failed();
3140 0           last;
3141             }
3142 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
3143             . $_tok . q{]},
3144            
3145             Parse::RecDescent::_tracefirst($text),
3146             q{controller_statement},
3147             $tracelevel)
3148             if defined $::RD_TRACE;
3149 0           $item{q{IDENT}} = $_tok;
3150 0           push @item, $_tok;
3151            
3152             }
3153              
3154 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
3155             Parse::RecDescent::_tracefirst($text),
3156             q{controller_statement},
3157             $tracelevel)
3158             if defined $::RD_TRACE;
3159 0           $lastsep = "";
3160 0           $expectation->is(q{'\{'})->at($text);
3161            
3162              
3163 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
3164             {
3165            
3166 0           $expectation->failed();
3167 0 0         Parse::RecDescent::_trace(qq{<>},
3168             Parse::RecDescent::_tracefirst($text))
3169             if defined $::RD_TRACE;
3170 0           last;
3171             }
3172 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3173             . $& . q{])},
3174             Parse::RecDescent::_tracefirst($text))
3175             if defined $::RD_TRACE;
3176 0           push @item, $item{__STRING2__}=$&;
3177            
3178              
3179 0 0         Parse::RecDescent::_trace(q{Trying action},
3180             Parse::RecDescent::_tracefirst($text),
3181             q{controller_statement},
3182             $tracelevel)
3183             if defined $::RD_TRACE;
3184            
3185              
3186 0 0         $_tok = ($_noactions) ? 0 : do {
3187 0           my $diag_text = $item[1] . ' '
3188             . $item[2] . ' {'
3189             . $text;
3190 0           Bigtop::Parser->fatal_error_two_lines(
3191             'missing method type', $diag_text, $thisline
3192             );
3193             };
3194 0 0         unless (defined $_tok)
3195             {
3196 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
3197             if defined $::RD_TRACE;
3198 0           last;
3199             }
3200 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3201             . $_tok . q{])},
3202             Parse::RecDescent::_tracefirst($text))
3203             if defined $::RD_TRACE;
3204 0           push @item, $_tok;
3205 0           $item{__ACTION1__}=$_tok;
3206            
3207              
3208              
3209 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['method' IDENT '\{']<<},
3210             Parse::RecDescent::_tracefirst($text),
3211             q{controller_statement},
3212             $tracelevel)
3213             if defined $::RD_TRACE;
3214 0           $_matched = 1;
3215 0           last;
3216             }
3217              
3218              
3219 0   0       while (!$_matched && !$commit)
3220             {
3221            
3222 0 0         Parse::RecDescent::_trace(q{Trying production: [CONFIG IDENT '\{' controller_config_statement '\}']},
3223             Parse::RecDescent::_tracefirst($_[1]),
3224             q{controller_statement},
3225             $tracelevel)
3226             if defined $::RD_TRACE;
3227 0           my $thisprod = $thisrule->{"prods"}[2];
3228 0           $text = $_[1];
3229 0           my $_savetext;
3230 0           @item = (q{controller_statement});
3231 0           %item = (__RULE__ => q{controller_statement});
3232 0           my $repcount = 0;
3233              
3234              
3235 0 0         Parse::RecDescent::_trace(q{Trying subrule: [CONFIG]},
3236             Parse::RecDescent::_tracefirst($text),
3237             q{controller_statement},
3238             $tracelevel)
3239             if defined $::RD_TRACE;
3240 41     41   282 if (1) { no strict qw{refs};
  41         83  
  41         87490  
  0            
3241 0           $expectation->is(q{})->at($text);
3242 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::CONFIG($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
3243             {
3244            
3245 0 0         Parse::RecDescent::_trace(q{<>},
3246             Parse::RecDescent::_tracefirst($text),
3247             q{controller_statement},
3248             $tracelevel)
3249             if defined $::RD_TRACE;
3250 0           $expectation->failed();
3251 0           last;
3252             }
3253 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [CONFIG]<< (return value: [}
3254             . $_tok . q{]},
3255            
3256             Parse::RecDescent::_tracefirst($text),
3257             q{controller_statement},
3258             $tracelevel)
3259             if defined $::RD_TRACE;
3260 0           $item{q{CONFIG}} = $_tok;
3261 0           push @item, $_tok;
3262            
3263             }
3264              
3265 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [IDENT]},
3266             Parse::RecDescent::_tracefirst($text),
3267             q{controller_statement},
3268             $tracelevel)
3269             if defined $::RD_TRACE;
3270 0           $expectation->is(q{IDENT})->at($text);
3271            
3272 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::IDENT, 0, 1, $_noactions,$expectation,undef)))
3273             {
3274 0 0         Parse::RecDescent::_trace(q{<>},
3275             Parse::RecDescent::_tracefirst($text),
3276             q{controller_statement},
3277             $tracelevel)
3278             if defined $::RD_TRACE;
3279 0           last;
3280             }
3281 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [IDENT]<< (}
3282             . @$_tok . q{ times)},
3283            
3284             Parse::RecDescent::_tracefirst($text),
3285             q{controller_statement},
3286             $tracelevel)
3287             if defined $::RD_TRACE;
3288 0           $item{q{IDENT(?)}} = $_tok;
3289 0           push @item, $_tok;
3290            
3291              
3292              
3293 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
3294             Parse::RecDescent::_tracefirst($text),
3295             q{controller_statement},
3296             $tracelevel)
3297             if defined $::RD_TRACE;
3298 0           $lastsep = "";
3299 0           $expectation->is(q{'\{'})->at($text);
3300            
3301              
3302 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
3303             {
3304            
3305 0           $expectation->failed();
3306 0 0         Parse::RecDescent::_trace(qq{<>},
3307             Parse::RecDescent::_tracefirst($text))
3308             if defined $::RD_TRACE;
3309 0           last;
3310             }
3311 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3312             . $& . q{])},
3313             Parse::RecDescent::_tracefirst($text))
3314             if defined $::RD_TRACE;
3315 0           push @item, $item{__STRING1__}=$&;
3316            
3317              
3318 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [controller_config_statement]},
3319             Parse::RecDescent::_tracefirst($text),
3320             q{controller_statement},
3321             $tracelevel)
3322             if defined $::RD_TRACE;
3323 0           $expectation->is(q{controller_config_statement})->at($text);
3324            
3325 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::controller_config_statement, 0, 100000000, $_noactions,$expectation,undef)))
3326             {
3327 0 0         Parse::RecDescent::_trace(q{<>},
3328             Parse::RecDescent::_tracefirst($text),
3329             q{controller_statement},
3330             $tracelevel)
3331             if defined $::RD_TRACE;
3332 0           last;
3333             }
3334 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [controller_config_statement]<< (}
3335             . @$_tok . q{ times)},
3336            
3337             Parse::RecDescent::_tracefirst($text),
3338             q{controller_statement},
3339             $tracelevel)
3340             if defined $::RD_TRACE;
3341 0           $item{q{controller_config_statement(s?)}} = $_tok;
3342 0           push @item, $_tok;
3343            
3344              
3345              
3346 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
3347             Parse::RecDescent::_tracefirst($text),
3348             q{controller_statement},
3349             $tracelevel)
3350             if defined $::RD_TRACE;
3351 0           $lastsep = "";
3352 0           $expectation->is(q{'\}'})->at($text);
3353            
3354              
3355 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
3356             {
3357            
3358 0           $expectation->failed();
3359 0 0         Parse::RecDescent::_trace(qq{<>},
3360             Parse::RecDescent::_tracefirst($text))
3361             if defined $::RD_TRACE;
3362 0           last;
3363             }
3364 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3365             . $& . q{])},
3366             Parse::RecDescent::_tracefirst($text))
3367             if defined $::RD_TRACE;
3368 0           push @item, $item{__STRING2__}=$&;
3369            
3370              
3371 0 0         Parse::RecDescent::_trace(q{Trying action},
3372             Parse::RecDescent::_tracefirst($text),
3373             q{controller_statement},
3374             $tracelevel)
3375             if defined $::RD_TRACE;
3376            
3377              
3378 0 0         $_tok = ($_noactions) ? 0 : do {
3379 0           bless {
3380             __IDENT__ => Bigtop::Parser->get_ident(),
3381             __BODY__ => $item{'controller_config_statement(s?)'},
3382             __TYPE__ => $item{'IDENT(?)'}[0],
3383             }, 'controller_config_block'
3384             };
3385 0 0         unless (defined $_tok)
3386             {
3387 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
3388             if defined $::RD_TRACE;
3389 0           last;
3390             }
3391 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3392             . $_tok . q{])},
3393             Parse::RecDescent::_tracefirst($text))
3394             if defined $::RD_TRACE;
3395 0           push @item, $_tok;
3396 0           $item{__ACTION1__}=$_tok;
3397            
3398              
3399              
3400 0 0         Parse::RecDescent::_trace(q{>>Matched production: [CONFIG IDENT '\{' controller_config_statement '\}']<<},
3401             Parse::RecDescent::_tracefirst($text),
3402             q{controller_statement},
3403             $tracelevel)
3404             if defined $::RD_TRACE;
3405 0           $_matched = 1;
3406 0           last;
3407             }
3408              
3409              
3410 0   0       while (!$_matched && !$commit)
3411             {
3412            
3413 0 0         Parse::RecDescent::_trace(q{Trying production: ['literal' keyword string SEMI_COLON]},
3414             Parse::RecDescent::_tracefirst($_[1]),
3415             q{controller_statement},
3416             $tracelevel)
3417             if defined $::RD_TRACE;
3418 0           my $thisprod = $thisrule->{"prods"}[3];
3419 0           $text = $_[1];
3420 0           my $_savetext;
3421 0           @item = (q{controller_statement});
3422 0           %item = (__RULE__ => q{controller_statement});
3423 0           my $repcount = 0;
3424              
3425              
3426 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['literal']},
3427             Parse::RecDescent::_tracefirst($text),
3428             q{controller_statement},
3429             $tracelevel)
3430             if defined $::RD_TRACE;
3431 0           $lastsep = "";
3432 0           $expectation->is(q{})->at($text);
3433            
3434              
3435 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aliteral//)
  0 0          
3436             {
3437            
3438 0           $expectation->failed();
3439 0 0         Parse::RecDescent::_trace(qq{<>},
3440             Parse::RecDescent::_tracefirst($text))
3441             if defined $::RD_TRACE;
3442 0           last;
3443             }
3444 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3445             . $& . q{])},
3446             Parse::RecDescent::_tracefirst($text))
3447             if defined $::RD_TRACE;
3448 0           push @item, $item{__STRING1__}=$&;
3449            
3450              
3451 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
3452             Parse::RecDescent::_tracefirst($text),
3453             q{controller_statement},
3454             $tracelevel)
3455             if defined $::RD_TRACE;
3456 41     41   305 if (1) { no strict qw{refs};
  41         119  
  41         11983  
  0            
3457 0           $expectation->is(q{keyword})->at($text);
3458 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return [ 'controller_literal' ] })))
  0            
3459             {
3460            
3461 0 0         Parse::RecDescent::_trace(q{<>},
3462             Parse::RecDescent::_tracefirst($text),
3463             q{controller_statement},
3464             $tracelevel)
3465             if defined $::RD_TRACE;
3466 0           $expectation->failed();
3467 0           last;
3468             }
3469 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
3470             . $_tok . q{]},
3471            
3472             Parse::RecDescent::_tracefirst($text),
3473             q{controller_statement},
3474             $tracelevel)
3475             if defined $::RD_TRACE;
3476 0           $item{q{keyword}} = $_tok;
3477 0           push @item, $_tok;
3478            
3479             }
3480              
3481 0 0         Parse::RecDescent::_trace(q{Trying subrule: [string]},
3482             Parse::RecDescent::_tracefirst($text),
3483             q{controller_statement},
3484             $tracelevel)
3485             if defined $::RD_TRACE;
3486 41     41   231 if (1) { no strict qw{refs};
  41         93  
  41         15868  
  0            
3487 0           $expectation->is(q{string})->at($text);
3488 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::string($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
3489             {
3490            
3491 0 0         Parse::RecDescent::_trace(q{<>},
3492             Parse::RecDescent::_tracefirst($text),
3493             q{controller_statement},
3494             $tracelevel)
3495             if defined $::RD_TRACE;
3496 0           $expectation->failed();
3497 0           last;
3498             }
3499 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [string]<< (return value: [}
3500             . $_tok . q{]},
3501            
3502             Parse::RecDescent::_tracefirst($text),
3503             q{controller_statement},
3504             $tracelevel)
3505             if defined $::RD_TRACE;
3506 0           $item{q{string}} = $_tok;
3507 0           push @item, $_tok;
3508            
3509             }
3510              
3511 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
3512             Parse::RecDescent::_tracefirst($text),
3513             q{controller_statement},
3514             $tracelevel)
3515             if defined $::RD_TRACE;
3516 41     41   286 if (1) { no strict qw{refs};
  41         93  
  41         27288  
  0            
3517 0           $expectation->is(q{SEMI_COLON})->at($text);
3518 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
3519             {
3520            
3521 0 0         Parse::RecDescent::_trace(q{<>},
3522             Parse::RecDescent::_tracefirst($text),
3523             q{controller_statement},
3524             $tracelevel)
3525             if defined $::RD_TRACE;
3526 0           $expectation->failed();
3527 0           last;
3528             }
3529 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
3530             . $_tok . q{]},
3531            
3532             Parse::RecDescent::_tracefirst($text),
3533             q{controller_statement},
3534             $tracelevel)
3535             if defined $::RD_TRACE;
3536 0           $item{q{SEMI_COLON}} = $_tok;
3537 0           push @item, $_tok;
3538            
3539             }
3540              
3541 0 0         Parse::RecDescent::_trace(q{Trying action},
3542             Parse::RecDescent::_tracefirst($text),
3543             q{controller_statement},
3544             $tracelevel)
3545             if defined $::RD_TRACE;
3546            
3547              
3548 0 0         $_tok = ($_noactions) ? 0 : do {
3549             bless {
3550             __IDENT__ => Bigtop::Parser->get_ident(),
3551             __BACKEND__ => $item{ keyword },
3552             __BODY__ => $item{ string },
3553 0           }, 'controller_literal_block'
3554             };
3555 0 0         unless (defined $_tok)
3556             {
3557 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
3558             if defined $::RD_TRACE;
3559 0           last;
3560             }
3561 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3562             . $_tok . q{])},
3563             Parse::RecDescent::_tracefirst($text))
3564             if defined $::RD_TRACE;
3565 0           push @item, $_tok;
3566 0           $item{__ACTION1__}=$_tok;
3567            
3568              
3569              
3570 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['literal' keyword string SEMI_COLON]<<},
3571             Parse::RecDescent::_tracefirst($text),
3572             q{controller_statement},
3573             $tracelevel)
3574             if defined $::RD_TRACE;
3575 0           $_matched = 1;
3576 0           last;
3577             }
3578              
3579              
3580 0   0       while (!$_matched && !$commit)
3581             {
3582            
3583 0 0         Parse::RecDescent::_trace(q{Trying production: [keyword arg_list SEMI_COLON]},
3584             Parse::RecDescent::_tracefirst($_[1]),
3585             q{controller_statement},
3586             $tracelevel)
3587             if defined $::RD_TRACE;
3588 0           my $thisprod = $thisrule->{"prods"}[4];
3589 0           $text = $_[1];
3590 0           my $_savetext;
3591 0           @item = (q{controller_statement});
3592 0           %item = (__RULE__ => q{controller_statement});
3593 0           my $repcount = 0;
3594              
3595              
3596 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
3597             Parse::RecDescent::_tracefirst($text),
3598             q{controller_statement},
3599             $tracelevel)
3600             if defined $::RD_TRACE;
3601 41     41   245 if (1) { no strict qw{refs};
  41         269  
  41         20520  
  0            
3602 0           $expectation->is(q{})->at($text);
3603 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return ['controller'] })))
  0            
3604             {
3605            
3606 0 0         Parse::RecDescent::_trace(q{<>},
3607             Parse::RecDescent::_tracefirst($text),
3608             q{controller_statement},
3609             $tracelevel)
3610             if defined $::RD_TRACE;
3611 0           $expectation->failed();
3612 0           last;
3613             }
3614 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
3615             . $_tok . q{]},
3616            
3617             Parse::RecDescent::_tracefirst($text),
3618             q{controller_statement},
3619             $tracelevel)
3620             if defined $::RD_TRACE;
3621 0           $item{q{keyword}} = $_tok;
3622 0           push @item, $_tok;
3623            
3624             }
3625              
3626 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [arg_list]},
3627             Parse::RecDescent::_tracefirst($text),
3628             q{controller_statement},
3629             $tracelevel)
3630             if defined $::RD_TRACE;
3631 0           $expectation->is(q{arg_list})->at($text);
3632            
3633 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::arg_list, 0, 1, $_noactions,$expectation,undef)))
3634             {
3635 0 0         Parse::RecDescent::_trace(q{<>},
3636             Parse::RecDescent::_tracefirst($text),
3637             q{controller_statement},
3638             $tracelevel)
3639             if defined $::RD_TRACE;
3640 0           last;
3641             }
3642 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [arg_list]<< (}
3643             . @$_tok . q{ times)},
3644            
3645             Parse::RecDescent::_tracefirst($text),
3646             q{controller_statement},
3647             $tracelevel)
3648             if defined $::RD_TRACE;
3649 0           $item{q{arg_list(?)}} = $_tok;
3650 0           push @item, $_tok;
3651            
3652              
3653              
3654 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
3655             Parse::RecDescent::_tracefirst($text),
3656             q{controller_statement},
3657             $tracelevel)
3658             if defined $::RD_TRACE;
3659 41     41   258 if (1) { no strict qw{refs};
  41         125  
  41         52655  
  0            
3660 0           $expectation->is(q{SEMI_COLON})->at($text);
3661 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
3662             {
3663            
3664 0 0         Parse::RecDescent::_trace(q{<>},
3665             Parse::RecDescent::_tracefirst($text),
3666             q{controller_statement},
3667             $tracelevel)
3668             if defined $::RD_TRACE;
3669 0           $expectation->failed();
3670 0           last;
3671             }
3672 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
3673             . $_tok . q{]},
3674            
3675             Parse::RecDescent::_tracefirst($text),
3676             q{controller_statement},
3677             $tracelevel)
3678             if defined $::RD_TRACE;
3679 0           $item{q{SEMI_COLON}} = $_tok;
3680 0           push @item, $_tok;
3681            
3682             }
3683              
3684 0 0         Parse::RecDescent::_trace(q{Trying action},
3685             Parse::RecDescent::_tracefirst($text),
3686             q{controller_statement},
3687             $tracelevel)
3688             if defined $::RD_TRACE;
3689            
3690              
3691 0 0         $_tok = ($_noactions) ? 0 : do {
3692 0           bless {
3693             __KEYWORD__ => $item{keyword},
3694             __ARGS__ => $item{'arg_list(?)'}->[0],
3695             }, 'controller_statement'
3696             };
3697 0 0         unless (defined $_tok)
3698             {
3699 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
3700             if defined $::RD_TRACE;
3701 0           last;
3702             }
3703 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3704             . $_tok . q{])},
3705             Parse::RecDescent::_tracefirst($text))
3706             if defined $::RD_TRACE;
3707 0           push @item, $_tok;
3708 0           $item{__ACTION1__}=$_tok;
3709            
3710              
3711              
3712 0 0         Parse::RecDescent::_trace(q{>>Matched production: [keyword arg_list SEMI_COLON]<<},
3713             Parse::RecDescent::_tracefirst($text),
3714             q{controller_statement},
3715             $tracelevel)
3716             if defined $::RD_TRACE;
3717 0           $_matched = 1;
3718 0           last;
3719             }
3720              
3721              
3722 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
3723             {
3724            
3725              
3726 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
3727 0 0         Parse::RecDescent::_trace(q{<>},
3728             Parse::RecDescent::_tracefirst($_[1]),
3729             q{controller_statement},
3730             $tracelevel)
3731             if defined $::RD_TRACE;
3732 0           return undef;
3733             }
3734 0 0 0       if (!defined($return) && defined($score))
3735             {
3736 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3737             q{controller_statement},
3738             $tracelevel)
3739             if defined $::RD_TRACE;
3740 0           $return = $score_return;
3741             }
3742 0           splice @{$thisparser->{errors}}, $err_at;
  0            
3743 0 0         $return = $item[$#item] unless defined $return;
3744 0 0         if (defined $::RD_TRACE)
3745             {
3746 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3747             $return . q{])}, "",
3748             q{controller_statement},
3749             $tracelevel);
3750 0           Parse::RecDescent::_trace(q{(consumed: [} .
3751             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3752             Parse::RecDescent::_tracefirst($text),
3753             , q{controller_statement},
3754             $tracelevel)
3755             }
3756 0           $_[1] = $text;
3757 0           return $return;
3758             }
3759              
3760             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3761             sub Parse::RecDescent::Bigtop::Grammar::configuration
3762             {
3763 0     0     my $thisparser = $_[0];
3764 41     41   270 use vars q{$tracelevel};
  41         308  
  41         35394  
3765 0   0       local $tracelevel = ($tracelevel||0)+1;
3766 0           $ERRORS = 0;
3767 0           my $thisrule = $thisparser->{"rules"}{"configuration"};
3768            
3769 0 0         Parse::RecDescent::_trace(q{Trying rule: [configuration]},
3770             Parse::RecDescent::_tracefirst($_[1]),
3771             q{configuration},
3772             $tracelevel)
3773             if defined $::RD_TRACE;
3774              
3775            
3776 0           my $err_at = @{$thisparser->{errors}};
  0            
3777              
3778 0           my $score;
3779             my $score_return;
3780 0           my $_tok;
3781 0           my $return = undef;
3782 0           my $_matched=0;
3783 0           my $commit=0;
3784 0           my @item = ();
3785 0           my %item = ();
3786 0   0       my $repeating = defined($_[2]) && $_[2];
3787 0   0       my $_noactions = defined($_[3]) && $_[3];
3788 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
3789 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
3790 0           my $text;
3791 0           my $lastsep="";
3792 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3793 0           $expectation->at($_[1]);
3794            
3795 0           my $thisline;
3796 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3797              
3798            
3799              
3800 0   0       while (!$_matched && !$commit)
3801             {
3802            
3803 0 0         Parse::RecDescent::_trace(q{Trying production: ['config' '\{' config_body '\}']},
3804             Parse::RecDescent::_tracefirst($_[1]),
3805             q{configuration},
3806             $tracelevel)
3807             if defined $::RD_TRACE;
3808 0           my $thisprod = $thisrule->{"prods"}[0];
3809 0           $text = $_[1];
3810 0           my $_savetext;
3811 0           @item = (q{configuration});
3812 0           %item = (__RULE__ => q{configuration});
3813 0           my $repcount = 0;
3814              
3815              
3816 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['config']},
3817             Parse::RecDescent::_tracefirst($text),
3818             q{configuration},
3819             $tracelevel)
3820             if defined $::RD_TRACE;
3821 0           $lastsep = "";
3822 0           $expectation->is(q{})->at($text);
3823            
3824              
3825 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aconfig//)
  0 0          
3826             {
3827            
3828 0           $expectation->failed();
3829 0 0         Parse::RecDescent::_trace(qq{<>},
3830             Parse::RecDescent::_tracefirst($text))
3831             if defined $::RD_TRACE;
3832 0           last;
3833             }
3834 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3835             . $& . q{])},
3836             Parse::RecDescent::_tracefirst($text))
3837             if defined $::RD_TRACE;
3838 0           push @item, $item{__STRING1__}=$&;
3839            
3840              
3841 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
3842             Parse::RecDescent::_tracefirst($text),
3843             q{configuration},
3844             $tracelevel)
3845             if defined $::RD_TRACE;
3846 0           $lastsep = "";
3847 0           $expectation->is(q{'\{'})->at($text);
3848            
3849              
3850 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
3851             {
3852            
3853 0           $expectation->failed();
3854 0 0         Parse::RecDescent::_trace(qq{<>},
3855             Parse::RecDescent::_tracefirst($text))
3856             if defined $::RD_TRACE;
3857 0           last;
3858             }
3859 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3860             . $& . q{])},
3861             Parse::RecDescent::_tracefirst($text))
3862             if defined $::RD_TRACE;
3863 0           push @item, $item{__STRING2__}=$&;
3864            
3865              
3866 0 0         Parse::RecDescent::_trace(q{Trying subrule: [config_body]},
3867             Parse::RecDescent::_tracefirst($text),
3868             q{configuration},
3869             $tracelevel)
3870             if defined $::RD_TRACE;
3871 41     41   294 if (1) { no strict qw{refs};
  41         99  
  41         40533  
  0            
3872 0           $expectation->is(q{config_body})->at($text);
3873 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::config_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
3874             {
3875            
3876 0 0         Parse::RecDescent::_trace(q{<>},
3877             Parse::RecDescent::_tracefirst($text),
3878             q{configuration},
3879             $tracelevel)
3880             if defined $::RD_TRACE;
3881 0           $expectation->failed();
3882 0           last;
3883             }
3884 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [config_body]<< (return value: [}
3885             . $_tok . q{]},
3886            
3887             Parse::RecDescent::_tracefirst($text),
3888             q{configuration},
3889             $tracelevel)
3890             if defined $::RD_TRACE;
3891 0           $item{q{config_body}} = $_tok;
3892 0           push @item, $_tok;
3893            
3894             }
3895              
3896 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
3897             Parse::RecDescent::_tracefirst($text),
3898             q{configuration},
3899             $tracelevel)
3900             if defined $::RD_TRACE;
3901 0           $lastsep = "";
3902 0           $expectation->is(q{'\}'})->at($text);
3903            
3904              
3905 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
3906             {
3907            
3908 0           $expectation->failed();
3909 0 0         Parse::RecDescent::_trace(qq{<>},
3910             Parse::RecDescent::_tracefirst($text))
3911             if defined $::RD_TRACE;
3912 0           last;
3913             }
3914 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3915             . $& . q{])},
3916             Parse::RecDescent::_tracefirst($text))
3917             if defined $::RD_TRACE;
3918 0           push @item, $item{__STRING3__}=$&;
3919            
3920              
3921 0 0         Parse::RecDescent::_trace(q{Trying action},
3922             Parse::RecDescent::_tracefirst($text),
3923             q{configuration},
3924             $tracelevel)
3925             if defined $::RD_TRACE;
3926            
3927              
3928 0 0         $_tok = ($_noactions) ? 0 : do { $item{config_body} };
  0            
3929 0 0         unless (defined $_tok)
3930             {
3931 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
3932             if defined $::RD_TRACE;
3933 0           last;
3934             }
3935 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3936             . $_tok . q{])},
3937             Parse::RecDescent::_tracefirst($text))
3938             if defined $::RD_TRACE;
3939 0           push @item, $_tok;
3940 0           $item{__ACTION1__}=$_tok;
3941            
3942              
3943              
3944 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['config' '\{' config_body '\}']<<},
3945             Parse::RecDescent::_tracefirst($text),
3946             q{configuration},
3947             $tracelevel)
3948             if defined $::RD_TRACE;
3949 0           $_matched = 1;
3950 0           last;
3951             }
3952              
3953              
3954 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
3955             {
3956            
3957              
3958 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
3959 0 0         Parse::RecDescent::_trace(q{<>},
3960             Parse::RecDescent::_tracefirst($_[1]),
3961             q{configuration},
3962             $tracelevel)
3963             if defined $::RD_TRACE;
3964 0           return undef;
3965             }
3966 0 0 0       if (!defined($return) && defined($score))
3967             {
3968 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3969             q{configuration},
3970             $tracelevel)
3971             if defined $::RD_TRACE;
3972 0           $return = $score_return;
3973             }
3974 0           splice @{$thisparser->{errors}}, $err_at;
  0            
3975 0 0         $return = $item[$#item] unless defined $return;
3976 0 0         if (defined $::RD_TRACE)
3977             {
3978 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3979             $return . q{])}, "",
3980             q{configuration},
3981             $tracelevel);
3982 0           Parse::RecDescent::_trace(q{(consumed: [} .
3983             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3984             Parse::RecDescent::_tracefirst($text),
3985             , q{configuration},
3986             $tracelevel)
3987             }
3988 0           $_[1] = $text;
3989 0           return $return;
3990             }
3991              
3992             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3993             sub Parse::RecDescent::Bigtop::Grammar::config_statement
3994             {
3995 0     0     my $thisparser = $_[0];
3996 41     41   279 use vars q{$tracelevel};
  41         86  
  41         22492  
3997 0   0       local $tracelevel = ($tracelevel||0)+1;
3998 0           $ERRORS = 0;
3999 0           my $thisrule = $thisparser->{"rules"}{"config_statement"};
4000            
4001 0 0         Parse::RecDescent::_trace(q{Trying rule: [config_statement]},
4002             Parse::RecDescent::_tracefirst($_[1]),
4003             q{config_statement},
4004             $tracelevel)
4005             if defined $::RD_TRACE;
4006              
4007            
4008 0           my $err_at = @{$thisparser->{errors}};
  0            
4009              
4010 0           my $score;
4011             my $score_return;
4012 0           my $_tok;
4013 0           my $return = undef;
4014 0           my $_matched=0;
4015 0           my $commit=0;
4016 0           my @item = ();
4017 0           my %item = ();
4018 0   0       my $repeating = defined($_[2]) && $_[2];
4019 0   0       my $_noactions = defined($_[3]) && $_[3];
4020 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
4021 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4022 0           my $text;
4023 0           my $lastsep="";
4024 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4025 0           $expectation->at($_[1]);
4026            
4027 0           my $thisline;
4028 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4029              
4030            
4031              
4032 0   0       while (!$_matched && !$commit)
4033             {
4034            
4035 0 0         Parse::RecDescent::_trace(q{Trying production: [module_ident IDENT '\{' backend_body '\}']},
4036             Parse::RecDescent::_tracefirst($_[1]),
4037             q{config_statement},
4038             $tracelevel)
4039             if defined $::RD_TRACE;
4040 0           my $thisprod = $thisrule->{"prods"}[0];
4041 0           $text = $_[1];
4042 0           my $_savetext;
4043 0           @item = (q{config_statement});
4044 0           %item = (__RULE__ => q{config_statement});
4045 0           my $repcount = 0;
4046              
4047              
4048 0 0         Parse::RecDescent::_trace(q{Trying subrule: [module_ident]},
4049             Parse::RecDescent::_tracefirst($text),
4050             q{config_statement},
4051             $tracelevel)
4052             if defined $::RD_TRACE;
4053 41     41   428 if (1) { no strict qw{refs};
  41         102  
  41         9977  
  0            
4054 0           $expectation->is(q{})->at($text);
4055 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::module_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
4056             {
4057            
4058 0 0         Parse::RecDescent::_trace(q{<>},
4059             Parse::RecDescent::_tracefirst($text),
4060             q{config_statement},
4061             $tracelevel)
4062             if defined $::RD_TRACE;
4063 0           $expectation->failed();
4064 0           last;
4065             }
4066 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [module_ident]<< (return value: [}
4067             . $_tok . q{]},
4068            
4069             Parse::RecDescent::_tracefirst($text),
4070             q{config_statement},
4071             $tracelevel)
4072             if defined $::RD_TRACE;
4073 0           $item{q{module_ident}} = $_tok;
4074 0           push @item, $_tok;
4075            
4076             }
4077              
4078 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
4079             Parse::RecDescent::_tracefirst($text),
4080             q{config_statement},
4081             $tracelevel)
4082             if defined $::RD_TRACE;
4083 41     41   279 if (1) { no strict qw{refs};
  41         83  
  41         23445  
  0            
4084 0           $expectation->is(q{IDENT})->at($text);
4085 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
4086             {
4087            
4088 0 0         Parse::RecDescent::_trace(q{<>},
4089             Parse::RecDescent::_tracefirst($text),
4090             q{config_statement},
4091             $tracelevel)
4092             if defined $::RD_TRACE;
4093 0           $expectation->failed();
4094 0           last;
4095             }
4096 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
4097             . $_tok . q{]},
4098            
4099             Parse::RecDescent::_tracefirst($text),
4100             q{config_statement},
4101             $tracelevel)
4102             if defined $::RD_TRACE;
4103 0           $item{q{IDENT}} = $_tok;
4104 0           push @item, $_tok;
4105            
4106             }
4107              
4108 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
4109             Parse::RecDescent::_tracefirst($text),
4110             q{config_statement},
4111             $tracelevel)
4112             if defined $::RD_TRACE;
4113 0           $lastsep = "";
4114 0           $expectation->is(q{'\{'})->at($text);
4115            
4116              
4117 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
4118             {
4119            
4120 0           $expectation->failed();
4121 0 0         Parse::RecDescent::_trace(qq{<>},
4122             Parse::RecDescent::_tracefirst($text))
4123             if defined $::RD_TRACE;
4124 0           last;
4125             }
4126 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4127             . $& . q{])},
4128             Parse::RecDescent::_tracefirst($text))
4129             if defined $::RD_TRACE;
4130 0           push @item, $item{__STRING1__}=$&;
4131            
4132              
4133 0 0         Parse::RecDescent::_trace(q{Trying subrule: [backend_body]},
4134             Parse::RecDescent::_tracefirst($text),
4135             q{config_statement},
4136             $tracelevel)
4137             if defined $::RD_TRACE;
4138 41     41   291 if (1) { no strict qw{refs};
  41         1526  
  41         37698  
  0            
4139 0           $expectation->is(q{backend_body})->at($text);
4140 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::backend_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
4141             {
4142            
4143 0 0         Parse::RecDescent::_trace(q{<>},
4144             Parse::RecDescent::_tracefirst($text),
4145             q{config_statement},
4146             $tracelevel)
4147             if defined $::RD_TRACE;
4148 0           $expectation->failed();
4149 0           last;
4150             }
4151 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [backend_body]<< (return value: [}
4152             . $_tok . q{]},
4153            
4154             Parse::RecDescent::_tracefirst($text),
4155             q{config_statement},
4156             $tracelevel)
4157             if defined $::RD_TRACE;
4158 0           $item{q{backend_body}} = $_tok;
4159 0           push @item, $_tok;
4160            
4161             }
4162              
4163 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
4164             Parse::RecDescent::_tracefirst($text),
4165             q{config_statement},
4166             $tracelevel)
4167             if defined $::RD_TRACE;
4168 0           $lastsep = "";
4169 0           $expectation->is(q{'\}'})->at($text);
4170            
4171              
4172 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
4173             {
4174            
4175 0           $expectation->failed();
4176 0 0         Parse::RecDescent::_trace(qq{<>},
4177             Parse::RecDescent::_tracefirst($text))
4178             if defined $::RD_TRACE;
4179 0           last;
4180             }
4181 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4182             . $& . q{])},
4183             Parse::RecDescent::_tracefirst($text))
4184             if defined $::RD_TRACE;
4185 0           push @item, $item{__STRING2__}=$&;
4186            
4187              
4188 0 0         Parse::RecDescent::_trace(q{Trying action},
4189             Parse::RecDescent::_tracefirst($text),
4190             q{config_statement},
4191             $tracelevel)
4192             if defined $::RD_TRACE;
4193            
4194              
4195 0 0         $_tok = ($_noactions) ? 0 : do {
4196 0           my $backend_data = $item{backend_body};
4197 0           my $backend_type = $item{module_ident};
4198 0           my $backend_name = $item{IDENT};
4199              
4200 0           $backend_data->{__NAME__} = $backend_name;
4201              
4202 0           $return = [ $backend_type => $backend_data ];
4203             };
4204 0 0         unless (defined $_tok)
4205             {
4206 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
4207             if defined $::RD_TRACE;
4208 0           last;
4209             }
4210 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4211             . $_tok . q{])},
4212             Parse::RecDescent::_tracefirst($text))
4213             if defined $::RD_TRACE;
4214 0           push @item, $_tok;
4215 0           $item{__ACTION1__}=$_tok;
4216            
4217              
4218              
4219 0 0         Parse::RecDescent::_trace(q{>>Matched production: [module_ident IDENT '\{' backend_body '\}']<<},
4220             Parse::RecDescent::_tracefirst($text),
4221             q{config_statement},
4222             $tracelevel)
4223             if defined $::RD_TRACE;
4224 0           $_matched = 1;
4225 0           last;
4226             }
4227              
4228              
4229 0   0       while (!$_matched && !$commit)
4230             {
4231            
4232 0 0         Parse::RecDescent::_trace(q{Trying production: [keyword arg_element SEMI_COLON]},
4233             Parse::RecDescent::_tracefirst($_[1]),
4234             q{config_statement},
4235             $tracelevel)
4236             if defined $::RD_TRACE;
4237 0           my $thisprod = $thisrule->{"prods"}[1];
4238 0           $text = $_[1];
4239 0           my $_savetext;
4240 0           @item = (q{config_statement});
4241 0           %item = (__RULE__ => q{config_statement});
4242 0           my $repcount = 0;
4243              
4244              
4245 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
4246             Parse::RecDescent::_tracefirst($text),
4247             q{config_statement},
4248             $tracelevel)
4249             if defined $::RD_TRACE;
4250 41     41   475 if (1) { no strict qw{refs};
  41         95  
  41         12063  
  0            
4251 0           $expectation->is(q{})->at($text);
4252 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return [ 'config' ] })))
  0            
4253             {
4254            
4255 0 0         Parse::RecDescent::_trace(q{<>},
4256             Parse::RecDescent::_tracefirst($text),
4257             q{config_statement},
4258             $tracelevel)
4259             if defined $::RD_TRACE;
4260 0           $expectation->failed();
4261 0           last;
4262             }
4263 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
4264             . $_tok . q{]},
4265            
4266             Parse::RecDescent::_tracefirst($text),
4267             q{config_statement},
4268             $tracelevel)
4269             if defined $::RD_TRACE;
4270 0           $item{q{keyword}} = $_tok;
4271 0           push @item, $_tok;
4272            
4273             }
4274              
4275 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_element]},
4276             Parse::RecDescent::_tracefirst($text),
4277             q{config_statement},
4278             $tracelevel)
4279             if defined $::RD_TRACE;
4280 41     41   288 if (1) { no strict qw{refs};
  41         128  
  41         8485  
  0            
4281 0           $expectation->is(q{arg_element})->at($text);
4282 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_element($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
4283             {
4284            
4285 0 0         Parse::RecDescent::_trace(q{<>},
4286             Parse::RecDescent::_tracefirst($text),
4287             q{config_statement},
4288             $tracelevel)
4289             if defined $::RD_TRACE;
4290 0           $expectation->failed();
4291 0           last;
4292             }
4293 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_element]<< (return value: [}
4294             . $_tok . q{]},
4295            
4296             Parse::RecDescent::_tracefirst($text),
4297             q{config_statement},
4298             $tracelevel)
4299             if defined $::RD_TRACE;
4300 0           $item{q{arg_element}} = $_tok;
4301 0           push @item, $_tok;
4302            
4303             }
4304              
4305 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
4306             Parse::RecDescent::_tracefirst($text),
4307             q{config_statement},
4308             $tracelevel)
4309             if defined $::RD_TRACE;
4310 41     41   215 if (1) { no strict qw{refs};
  41         88  
  41         36011  
  0            
4311 0           $expectation->is(q{SEMI_COLON})->at($text);
4312 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
4313             {
4314            
4315 0 0         Parse::RecDescent::_trace(q{<>},
4316             Parse::RecDescent::_tracefirst($text),
4317             q{config_statement},
4318             $tracelevel)
4319             if defined $::RD_TRACE;
4320 0           $expectation->failed();
4321 0           last;
4322             }
4323 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
4324             . $_tok . q{]},
4325            
4326             Parse::RecDescent::_tracefirst($text),
4327             q{config_statement},
4328             $tracelevel)
4329             if defined $::RD_TRACE;
4330 0           $item{q{SEMI_COLON}} = $_tok;
4331 0           push @item, $_tok;
4332            
4333             }
4334              
4335 0 0         Parse::RecDescent::_trace(q{Trying action},
4336             Parse::RecDescent::_tracefirst($text),
4337             q{config_statement},
4338             $tracelevel)
4339             if defined $::RD_TRACE;
4340            
4341              
4342 0 0         $_tok = ($_noactions) ? 0 : do {
4343 0           $return = [ $item{keyword} => $item{arg_element} ];
4344             };
4345 0 0         unless (defined $_tok)
4346             {
4347 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
4348             if defined $::RD_TRACE;
4349 0           last;
4350             }
4351 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4352             . $_tok . q{])},
4353             Parse::RecDescent::_tracefirst($text))
4354             if defined $::RD_TRACE;
4355 0           push @item, $_tok;
4356 0           $item{__ACTION1__}=$_tok;
4357            
4358              
4359              
4360 0 0         Parse::RecDescent::_trace(q{>>Matched production: [keyword arg_element SEMI_COLON]<<},
4361             Parse::RecDescent::_tracefirst($text),
4362             q{config_statement},
4363             $tracelevel)
4364             if defined $::RD_TRACE;
4365 0           $_matched = 1;
4366 0           last;
4367             }
4368              
4369              
4370 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
4371             {
4372            
4373              
4374 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
4375 0 0         Parse::RecDescent::_trace(q{<>},
4376             Parse::RecDescent::_tracefirst($_[1]),
4377             q{config_statement},
4378             $tracelevel)
4379             if defined $::RD_TRACE;
4380 0           return undef;
4381             }
4382 0 0 0       if (!defined($return) && defined($score))
4383             {
4384 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4385             q{config_statement},
4386             $tracelevel)
4387             if defined $::RD_TRACE;
4388 0           $return = $score_return;
4389             }
4390 0           splice @{$thisparser->{errors}}, $err_at;
  0            
4391 0 0         $return = $item[$#item] unless defined $return;
4392 0 0         if (defined $::RD_TRACE)
4393             {
4394 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4395             $return . q{])}, "",
4396             q{config_statement},
4397             $tracelevel);
4398 0           Parse::RecDescent::_trace(q{(consumed: [} .
4399             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4400             Parse::RecDescent::_tracefirst($text),
4401             , q{config_statement},
4402             $tracelevel)
4403             }
4404 0           $_[1] = $text;
4405 0           return $return;
4406             }
4407              
4408             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4409             sub Parse::RecDescent::Bigtop::Grammar::table_ident
4410             {
4411 0     0     my $thisparser = $_[0];
4412 41     41   249 use vars q{$tracelevel};
  41         1312  
  41         19480  
4413 0   0       local $tracelevel = ($tracelevel||0)+1;
4414 0           $ERRORS = 0;
4415 0           my $thisrule = $thisparser->{"rules"}{"table_ident"};
4416            
4417 0 0         Parse::RecDescent::_trace(q{Trying rule: [table_ident]},
4418             Parse::RecDescent::_tracefirst($_[1]),
4419             q{table_ident},
4420             $tracelevel)
4421             if defined $::RD_TRACE;
4422              
4423            
4424 0           my $err_at = @{$thisparser->{errors}};
  0            
4425              
4426 0           my $score;
4427             my $score_return;
4428 0           my $_tok;
4429 0           my $return = undef;
4430 0           my $_matched=0;
4431 0           my $commit=0;
4432 0           my @item = ();
4433 0           my %item = ();
4434 0   0       my $repeating = defined($_[2]) && $_[2];
4435 0   0       my $_noactions = defined($_[3]) && $_[3];
4436 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
4437 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4438 0           my $text;
4439 0           my $lastsep="";
4440 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4441 0           $expectation->at($_[1]);
4442            
4443 0           my $thisline;
4444 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4445              
4446            
4447              
4448 0   0       while (!$_matched && !$commit)
4449             {
4450            
4451 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT '.' IDENT]},
4452             Parse::RecDescent::_tracefirst($_[1]),
4453             q{table_ident},
4454             $tracelevel)
4455             if defined $::RD_TRACE;
4456 0           my $thisprod = $thisrule->{"prods"}[0];
4457 0           $text = $_[1];
4458 0           my $_savetext;
4459 0           @item = (q{table_ident});
4460 0           %item = (__RULE__ => q{table_ident});
4461 0           my $repcount = 0;
4462              
4463              
4464 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
4465             Parse::RecDescent::_tracefirst($text),
4466             q{table_ident},
4467             $tracelevel)
4468             if defined $::RD_TRACE;
4469 41     41   249 if (1) { no strict qw{refs};
  41         136  
  41         18378  
  0            
4470 0           $expectation->is(q{})->at($text);
4471 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
4472             {
4473            
4474 0 0         Parse::RecDescent::_trace(q{<>},
4475             Parse::RecDescent::_tracefirst($text),
4476             q{table_ident},
4477             $tracelevel)
4478             if defined $::RD_TRACE;
4479 0           $expectation->failed();
4480 0           last;
4481             }
4482 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
4483             . $_tok . q{]},
4484            
4485             Parse::RecDescent::_tracefirst($text),
4486             q{table_ident},
4487             $tracelevel)
4488             if defined $::RD_TRACE;
4489 0           $item{q{IDENT}} = $_tok;
4490 0           push @item, $_tok;
4491            
4492             }
4493              
4494 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['.']},
4495             Parse::RecDescent::_tracefirst($text),
4496             q{table_ident},
4497             $tracelevel)
4498             if defined $::RD_TRACE;
4499 0           $lastsep = "";
4500 0           $expectation->is(q{'.'})->at($text);
4501            
4502              
4503 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\.//)
  0 0          
4504             {
4505            
4506 0           $expectation->failed();
4507 0 0         Parse::RecDescent::_trace(qq{<>},
4508             Parse::RecDescent::_tracefirst($text))
4509             if defined $::RD_TRACE;
4510 0           last;
4511             }
4512 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4513             . $& . q{])},
4514             Parse::RecDescent::_tracefirst($text))
4515             if defined $::RD_TRACE;
4516 0           push @item, $item{__STRING1__}=$&;
4517            
4518              
4519 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
4520             Parse::RecDescent::_tracefirst($text),
4521             q{table_ident},
4522             $tracelevel)
4523             if defined $::RD_TRACE;
4524 41     41   1483 if (1) { no strict qw{refs};
  41         3040  
  41         20773  
  0            
4525 0           $expectation->is(q{IDENT})->at($text);
4526 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
4527             {
4528            
4529 0 0         Parse::RecDescent::_trace(q{<>},
4530             Parse::RecDescent::_tracefirst($text),
4531             q{table_ident},
4532             $tracelevel)
4533             if defined $::RD_TRACE;
4534 0           $expectation->failed();
4535 0           last;
4536             }
4537 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
4538             . $_tok . q{]},
4539            
4540             Parse::RecDescent::_tracefirst($text),
4541             q{table_ident},
4542             $tracelevel)
4543             if defined $::RD_TRACE;
4544 0           $item{q{IDENT}} = $_tok;
4545 0           push @item, $_tok;
4546            
4547             }
4548              
4549 0 0         Parse::RecDescent::_trace(q{Trying action},
4550             Parse::RecDescent::_tracefirst($text),
4551             q{table_ident},
4552             $tracelevel)
4553             if defined $::RD_TRACE;
4554            
4555              
4556 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] . '.' . $item[3] };
  0            
4557 0 0         unless (defined $_tok)
4558             {
4559 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
4560             if defined $::RD_TRACE;
4561 0           last;
4562             }
4563 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4564             . $_tok . q{])},
4565             Parse::RecDescent::_tracefirst($text))
4566             if defined $::RD_TRACE;
4567 0           push @item, $_tok;
4568 0           $item{__ACTION1__}=$_tok;
4569            
4570              
4571              
4572 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT '.' IDENT]<<},
4573             Parse::RecDescent::_tracefirst($text),
4574             q{table_ident},
4575             $tracelevel)
4576             if defined $::RD_TRACE;
4577 0           $_matched = 1;
4578 0           last;
4579             }
4580              
4581              
4582 0   0       while (!$_matched && !$commit)
4583             {
4584            
4585 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT]},
4586             Parse::RecDescent::_tracefirst($_[1]),
4587             q{table_ident},
4588             $tracelevel)
4589             if defined $::RD_TRACE;
4590 0           my $thisprod = $thisrule->{"prods"}[1];
4591 0           $text = $_[1];
4592 0           my $_savetext;
4593 0           @item = (q{table_ident});
4594 0           %item = (__RULE__ => q{table_ident});
4595 0           my $repcount = 0;
4596              
4597              
4598 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
4599             Parse::RecDescent::_tracefirst($text),
4600             q{table_ident},
4601             $tracelevel)
4602             if defined $::RD_TRACE;
4603 41     41   303 if (1) { no strict qw{refs};
  41         85  
  41         38821  
  0            
4604 0           $expectation->is(q{})->at($text);
4605 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
4606             {
4607            
4608 0 0         Parse::RecDescent::_trace(q{<>},
4609             Parse::RecDescent::_tracefirst($text),
4610             q{table_ident},
4611             $tracelevel)
4612             if defined $::RD_TRACE;
4613 0           $expectation->failed();
4614 0           last;
4615             }
4616 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
4617             . $_tok . q{]},
4618            
4619             Parse::RecDescent::_tracefirst($text),
4620             q{table_ident},
4621             $tracelevel)
4622             if defined $::RD_TRACE;
4623 0           $item{q{IDENT}} = $_tok;
4624 0           push @item, $_tok;
4625            
4626             }
4627              
4628 0 0         Parse::RecDescent::_trace(q{Trying action},
4629             Parse::RecDescent::_tracefirst($text),
4630             q{table_ident},
4631             $tracelevel)
4632             if defined $::RD_TRACE;
4633            
4634              
4635 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] };
  0            
4636 0 0         unless (defined $_tok)
4637             {
4638 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
4639             if defined $::RD_TRACE;
4640 0           last;
4641             }
4642 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4643             . $_tok . q{])},
4644             Parse::RecDescent::_tracefirst($text))
4645             if defined $::RD_TRACE;
4646 0           push @item, $_tok;
4647 0           $item{__ACTION1__}=$_tok;
4648            
4649              
4650              
4651 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT]<<},
4652             Parse::RecDescent::_tracefirst($text),
4653             q{table_ident},
4654             $tracelevel)
4655             if defined $::RD_TRACE;
4656 0           $_matched = 1;
4657 0           last;
4658             }
4659              
4660              
4661 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
4662             {
4663            
4664              
4665 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
4666 0 0         Parse::RecDescent::_trace(q{<>},
4667             Parse::RecDescent::_tracefirst($_[1]),
4668             q{table_ident},
4669             $tracelevel)
4670             if defined $::RD_TRACE;
4671 0           return undef;
4672             }
4673 0 0 0       if (!defined($return) && defined($score))
4674             {
4675 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4676             q{table_ident},
4677             $tracelevel)
4678             if defined $::RD_TRACE;
4679 0           $return = $score_return;
4680             }
4681 0           splice @{$thisparser->{errors}}, $err_at;
  0            
4682 0 0         $return = $item[$#item] unless defined $return;
4683 0 0         if (defined $::RD_TRACE)
4684             {
4685 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4686             $return . q{])}, "",
4687             q{table_ident},
4688             $tracelevel);
4689 0           Parse::RecDescent::_trace(q{(consumed: [} .
4690             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4691             Parse::RecDescent::_tracefirst($text),
4692             , q{table_ident},
4693             $tracelevel)
4694             }
4695 0           $_[1] = $text;
4696 0           return $return;
4697             }
4698              
4699             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4700             sub Parse::RecDescent::Bigtop::Grammar::table_body
4701             {
4702 0     0     my $thisparser = $_[0];
4703 41     41   279 use vars q{$tracelevel};
  41         82  
  41         59840  
4704 0   0       local $tracelevel = ($tracelevel||0)+1;
4705 0           $ERRORS = 0;
4706 0           my $thisrule = $thisparser->{"rules"}{"table_body"};
4707            
4708 0 0         Parse::RecDescent::_trace(q{Trying rule: [table_body]},
4709             Parse::RecDescent::_tracefirst($_[1]),
4710             q{table_body},
4711             $tracelevel)
4712             if defined $::RD_TRACE;
4713              
4714            
4715 0           my $err_at = @{$thisparser->{errors}};
  0            
4716              
4717 0           my $score;
4718             my $score_return;
4719 0           my $_tok;
4720 0           my $return = undef;
4721 0           my $_matched=0;
4722 0           my $commit=0;
4723 0           my @item = ();
4724 0           my %item = ();
4725 0   0       my $repeating = defined($_[2]) && $_[2];
4726 0   0       my $_noactions = defined($_[3]) && $_[3];
4727 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
4728 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4729 0           my $text;
4730 0           my $lastsep="";
4731 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4732 0           $expectation->at($_[1]);
4733            
4734 0           my $thisline;
4735 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4736              
4737            
4738              
4739 0   0       while (!$_matched && !$commit)
4740             {
4741            
4742 0 0         Parse::RecDescent::_trace(q{Trying production: [table_element_block]},
4743             Parse::RecDescent::_tracefirst($_[1]),
4744             q{table_body},
4745             $tracelevel)
4746             if defined $::RD_TRACE;
4747 0           my $thisprod = $thisrule->{"prods"}[0];
4748 0           $text = $_[1];
4749 0           my $_savetext;
4750 0           @item = (q{table_body});
4751 0           %item = (__RULE__ => q{table_body});
4752 0           my $repcount = 0;
4753              
4754              
4755 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [table_element_block]},
4756             Parse::RecDescent::_tracefirst($text),
4757             q{table_body},
4758             $tracelevel)
4759             if defined $::RD_TRACE;
4760 0           $expectation->is(q{})->at($text);
4761            
4762 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::table_element_block, 0, 100000000, $_noactions,$expectation,undef)))
4763             {
4764 0 0         Parse::RecDescent::_trace(q{<>},
4765             Parse::RecDescent::_tracefirst($text),
4766             q{table_body},
4767             $tracelevel)
4768             if defined $::RD_TRACE;
4769 0           last;
4770             }
4771 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [table_element_block]<< (}
4772             . @$_tok . q{ times)},
4773            
4774             Parse::RecDescent::_tracefirst($text),
4775             q{table_body},
4776             $tracelevel)
4777             if defined $::RD_TRACE;
4778 0           $item{q{table_element_block(s?)}} = $_tok;
4779 0           push @item, $_tok;
4780            
4781              
4782              
4783 0 0         Parse::RecDescent::_trace(q{Trying action},
4784             Parse::RecDescent::_tracefirst($text),
4785             q{table_body},
4786             $tracelevel)
4787             if defined $::RD_TRACE;
4788            
4789              
4790 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
4791 0 0         unless (defined $_tok)
4792             {
4793 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
4794             if defined $::RD_TRACE;
4795 0           last;
4796             }
4797 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4798             . $_tok . q{])},
4799             Parse::RecDescent::_tracefirst($text))
4800             if defined $::RD_TRACE;
4801 0           push @item, $_tok;
4802            
4803            
4804              
4805              
4806 0 0         Parse::RecDescent::_trace(q{>>Matched production: [table_element_block]<<},
4807             Parse::RecDescent::_tracefirst($text),
4808             q{table_body},
4809             $tracelevel)
4810             if defined $::RD_TRACE;
4811 0           $_matched = 1;
4812 0           last;
4813             }
4814              
4815              
4816 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
4817             {
4818            
4819              
4820 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
4821 0 0         Parse::RecDescent::_trace(q{<>},
4822             Parse::RecDescent::_tracefirst($_[1]),
4823             q{table_body},
4824             $tracelevel)
4825             if defined $::RD_TRACE;
4826 0           return undef;
4827             }
4828 0 0 0       if (!defined($return) && defined($score))
4829             {
4830 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4831             q{table_body},
4832             $tracelevel)
4833             if defined $::RD_TRACE;
4834 0           $return = $score_return;
4835             }
4836 0           splice @{$thisparser->{errors}}, $err_at;
  0            
4837 0 0         $return = $item[$#item] unless defined $return;
4838 0 0         if (defined $::RD_TRACE)
4839             {
4840 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4841             $return . q{])}, "",
4842             q{table_body},
4843             $tracelevel);
4844 0           Parse::RecDescent::_trace(q{(consumed: [} .
4845             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4846             Parse::RecDescent::_tracefirst($text),
4847             , q{table_body},
4848             $tracelevel)
4849             }
4850 0           $_[1] = $text;
4851 0           return $return;
4852             }
4853              
4854             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4855             sub Parse::RecDescent::Bigtop::Grammar::anything
4856             {
4857 0     0     my $thisparser = $_[0];
4858 41     41   2983 use vars q{$tracelevel};
  41         112  
  41         106546  
4859 0   0       local $tracelevel = ($tracelevel||0)+1;
4860 0           $ERRORS = 0;
4861 0           my $thisrule = $thisparser->{"rules"}{"anything"};
4862            
4863 0 0         Parse::RecDescent::_trace(q{Trying rule: [anything]},
4864             Parse::RecDescent::_tracefirst($_[1]),
4865             q{anything},
4866             $tracelevel)
4867             if defined $::RD_TRACE;
4868              
4869            
4870 0           my $err_at = @{$thisparser->{errors}};
  0            
4871              
4872 0           my $score;
4873             my $score_return;
4874 0           my $_tok;
4875 0           my $return = undef;
4876 0           my $_matched=0;
4877 0           my $commit=0;
4878 0           my @item = ();
4879 0           my %item = ();
4880 0   0       my $repeating = defined($_[2]) && $_[2];
4881 0   0       my $_noactions = defined($_[3]) && $_[3];
4882 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
4883 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
4884 0           my $text;
4885 0           my $lastsep="";
4886 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4887 0           $expectation->at($_[1]);
4888            
4889 0           my $thisline;
4890 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4891              
4892            
4893              
4894 0   0       while (!$_matched && !$commit)
4895             {
4896            
4897 0 0         Parse::RecDescent::_trace(q{Trying production: [/.*/s]},
4898             Parse::RecDescent::_tracefirst($_[1]),
4899             q{anything},
4900             $tracelevel)
4901             if defined $::RD_TRACE;
4902 0           my $thisprod = $thisrule->{"prods"}[0];
4903 0           $text = $_[1];
4904 0           my $_savetext;
4905 0           @item = (q{anything});
4906 0           %item = (__RULE__ => q{anything});
4907 0           my $repcount = 0;
4908              
4909              
4910 0 0         Parse::RecDescent::_trace(q{Trying terminal: [/.*/s]}, Parse::RecDescent::_tracefirst($text),
4911             q{anything},
4912             $tracelevel)
4913             if defined $::RD_TRACE;
4914 0           $lastsep = "";
4915 0           $expectation->is(q{})->at($text);
4916            
4917              
4918 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:.*)//s)
  0 0          
4919             {
4920            
4921 0           $expectation->failed();
4922 0 0         Parse::RecDescent::_trace(q{<>},
4923             Parse::RecDescent::_tracefirst($text))
4924             if defined $::RD_TRACE;
4925              
4926 0           last;
4927             }
4928 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4929             . $& . q{])},
4930             Parse::RecDescent::_tracefirst($text))
4931             if defined $::RD_TRACE;
4932 0           push @item, $item{__PATTERN1__}=$&;
4933            
4934              
4935 0 0         Parse::RecDescent::_trace(q{Trying action},
4936             Parse::RecDescent::_tracefirst($text),
4937             q{anything},
4938             $tracelevel)
4939             if defined $::RD_TRACE;
4940            
4941              
4942 0 0         $_tok = ($_noactions) ? 0 : do {bless {__VALUE__=>$item[1]}, $item[0]};
  0            
4943 0 0         unless (defined $_tok)
4944             {
4945 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
4946             if defined $::RD_TRACE;
4947 0           last;
4948             }
4949 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
4950             . $_tok . q{])},
4951             Parse::RecDescent::_tracefirst($text))
4952             if defined $::RD_TRACE;
4953 0           push @item, $_tok;
4954            
4955            
4956              
4957              
4958 0 0         Parse::RecDescent::_trace(q{>>Matched production: [/.*/s]<<},
4959             Parse::RecDescent::_tracefirst($text),
4960             q{anything},
4961             $tracelevel)
4962             if defined $::RD_TRACE;
4963 0           $_matched = 1;
4964 0           last;
4965             }
4966              
4967              
4968 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
4969             {
4970            
4971              
4972 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
4973 0 0         Parse::RecDescent::_trace(q{<>},
4974             Parse::RecDescent::_tracefirst($_[1]),
4975             q{anything},
4976             $tracelevel)
4977             if defined $::RD_TRACE;
4978 0           return undef;
4979             }
4980 0 0 0       if (!defined($return) && defined($score))
4981             {
4982 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4983             q{anything},
4984             $tracelevel)
4985             if defined $::RD_TRACE;
4986 0           $return = $score_return;
4987             }
4988 0           splice @{$thisparser->{errors}}, $err_at;
  0            
4989 0 0         $return = $item[$#item] unless defined $return;
4990 0 0         if (defined $::RD_TRACE)
4991             {
4992 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4993             $return . q{])}, "",
4994             q{anything},
4995             $tracelevel);
4996 0           Parse::RecDescent::_trace(q{(consumed: [} .
4997             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4998             Parse::RecDescent::_tracefirst($text),
4999             , q{anything},
5000             $tracelevel)
5001             }
5002 0           $_[1] = $text;
5003 0           return $return;
5004             }
5005              
5006             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5007             sub Parse::RecDescent::Bigtop::Grammar::app_statement
5008             {
5009 0     0     my $thisparser = $_[0];
5010 41     41   294 use vars q{$tracelevel};
  41         83  
  41         25933  
5011 0   0       local $tracelevel = ($tracelevel||0)+1;
5012 0           $ERRORS = 0;
5013 0           my $thisrule = $thisparser->{"rules"}{"app_statement"};
5014            
5015 0 0         Parse::RecDescent::_trace(q{Trying rule: [app_statement]},
5016             Parse::RecDescent::_tracefirst($_[1]),
5017             q{app_statement},
5018             $tracelevel)
5019             if defined $::RD_TRACE;
5020              
5021            
5022 0           my $err_at = @{$thisparser->{errors}};
  0            
5023              
5024 0           my $score;
5025             my $score_return;
5026 0           my $_tok;
5027 0           my $return = undef;
5028 0           my $_matched=0;
5029 0           my $commit=0;
5030 0           my @item = ();
5031 0           my %item = ();
5032 0   0       my $repeating = defined($_[2]) && $_[2];
5033 0   0       my $_noactions = defined($_[3]) && $_[3];
5034 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
5035 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5036 0           my $text;
5037 0           my $lastsep="";
5038 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5039 0           $expectation->at($_[1]);
5040            
5041 0           my $thisline;
5042 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5043              
5044            
5045              
5046 0   0       while (!$_matched && !$commit)
5047             {
5048            
5049 0 0         Parse::RecDescent::_trace(q{Trying production: [keyword arg_list SEMI_COLON]},
5050             Parse::RecDescent::_tracefirst($_[1]),
5051             q{app_statement},
5052             $tracelevel)
5053             if defined $::RD_TRACE;
5054 0           my $thisprod = $thisrule->{"prods"}[0];
5055 0           $text = $_[1];
5056 0           my $_savetext;
5057 0           @item = (q{app_statement});
5058 0           %item = (__RULE__ => q{app_statement});
5059 0           my $repcount = 0;
5060              
5061              
5062 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
5063             Parse::RecDescent::_tracefirst($text),
5064             q{app_statement},
5065             $tracelevel)
5066             if defined $::RD_TRACE;
5067 41     41   268 if (1) { no strict qw{refs};
  41         93  
  41         19748  
  0            
5068 0           $expectation->is(q{})->at($text);
5069 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return [ 'app' ] })))
  0            
5070             {
5071            
5072 0 0         Parse::RecDescent::_trace(q{<>},
5073             Parse::RecDescent::_tracefirst($text),
5074             q{app_statement},
5075             $tracelevel)
5076             if defined $::RD_TRACE;
5077 0           $expectation->failed();
5078 0           last;
5079             }
5080 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
5081             . $_tok . q{]},
5082            
5083             Parse::RecDescent::_tracefirst($text),
5084             q{app_statement},
5085             $tracelevel)
5086             if defined $::RD_TRACE;
5087 0           $item{q{keyword}} = $_tok;
5088 0           push @item, $_tok;
5089            
5090             }
5091              
5092 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [arg_list]},
5093             Parse::RecDescent::_tracefirst($text),
5094             q{app_statement},
5095             $tracelevel)
5096             if defined $::RD_TRACE;
5097 0           $expectation->is(q{arg_list})->at($text);
5098            
5099 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::arg_list, 0, 1, $_noactions,$expectation,undef)))
5100             {
5101 0 0         Parse::RecDescent::_trace(q{<>},
5102             Parse::RecDescent::_tracefirst($text),
5103             q{app_statement},
5104             $tracelevel)
5105             if defined $::RD_TRACE;
5106 0           last;
5107             }
5108 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [arg_list]<< (}
5109             . @$_tok . q{ times)},
5110            
5111             Parse::RecDescent::_tracefirst($text),
5112             q{app_statement},
5113             $tracelevel)
5114             if defined $::RD_TRACE;
5115 0           $item{q{arg_list(?)}} = $_tok;
5116 0           push @item, $_tok;
5117            
5118              
5119              
5120 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
5121             Parse::RecDescent::_tracefirst($text),
5122             q{app_statement},
5123             $tracelevel)
5124             if defined $::RD_TRACE;
5125 41     41   1740 if (1) { no strict qw{refs};
  41         98  
  41         31303  
  0            
5126 0           $expectation->is(q{SEMI_COLON})->at($text);
5127 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
5128             {
5129            
5130 0 0         Parse::RecDescent::_trace(q{<>},
5131             Parse::RecDescent::_tracefirst($text),
5132             q{app_statement},
5133             $tracelevel)
5134             if defined $::RD_TRACE;
5135 0           $expectation->failed();
5136 0           last;
5137             }
5138 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
5139             . $_tok . q{]},
5140            
5141             Parse::RecDescent::_tracefirst($text),
5142             q{app_statement},
5143             $tracelevel)
5144             if defined $::RD_TRACE;
5145 0           $item{q{SEMI_COLON}} = $_tok;
5146 0           push @item, $_tok;
5147            
5148             }
5149              
5150 0 0         Parse::RecDescent::_trace(q{Trying action},
5151             Parse::RecDescent::_tracefirst($text),
5152             q{app_statement},
5153             $tracelevel)
5154             if defined $::RD_TRACE;
5155            
5156              
5157 0 0         $_tok = ($_noactions) ? 0 : do {
5158 0           bless {
5159             __KEYWORD__ => $item{keyword},
5160             __ARGS__ => $item{'arg_list(?)'}->[0],
5161             }, 'app_statement'
5162             };
5163 0 0         unless (defined $_tok)
5164             {
5165 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
5166             if defined $::RD_TRACE;
5167 0           last;
5168             }
5169 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5170             . $_tok . q{])},
5171             Parse::RecDescent::_tracefirst($text))
5172             if defined $::RD_TRACE;
5173 0           push @item, $_tok;
5174 0           $item{__ACTION1__}=$_tok;
5175            
5176              
5177              
5178 0 0         Parse::RecDescent::_trace(q{>>Matched production: [keyword arg_list SEMI_COLON]<<},
5179             Parse::RecDescent::_tracefirst($text),
5180             q{app_statement},
5181             $tracelevel)
5182             if defined $::RD_TRACE;
5183 0           $_matched = 1;
5184 0           last;
5185             }
5186              
5187              
5188 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
5189             {
5190            
5191              
5192 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
5193 0 0         Parse::RecDescent::_trace(q{<>},
5194             Parse::RecDescent::_tracefirst($_[1]),
5195             q{app_statement},
5196             $tracelevel)
5197             if defined $::RD_TRACE;
5198 0           return undef;
5199             }
5200 0 0 0       if (!defined($return) && defined($score))
5201             {
5202 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5203             q{app_statement},
5204             $tracelevel)
5205             if defined $::RD_TRACE;
5206 0           $return = $score_return;
5207             }
5208 0           splice @{$thisparser->{errors}}, $err_at;
  0            
5209 0 0         $return = $item[$#item] unless defined $return;
5210 0 0         if (defined $::RD_TRACE)
5211             {
5212 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5213             $return . q{])}, "",
5214             q{app_statement},
5215             $tracelevel);
5216 0           Parse::RecDescent::_trace(q{(consumed: [} .
5217             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5218             Parse::RecDescent::_tracefirst($text),
5219             , q{app_statement},
5220             $tracelevel)
5221             }
5222 0           $_[1] = $text;
5223 0           return $return;
5224             }
5225              
5226             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5227             sub Parse::RecDescent::Bigtop::Grammar::BACKTICK
5228             {
5229 0     0     my $thisparser = $_[0];
5230 41     41   3072 use vars q{$tracelevel};
  41         2596  
  41         52664  
5231 0   0       local $tracelevel = ($tracelevel||0)+1;
5232 0           $ERRORS = 0;
5233 0           my $thisrule = $thisparser->{"rules"}{"BACKTICK"};
5234            
5235 0 0         Parse::RecDescent::_trace(q{Trying rule: [BACKTICK]},
5236             Parse::RecDescent::_tracefirst($_[1]),
5237             q{BACKTICK},
5238             $tracelevel)
5239             if defined $::RD_TRACE;
5240              
5241            
5242 0           my $err_at = @{$thisparser->{errors}};
  0            
5243              
5244 0           my $score;
5245             my $score_return;
5246 0           my $_tok;
5247 0           my $return = undef;
5248 0           my $_matched=0;
5249 0           my $commit=0;
5250 0           my @item = ();
5251 0           my %item = ();
5252 0   0       my $repeating = defined($_[2]) && $_[2];
5253 0   0       my $_noactions = defined($_[3]) && $_[3];
5254 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
5255 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5256 0           my $text;
5257 0           my $lastsep="";
5258 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5259 0           $expectation->at($_[1]);
5260            
5261 0           my $thisline;
5262 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5263              
5264            
5265              
5266 0   0       while (!$_matched && !$commit)
5267             {
5268            
5269 0 0         Parse::RecDescent::_trace(q{Trying production: ['`']},
5270             Parse::RecDescent::_tracefirst($_[1]),
5271             q{BACKTICK},
5272             $tracelevel)
5273             if defined $::RD_TRACE;
5274 0           my $thisprod = $thisrule->{"prods"}[0];
5275 0           $text = $_[1];
5276 0           my $_savetext;
5277 0           @item = (q{BACKTICK});
5278 0           %item = (__RULE__ => q{BACKTICK});
5279 0           my $repcount = 0;
5280              
5281              
5282 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['`']},
5283             Parse::RecDescent::_tracefirst($text),
5284             q{BACKTICK},
5285             $tracelevel)
5286             if defined $::RD_TRACE;
5287 0           $lastsep = "";
5288 0           $expectation->is(q{})->at($text);
5289            
5290              
5291 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and do { $_tok = "`"; 1 } and
  0 0 0        
  0   0        
  0            
5292             substr($text,0,length($_tok)) eq $_tok and
5293 0           do { substr($text,0,length($_tok)) = ""; 1; }
  0            
5294             )
5295             {
5296            
5297 0           $expectation->failed();
5298 0 0         Parse::RecDescent::_trace(q{<>},
5299             Parse::RecDescent::_tracefirst($text))
5300             if defined $::RD_TRACE;
5301 0           last;
5302             }
5303 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5304             . $_tok . q{])},
5305             Parse::RecDescent::_tracefirst($text))
5306             if defined $::RD_TRACE;
5307 0           push @item, $item{__STRING1__}=$_tok;
5308            
5309              
5310 0 0         Parse::RecDescent::_trace(q{Trying action},
5311             Parse::RecDescent::_tracefirst($text),
5312             q{BACKTICK},
5313             $tracelevel)
5314             if defined $::RD_TRACE;
5315            
5316              
5317 0 0         $_tok = ($_noactions) ? 0 : do { $backtick_line = $thisline; };
  0            
5318 0 0         unless (defined $_tok)
5319             {
5320 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
5321             if defined $::RD_TRACE;
5322 0           last;
5323             }
5324 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5325             . $_tok . q{])},
5326             Parse::RecDescent::_tracefirst($text))
5327             if defined $::RD_TRACE;
5328 0           push @item, $_tok;
5329 0           $item{__ACTION1__}=$_tok;
5330            
5331              
5332              
5333 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['`']<<},
5334             Parse::RecDescent::_tracefirst($text),
5335             q{BACKTICK},
5336             $tracelevel)
5337             if defined $::RD_TRACE;
5338 0           $_matched = 1;
5339 0           last;
5340             }
5341              
5342              
5343 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
5344             {
5345            
5346              
5347 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
5348 0 0         Parse::RecDescent::_trace(q{<>},
5349             Parse::RecDescent::_tracefirst($_[1]),
5350             q{BACKTICK},
5351             $tracelevel)
5352             if defined $::RD_TRACE;
5353 0           return undef;
5354             }
5355 0 0 0       if (!defined($return) && defined($score))
5356             {
5357 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5358             q{BACKTICK},
5359             $tracelevel)
5360             if defined $::RD_TRACE;
5361 0           $return = $score_return;
5362             }
5363 0           splice @{$thisparser->{errors}}, $err_at;
  0            
5364 0 0         $return = $item[$#item] unless defined $return;
5365 0 0         if (defined $::RD_TRACE)
5366             {
5367 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5368             $return . q{])}, "",
5369             q{BACKTICK},
5370             $tracelevel);
5371 0           Parse::RecDescent::_trace(q{(consumed: [} .
5372             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5373             Parse::RecDescent::_tracefirst($text),
5374             , q{BACKTICK},
5375             $tracelevel)
5376             }
5377 0           $_[1] = $text;
5378 0           return $return;
5379             }
5380              
5381             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5382             sub Parse::RecDescent::Bigtop::Grammar::join_table_body
5383             {
5384 0     0     my $thisparser = $_[0];
5385 41     41   264 use vars q{$tracelevel};
  41         101  
  41         40917  
5386 0   0       local $tracelevel = ($tracelevel||0)+1;
5387 0           $ERRORS = 0;
5388 0           my $thisrule = $thisparser->{"rules"}{"join_table_body"};
5389            
5390 0 0         Parse::RecDescent::_trace(q{Trying rule: [join_table_body]},
5391             Parse::RecDescent::_tracefirst($_[1]),
5392             q{join_table_body},
5393             $tracelevel)
5394             if defined $::RD_TRACE;
5395              
5396            
5397 0           my $err_at = @{$thisparser->{errors}};
  0            
5398              
5399 0           my $score;
5400             my $score_return;
5401 0           my $_tok;
5402 0           my $return = undef;
5403 0           my $_matched=0;
5404 0           my $commit=0;
5405 0           my @item = ();
5406 0           my %item = ();
5407 0   0       my $repeating = defined($_[2]) && $_[2];
5408 0   0       my $_noactions = defined($_[3]) && $_[3];
5409 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
5410 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5411 0           my $text;
5412 0           my $lastsep="";
5413 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5414 0           $expectation->at($_[1]);
5415            
5416 0           my $thisline;
5417 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5418              
5419            
5420              
5421 0   0       while (!$_matched && !$commit)
5422             {
5423            
5424 0 0         Parse::RecDescent::_trace(q{Trying production: [join_table_statement]},
5425             Parse::RecDescent::_tracefirst($_[1]),
5426             q{join_table_body},
5427             $tracelevel)
5428             if defined $::RD_TRACE;
5429 0           my $thisprod = $thisrule->{"prods"}[0];
5430 0           $text = $_[1];
5431 0           my $_savetext;
5432 0           @item = (q{join_table_body});
5433 0           %item = (__RULE__ => q{join_table_body});
5434 0           my $repcount = 0;
5435              
5436              
5437 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [join_table_statement]},
5438             Parse::RecDescent::_tracefirst($text),
5439             q{join_table_body},
5440             $tracelevel)
5441             if defined $::RD_TRACE;
5442 0           $expectation->is(q{})->at($text);
5443            
5444 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::join_table_statement, 0, 100000000, $_noactions,$expectation,undef)))
5445             {
5446 0 0         Parse::RecDescent::_trace(q{<>},
5447             Parse::RecDescent::_tracefirst($text),
5448             q{join_table_body},
5449             $tracelevel)
5450             if defined $::RD_TRACE;
5451 0           last;
5452             }
5453 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [join_table_statement]<< (}
5454             . @$_tok . q{ times)},
5455            
5456             Parse::RecDescent::_tracefirst($text),
5457             q{join_table_body},
5458             $tracelevel)
5459             if defined $::RD_TRACE;
5460 0           $item{q{join_table_statement(s?)}} = $_tok;
5461 0           push @item, $_tok;
5462            
5463              
5464              
5465 0 0         Parse::RecDescent::_trace(q{Trying action},
5466             Parse::RecDescent::_tracefirst($text),
5467             q{join_table_body},
5468             $tracelevel)
5469             if defined $::RD_TRACE;
5470            
5471              
5472 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
5473 0 0         unless (defined $_tok)
5474             {
5475 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
5476             if defined $::RD_TRACE;
5477 0           last;
5478             }
5479 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5480             . $_tok . q{])},
5481             Parse::RecDescent::_tracefirst($text))
5482             if defined $::RD_TRACE;
5483 0           push @item, $_tok;
5484            
5485            
5486              
5487              
5488 0 0         Parse::RecDescent::_trace(q{>>Matched production: [join_table_statement]<<},
5489             Parse::RecDescent::_tracefirst($text),
5490             q{join_table_body},
5491             $tracelevel)
5492             if defined $::RD_TRACE;
5493 0           $_matched = 1;
5494 0           last;
5495             }
5496              
5497              
5498 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
5499             {
5500            
5501              
5502 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
5503 0 0         Parse::RecDescent::_trace(q{<>},
5504             Parse::RecDescent::_tracefirst($_[1]),
5505             q{join_table_body},
5506             $tracelevel)
5507             if defined $::RD_TRACE;
5508 0           return undef;
5509             }
5510 0 0 0       if (!defined($return) && defined($score))
5511             {
5512 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5513             q{join_table_body},
5514             $tracelevel)
5515             if defined $::RD_TRACE;
5516 0           $return = $score_return;
5517             }
5518 0           splice @{$thisparser->{errors}}, $err_at;
  0            
5519 0 0         $return = $item[$#item] unless defined $return;
5520 0 0         if (defined $::RD_TRACE)
5521             {
5522 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5523             $return . q{])}, "",
5524             q{join_table_body},
5525             $tracelevel);
5526 0           Parse::RecDescent::_trace(q{(consumed: [} .
5527             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5528             Parse::RecDescent::_tracefirst($text),
5529             , q{join_table_body},
5530             $tracelevel)
5531             }
5532 0           $_[1] = $text;
5533 0           return $return;
5534             }
5535              
5536             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5537             sub Parse::RecDescent::Bigtop::Grammar::literal_block
5538             {
5539 0     0     my $thisparser = $_[0];
5540 41     41   254 use vars q{$tracelevel};
  41         88  
  41         26785  
5541 0   0       local $tracelevel = ($tracelevel||0)+1;
5542 0           $ERRORS = 0;
5543 0           my $thisrule = $thisparser->{"rules"}{"literal_block"};
5544            
5545 0 0         Parse::RecDescent::_trace(q{Trying rule: [literal_block]},
5546             Parse::RecDescent::_tracefirst($_[1]),
5547             q{literal_block},
5548             $tracelevel)
5549             if defined $::RD_TRACE;
5550              
5551            
5552 0           my $err_at = @{$thisparser->{errors}};
  0            
5553              
5554 0           my $score;
5555             my $score_return;
5556 0           my $_tok;
5557 0           my $return = undef;
5558 0           my $_matched=0;
5559 0           my $commit=0;
5560 0           my @item = ();
5561 0           my %item = ();
5562 0   0       my $repeating = defined($_[2]) && $_[2];
5563 0   0       my $_noactions = defined($_[3]) && $_[3];
5564 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
5565 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5566 0           my $text;
5567 0           my $lastsep="";
5568 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5569 0           $expectation->at($_[1]);
5570            
5571 0           my $thisline;
5572 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5573              
5574            
5575              
5576 0   0       while (!$_matched && !$commit)
5577             {
5578            
5579 0 0         Parse::RecDescent::_trace(q{Trying production: ['literal' keyword string SEMI_COLON]},
5580             Parse::RecDescent::_tracefirst($_[1]),
5581             q{literal_block},
5582             $tracelevel)
5583             if defined $::RD_TRACE;
5584 0           my $thisprod = $thisrule->{"prods"}[0];
5585 0           $text = $_[1];
5586 0           my $_savetext;
5587 0           @item = (q{literal_block});
5588 0           %item = (__RULE__ => q{literal_block});
5589 0           my $repcount = 0;
5590              
5591              
5592 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['literal']},
5593             Parse::RecDescent::_tracefirst($text),
5594             q{literal_block},
5595             $tracelevel)
5596             if defined $::RD_TRACE;
5597 0           $lastsep = "";
5598 0           $expectation->is(q{})->at($text);
5599            
5600              
5601 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aliteral//)
  0 0          
5602             {
5603            
5604 0           $expectation->failed();
5605 0 0         Parse::RecDescent::_trace(qq{<>},
5606             Parse::RecDescent::_tracefirst($text))
5607             if defined $::RD_TRACE;
5608 0           last;
5609             }
5610 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5611             . $& . q{])},
5612             Parse::RecDescent::_tracefirst($text))
5613             if defined $::RD_TRACE;
5614 0           push @item, $item{__STRING1__}=$&;
5615            
5616              
5617 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
5618             Parse::RecDescent::_tracefirst($text),
5619             q{literal_block},
5620             $tracelevel)
5621             if defined $::RD_TRACE;
5622 41     41   292 if (1) { no strict qw{refs};
  41         74  
  41         18512  
  0            
5623 0           $expectation->is(q{keyword})->at($text);
5624 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return [ 'app_literal' ] })))
  0            
5625             {
5626            
5627 0 0         Parse::RecDescent::_trace(q{<>},
5628             Parse::RecDescent::_tracefirst($text),
5629             q{literal_block},
5630             $tracelevel)
5631             if defined $::RD_TRACE;
5632 0           $expectation->failed();
5633 0           last;
5634             }
5635 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
5636             . $_tok . q{]},
5637            
5638             Parse::RecDescent::_tracefirst($text),
5639             q{literal_block},
5640             $tracelevel)
5641             if defined $::RD_TRACE;
5642 0           $item{q{keyword}} = $_tok;
5643 0           push @item, $_tok;
5644            
5645             }
5646              
5647 0 0         Parse::RecDescent::_trace(q{Trying subrule: [string]},
5648             Parse::RecDescent::_tracefirst($text),
5649             q{literal_block},
5650             $tracelevel)
5651             if defined $::RD_TRACE;
5652 41     41   340 if (1) { no strict qw{refs};
  41         93  
  41         8238  
  0            
5653 0           $expectation->is(q{string})->at($text);
5654 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::string($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
5655             {
5656            
5657 0 0         Parse::RecDescent::_trace(q{<>},
5658             Parse::RecDescent::_tracefirst($text),
5659             q{literal_block},
5660             $tracelevel)
5661             if defined $::RD_TRACE;
5662 0           $expectation->failed();
5663 0           last;
5664             }
5665 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [string]<< (return value: [}
5666             . $_tok . q{]},
5667            
5668             Parse::RecDescent::_tracefirst($text),
5669             q{literal_block},
5670             $tracelevel)
5671             if defined $::RD_TRACE;
5672 0           $item{q{string}} = $_tok;
5673 0           push @item, $_tok;
5674            
5675             }
5676              
5677 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
5678             Parse::RecDescent::_tracefirst($text),
5679             q{literal_block},
5680             $tracelevel)
5681             if defined $::RD_TRACE;
5682 41     41   233 if (1) { no strict qw{refs};
  41         90  
  41         38134  
  0            
5683 0           $expectation->is(q{SEMI_COLON})->at($text);
5684 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
5685             {
5686            
5687 0 0         Parse::RecDescent::_trace(q{<>},
5688             Parse::RecDescent::_tracefirst($text),
5689             q{literal_block},
5690             $tracelevel)
5691             if defined $::RD_TRACE;
5692 0           $expectation->failed();
5693 0           last;
5694             }
5695 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
5696             . $_tok . q{]},
5697            
5698             Parse::RecDescent::_tracefirst($text),
5699             q{literal_block},
5700             $tracelevel)
5701             if defined $::RD_TRACE;
5702 0           $item{q{SEMI_COLON}} = $_tok;
5703 0           push @item, $_tok;
5704            
5705             }
5706              
5707 0 0         Parse::RecDescent::_trace(q{Trying action},
5708             Parse::RecDescent::_tracefirst($text),
5709             q{literal_block},
5710             $tracelevel)
5711             if defined $::RD_TRACE;
5712            
5713              
5714 0 0         $_tok = ($_noactions) ? 0 : do {
5715             bless {
5716             __IDENT__ => Bigtop::Parser->get_ident(),
5717             __BACKEND__ => $item{ keyword },
5718             __BODY__ => $item{ string },
5719 0           }, 'literal_block'
5720             };
5721 0 0         unless (defined $_tok)
5722             {
5723 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
5724             if defined $::RD_TRACE;
5725 0           last;
5726             }
5727 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5728             . $_tok . q{])},
5729             Parse::RecDescent::_tracefirst($text))
5730             if defined $::RD_TRACE;
5731 0           push @item, $_tok;
5732 0           $item{__ACTION1__}=$_tok;
5733            
5734              
5735              
5736 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['literal' keyword string SEMI_COLON]<<},
5737             Parse::RecDescent::_tracefirst($text),
5738             q{literal_block},
5739             $tracelevel)
5740             if defined $::RD_TRACE;
5741 0           $_matched = 1;
5742 0           last;
5743             }
5744              
5745              
5746 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
5747             {
5748            
5749              
5750 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
5751 0 0         Parse::RecDescent::_trace(q{<>},
5752             Parse::RecDescent::_tracefirst($_[1]),
5753             q{literal_block},
5754             $tracelevel)
5755             if defined $::RD_TRACE;
5756 0           return undef;
5757             }
5758 0 0 0       if (!defined($return) && defined($score))
5759             {
5760 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5761             q{literal_block},
5762             $tracelevel)
5763             if defined $::RD_TRACE;
5764 0           $return = $score_return;
5765             }
5766 0           splice @{$thisparser->{errors}}, $err_at;
  0            
5767 0 0         $return = $item[$#item] unless defined $return;
5768 0 0         if (defined $::RD_TRACE)
5769             {
5770 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5771             $return . q{])}, "",
5772             q{literal_block},
5773             $tracelevel);
5774 0           Parse::RecDescent::_trace(q{(consumed: [} .
5775             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5776             Parse::RecDescent::_tracefirst($text),
5777             , q{literal_block},
5778             $tracelevel)
5779             }
5780 0           $_[1] = $text;
5781 0           return $return;
5782             }
5783              
5784             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5785             sub Parse::RecDescent::Bigtop::Grammar::field_statement
5786             {
5787 0     0     my $thisparser = $_[0];
5788 41     41   301 use vars q{$tracelevel};
  41         78  
  41         17167  
5789 0   0       local $tracelevel = ($tracelevel||0)+1;
5790 0           $ERRORS = 0;
5791 0           my $thisrule = $thisparser->{"rules"}{"field_statement"};
5792            
5793 0 0         Parse::RecDescent::_trace(q{Trying rule: [field_statement]},
5794             Parse::RecDescent::_tracefirst($_[1]),
5795             q{field_statement},
5796             $tracelevel)
5797             if defined $::RD_TRACE;
5798              
5799            
5800 0           my $err_at = @{$thisparser->{errors}};
  0            
5801              
5802 0           my $score;
5803             my $score_return;
5804 0           my $_tok;
5805 0           my $return = undef;
5806 0           my $_matched=0;
5807 0           my $commit=0;
5808 0           my @item = ();
5809 0           my %item = ();
5810 0   0       my $repeating = defined($_[2]) && $_[2];
5811 0   0       my $_noactions = defined($_[3]) && $_[3];
5812 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
5813 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
5814 0           my $text;
5815 0           my $lastsep="";
5816 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5817 0           $expectation->at($_[1]);
5818            
5819 0           my $thisline;
5820 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5821              
5822            
5823              
5824 0   0       while (!$_matched && !$commit)
5825             {
5826            
5827 0 0         Parse::RecDescent::_trace(q{Trying production: [keyword field_statement_def SEMI_COLON]},
5828             Parse::RecDescent::_tracefirst($_[1]),
5829             q{field_statement},
5830             $tracelevel)
5831             if defined $::RD_TRACE;
5832 0           my $thisprod = $thisrule->{"prods"}[0];
5833 0           $text = $_[1];
5834 0           my $_savetext;
5835 0           @item = (q{field_statement});
5836 0           %item = (__RULE__ => q{field_statement});
5837 0           my $repcount = 0;
5838              
5839              
5840 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
5841             Parse::RecDescent::_tracefirst($text),
5842             q{field_statement},
5843             $tracelevel)
5844             if defined $::RD_TRACE;
5845 41     41   232 if (1) { no strict qw{refs};
  41         101  
  41         9550  
  0            
5846 0           $expectation->is(q{})->at($text);
5847 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return ['field'] })))
  0            
5848             {
5849            
5850 0 0         Parse::RecDescent::_trace(q{<>},
5851             Parse::RecDescent::_tracefirst($text),
5852             q{field_statement},
5853             $tracelevel)
5854             if defined $::RD_TRACE;
5855 0           $expectation->failed();
5856 0           last;
5857             }
5858 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
5859             . $_tok . q{]},
5860            
5861             Parse::RecDescent::_tracefirst($text),
5862             q{field_statement},
5863             $tracelevel)
5864             if defined $::RD_TRACE;
5865 0           $item{q{keyword}} = $_tok;
5866 0           push @item, $_tok;
5867            
5868             }
5869              
5870 0 0         Parse::RecDescent::_trace(q{Trying subrule: [field_statement_def]},
5871             Parse::RecDescent::_tracefirst($text),
5872             q{field_statement},
5873             $tracelevel)
5874             if defined $::RD_TRACE;
5875 41     41   229 if (1) { no strict qw{refs};
  41         87  
  41         9653  
  0            
5876 0           $expectation->is(q{field_statement_def})->at($text);
5877 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::field_statement_def($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
5878             {
5879            
5880 0 0         Parse::RecDescent::_trace(q{<>},
5881             Parse::RecDescent::_tracefirst($text),
5882             q{field_statement},
5883             $tracelevel)
5884             if defined $::RD_TRACE;
5885 0           $expectation->failed();
5886 0           last;
5887             }
5888 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [field_statement_def]<< (return value: [}
5889             . $_tok . q{]},
5890            
5891             Parse::RecDescent::_tracefirst($text),
5892             q{field_statement},
5893             $tracelevel)
5894             if defined $::RD_TRACE;
5895 0           $item{q{field_statement_def}} = $_tok;
5896 0           push @item, $_tok;
5897            
5898             }
5899              
5900 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
5901             Parse::RecDescent::_tracefirst($text),
5902             q{field_statement},
5903             $tracelevel)
5904             if defined $::RD_TRACE;
5905 41     41   268 if (1) { no strict qw{refs};
  41         102  
  41         35542  
  0            
5906 0           $expectation->is(q{SEMI_COLON})->at($text);
5907 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
5908             {
5909            
5910 0 0         Parse::RecDescent::_trace(q{<>},
5911             Parse::RecDescent::_tracefirst($text),
5912             q{field_statement},
5913             $tracelevel)
5914             if defined $::RD_TRACE;
5915 0           $expectation->failed();
5916 0           last;
5917             }
5918 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
5919             . $_tok . q{]},
5920            
5921             Parse::RecDescent::_tracefirst($text),
5922             q{field_statement},
5923             $tracelevel)
5924             if defined $::RD_TRACE;
5925 0           $item{q{SEMI_COLON}} = $_tok;
5926 0           push @item, $_tok;
5927            
5928             }
5929              
5930 0 0         Parse::RecDescent::_trace(q{Trying action},
5931             Parse::RecDescent::_tracefirst($text),
5932             q{field_statement},
5933             $tracelevel)
5934             if defined $::RD_TRACE;
5935            
5936              
5937 0 0         $_tok = ($_noactions) ? 0 : do {
5938 0           bless {
5939             __KEYWORD__ => $item[1], __DEF__ => $item[2]
5940             }, 'field_statement'
5941             };
5942 0 0         unless (defined $_tok)
5943             {
5944 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
5945             if defined $::RD_TRACE;
5946 0           last;
5947             }
5948 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
5949             . $_tok . q{])},
5950             Parse::RecDescent::_tracefirst($text))
5951             if defined $::RD_TRACE;
5952 0           push @item, $_tok;
5953 0           $item{__ACTION1__}=$_tok;
5954            
5955              
5956              
5957 0 0         Parse::RecDescent::_trace(q{>>Matched production: [keyword field_statement_def SEMI_COLON]<<},
5958             Parse::RecDescent::_tracefirst($text),
5959             q{field_statement},
5960             $tracelevel)
5961             if defined $::RD_TRACE;
5962 0           $_matched = 1;
5963 0           last;
5964             }
5965              
5966              
5967 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
5968             {
5969            
5970              
5971 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
5972 0 0         Parse::RecDescent::_trace(q{<>},
5973             Parse::RecDescent::_tracefirst($_[1]),
5974             q{field_statement},
5975             $tracelevel)
5976             if defined $::RD_TRACE;
5977 0           return undef;
5978             }
5979 0 0 0       if (!defined($return) && defined($score))
5980             {
5981 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5982             q{field_statement},
5983             $tracelevel)
5984             if defined $::RD_TRACE;
5985 0           $return = $score_return;
5986             }
5987 0           splice @{$thisparser->{errors}}, $err_at;
  0            
5988 0 0         $return = $item[$#item] unless defined $return;
5989 0 0         if (defined $::RD_TRACE)
5990             {
5991 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5992             $return . q{])}, "",
5993             q{field_statement},
5994             $tracelevel);
5995 0           Parse::RecDescent::_trace(q{(consumed: [} .
5996             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5997             Parse::RecDescent::_tracefirst($text),
5998             , q{field_statement},
5999             $tracelevel)
6000             }
6001 0           $_[1] = $text;
6002 0           return $return;
6003             }
6004              
6005             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6006             sub Parse::RecDescent::Bigtop::Grammar::method_statement
6007             {
6008 0     0     my $thisparser = $_[0];
6009 41     41   265 use vars q{$tracelevel};
  41         88  
  41         25594  
6010 0   0       local $tracelevel = ($tracelevel||0)+1;
6011 0           $ERRORS = 0;
6012 0           my $thisrule = $thisparser->{"rules"}{"method_statement"};
6013            
6014 0 0         Parse::RecDescent::_trace(q{Trying rule: [method_statement]},
6015             Parse::RecDescent::_tracefirst($_[1]),
6016             q{method_statement},
6017             $tracelevel)
6018             if defined $::RD_TRACE;
6019              
6020            
6021 0           my $err_at = @{$thisparser->{errors}};
  0            
6022              
6023 0           my $score;
6024             my $score_return;
6025 0           my $_tok;
6026 0           my $return = undef;
6027 0           my $_matched=0;
6028 0           my $commit=0;
6029 0           my @item = ();
6030 0           my %item = ();
6031 0   0       my $repeating = defined($_[2]) && $_[2];
6032 0   0       my $_noactions = defined($_[3]) && $_[3];
6033 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
6034 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6035 0           my $text;
6036 0           my $lastsep="";
6037 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6038 0           $expectation->at($_[1]);
6039            
6040 0           my $thisline;
6041 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6042              
6043            
6044              
6045 0   0       while (!$_matched && !$commit)
6046             {
6047            
6048 0 0         Parse::RecDescent::_trace(q{Trying production: [keyword arg_list SEMI_COLON]},
6049             Parse::RecDescent::_tracefirst($_[1]),
6050             q{method_statement},
6051             $tracelevel)
6052             if defined $::RD_TRACE;
6053 0           my $thisprod = $thisrule->{"prods"}[0];
6054 0           $text = $_[1];
6055 0           my $_savetext;
6056 0           @item = (q{method_statement});
6057 0           %item = (__RULE__ => q{method_statement});
6058 0           my $repcount = 0;
6059              
6060              
6061 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
6062             Parse::RecDescent::_tracefirst($text),
6063             q{method_statement},
6064             $tracelevel)
6065             if defined $::RD_TRACE;
6066 41     41   238 if (1) { no strict qw{refs};
  41         85  
  41         8310  
  0            
6067 0           $expectation->is(q{})->at($text);
6068 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return ['method'] })))
  0            
6069             {
6070            
6071 0 0         Parse::RecDescent::_trace(q{<>},
6072             Parse::RecDescent::_tracefirst($text),
6073             q{method_statement},
6074             $tracelevel)
6075             if defined $::RD_TRACE;
6076 0           $expectation->failed();
6077 0           last;
6078             }
6079 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
6080             . $_tok . q{]},
6081            
6082             Parse::RecDescent::_tracefirst($text),
6083             q{method_statement},
6084             $tracelevel)
6085             if defined $::RD_TRACE;
6086 0           $item{q{keyword}} = $_tok;
6087 0           push @item, $_tok;
6088            
6089             }
6090              
6091 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_list]},
6092             Parse::RecDescent::_tracefirst($text),
6093             q{method_statement},
6094             $tracelevel)
6095             if defined $::RD_TRACE;
6096 41     41   347 if (1) { no strict qw{refs};
  41         127  
  41         9600  
  0            
6097 0           $expectation->is(q{arg_list})->at($text);
6098 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
6099             {
6100            
6101 0 0         Parse::RecDescent::_trace(q{<>},
6102             Parse::RecDescent::_tracefirst($text),
6103             q{method_statement},
6104             $tracelevel)
6105             if defined $::RD_TRACE;
6106 0           $expectation->failed();
6107 0           last;
6108             }
6109 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_list]<< (return value: [}
6110             . $_tok . q{]},
6111            
6112             Parse::RecDescent::_tracefirst($text),
6113             q{method_statement},
6114             $tracelevel)
6115             if defined $::RD_TRACE;
6116 0           $item{q{arg_list}} = $_tok;
6117 0           push @item, $_tok;
6118            
6119             }
6120              
6121 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
6122             Parse::RecDescent::_tracefirst($text),
6123             q{method_statement},
6124             $tracelevel)
6125             if defined $::RD_TRACE;
6126 41     41   238 if (1) { no strict qw{refs};
  41         76  
  41         28512  
  0            
6127 0           $expectation->is(q{SEMI_COLON})->at($text);
6128 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
6129             {
6130            
6131 0 0         Parse::RecDescent::_trace(q{<>},
6132             Parse::RecDescent::_tracefirst($text),
6133             q{method_statement},
6134             $tracelevel)
6135             if defined $::RD_TRACE;
6136 0           $expectation->failed();
6137 0           last;
6138             }
6139 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
6140             . $_tok . q{]},
6141            
6142             Parse::RecDescent::_tracefirst($text),
6143             q{method_statement},
6144             $tracelevel)
6145             if defined $::RD_TRACE;
6146 0           $item{q{SEMI_COLON}} = $_tok;
6147 0           push @item, $_tok;
6148            
6149             }
6150              
6151 0 0         Parse::RecDescent::_trace(q{Trying action},
6152             Parse::RecDescent::_tracefirst($text),
6153             q{method_statement},
6154             $tracelevel)
6155             if defined $::RD_TRACE;
6156            
6157              
6158 0 0         $_tok = ($_noactions) ? 0 : do {
6159 0           bless {
6160             __KEYWORD__ => $item{keyword},
6161             __ARGS__ => $item{arg_list}
6162             }, 'method_statement'
6163             };
6164 0 0         unless (defined $_tok)
6165             {
6166 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
6167             if defined $::RD_TRACE;
6168 0           last;
6169             }
6170 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6171             . $_tok . q{])},
6172             Parse::RecDescent::_tracefirst($text))
6173             if defined $::RD_TRACE;
6174 0           push @item, $_tok;
6175 0           $item{__ACTION1__}=$_tok;
6176            
6177              
6178              
6179 0 0         Parse::RecDescent::_trace(q{>>Matched production: [keyword arg_list SEMI_COLON]<<},
6180             Parse::RecDescent::_tracefirst($text),
6181             q{method_statement},
6182             $tracelevel)
6183             if defined $::RD_TRACE;
6184 0           $_matched = 1;
6185 0           last;
6186             }
6187              
6188              
6189 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
6190             {
6191            
6192              
6193 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
6194 0 0         Parse::RecDescent::_trace(q{<>},
6195             Parse::RecDescent::_tracefirst($_[1]),
6196             q{method_statement},
6197             $tracelevel)
6198             if defined $::RD_TRACE;
6199 0           return undef;
6200             }
6201 0 0 0       if (!defined($return) && defined($score))
6202             {
6203 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6204             q{method_statement},
6205             $tracelevel)
6206             if defined $::RD_TRACE;
6207 0           $return = $score_return;
6208             }
6209 0           splice @{$thisparser->{errors}}, $err_at;
  0            
6210 0 0         $return = $item[$#item] unless defined $return;
6211 0 0         if (defined $::RD_TRACE)
6212             {
6213 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6214             $return . q{])}, "",
6215             q{method_statement},
6216             $tracelevel);
6217 0           Parse::RecDescent::_trace(q{(consumed: [} .
6218             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6219             Parse::RecDescent::_tracefirst($text),
6220             , q{method_statement},
6221             $tracelevel)
6222             }
6223 0           $_[1] = $text;
6224 0           return $return;
6225             }
6226              
6227             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6228             sub Parse::RecDescent::Bigtop::Grammar::controller_body
6229             {
6230 0     0     my $thisparser = $_[0];
6231 41     41   239 use vars q{$tracelevel};
  41         89  
  41         52220  
6232 0   0       local $tracelevel = ($tracelevel||0)+1;
6233 0           $ERRORS = 0;
6234 0           my $thisrule = $thisparser->{"rules"}{"controller_body"};
6235            
6236 0 0         Parse::RecDescent::_trace(q{Trying rule: [controller_body]},
6237             Parse::RecDescent::_tracefirst($_[1]),
6238             q{controller_body},
6239             $tracelevel)
6240             if defined $::RD_TRACE;
6241              
6242            
6243 0           my $err_at = @{$thisparser->{errors}};
  0            
6244              
6245 0           my $score;
6246             my $score_return;
6247 0           my $_tok;
6248 0           my $return = undef;
6249 0           my $_matched=0;
6250 0           my $commit=0;
6251 0           my @item = ();
6252 0           my %item = ();
6253 0   0       my $repeating = defined($_[2]) && $_[2];
6254 0   0       my $_noactions = defined($_[3]) && $_[3];
6255 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
6256 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6257 0           my $text;
6258 0           my $lastsep="";
6259 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6260 0           $expectation->at($_[1]);
6261            
6262 0           my $thisline;
6263 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6264              
6265            
6266              
6267 0   0       while (!$_matched && !$commit)
6268             {
6269            
6270 0 0         Parse::RecDescent::_trace(q{Trying production: [controller_statement]},
6271             Parse::RecDescent::_tracefirst($_[1]),
6272             q{controller_body},
6273             $tracelevel)
6274             if defined $::RD_TRACE;
6275 0           my $thisprod = $thisrule->{"prods"}[0];
6276 0           $text = $_[1];
6277 0           my $_savetext;
6278 0           @item = (q{controller_body});
6279 0           %item = (__RULE__ => q{controller_body});
6280 0           my $repcount = 0;
6281              
6282              
6283 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [controller_statement]},
6284             Parse::RecDescent::_tracefirst($text),
6285             q{controller_body},
6286             $tracelevel)
6287             if defined $::RD_TRACE;
6288 0           $expectation->is(q{})->at($text);
6289            
6290 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::controller_statement, 0, 100000000, $_noactions,$expectation,undef)))
6291             {
6292 0 0         Parse::RecDescent::_trace(q{<>},
6293             Parse::RecDescent::_tracefirst($text),
6294             q{controller_body},
6295             $tracelevel)
6296             if defined $::RD_TRACE;
6297 0           last;
6298             }
6299 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [controller_statement]<< (}
6300             . @$_tok . q{ times)},
6301            
6302             Parse::RecDescent::_tracefirst($text),
6303             q{controller_body},
6304             $tracelevel)
6305             if defined $::RD_TRACE;
6306 0           $item{q{controller_statement(s?)}} = $_tok;
6307 0           push @item, $_tok;
6308            
6309              
6310              
6311 0 0         Parse::RecDescent::_trace(q{Trying action},
6312             Parse::RecDescent::_tracefirst($text),
6313             q{controller_body},
6314             $tracelevel)
6315             if defined $::RD_TRACE;
6316            
6317              
6318 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
6319 0 0         unless (defined $_tok)
6320             {
6321 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
6322             if defined $::RD_TRACE;
6323 0           last;
6324             }
6325 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6326             . $_tok . q{])},
6327             Parse::RecDescent::_tracefirst($text))
6328             if defined $::RD_TRACE;
6329 0           push @item, $_tok;
6330            
6331            
6332              
6333              
6334 0 0         Parse::RecDescent::_trace(q{>>Matched production: [controller_statement]<<},
6335             Parse::RecDescent::_tracefirst($text),
6336             q{controller_body},
6337             $tracelevel)
6338             if defined $::RD_TRACE;
6339 0           $_matched = 1;
6340 0           last;
6341             }
6342              
6343              
6344 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
6345             {
6346            
6347              
6348 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
6349 0 0         Parse::RecDescent::_trace(q{<>},
6350             Parse::RecDescent::_tracefirst($_[1]),
6351             q{controller_body},
6352             $tracelevel)
6353             if defined $::RD_TRACE;
6354 0           return undef;
6355             }
6356 0 0 0       if (!defined($return) && defined($score))
6357             {
6358 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6359             q{controller_body},
6360             $tracelevel)
6361             if defined $::RD_TRACE;
6362 0           $return = $score_return;
6363             }
6364 0           splice @{$thisparser->{errors}}, $err_at;
  0            
6365 0 0         $return = $item[$#item] unless defined $return;
6366 0 0         if (defined $::RD_TRACE)
6367             {
6368 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6369             $return . q{])}, "",
6370             q{controller_body},
6371             $tracelevel);
6372 0           Parse::RecDescent::_trace(q{(consumed: [} .
6373             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6374             Parse::RecDescent::_tracefirst($text),
6375             , q{controller_body},
6376             $tracelevel)
6377             }
6378 0           $_[1] = $text;
6379 0           return $return;
6380             }
6381              
6382             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6383             sub Parse::RecDescent::Bigtop::Grammar::keyword
6384             {
6385 0     0     my $thisparser = $_[0];
6386 41     41   295 use vars q{$tracelevel};
  41         101  
  41         18024  
6387 0   0       local $tracelevel = ($tracelevel||0)+1;
6388 0           $ERRORS = 0;
6389 0           my $thisrule = $thisparser->{"rules"}{"keyword"};
6390            
6391 0 0         Parse::RecDescent::_trace(q{Trying rule: [keyword]},
6392             Parse::RecDescent::_tracefirst($_[1]),
6393             q{keyword},
6394             $tracelevel)
6395             if defined $::RD_TRACE;
6396              
6397            
6398 0           my $err_at = @{$thisparser->{errors}};
  0            
6399              
6400 0           my $score;
6401             my $score_return;
6402 0           my $_tok;
6403 0           my $return = undef;
6404 0           my $_matched=0;
6405 0           my $commit=0;
6406 0           my @item = ();
6407 0           my %item = ();
6408 0   0       my $repeating = defined($_[2]) && $_[2];
6409 0   0       my $_noactions = defined($_[3]) && $_[3];
6410 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
6411 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6412 0           my $text;
6413 0           my $lastsep="";
6414 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6415 0           $expectation->at($_[1]);
6416            
6417 0           my $thisline;
6418 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6419              
6420            
6421              
6422 0   0       while (!$_matched && !$commit)
6423             {
6424            
6425 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT]},
6426             Parse::RecDescent::_tracefirst($_[1]),
6427             q{keyword},
6428             $tracelevel)
6429             if defined $::RD_TRACE;
6430 0           my $thisprod = $thisrule->{"prods"}[0];
6431 0           $text = $_[1];
6432 0           my $_savetext;
6433 0           @item = (q{keyword});
6434 0           %item = (__RULE__ => q{keyword});
6435 0           my $repcount = 0;
6436              
6437              
6438 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
6439             Parse::RecDescent::_tracefirst($text),
6440             q{keyword},
6441             $tracelevel)
6442             if defined $::RD_TRACE;
6443 41     41   283 if (1) { no strict qw{refs};
  41         95  
  41         40019  
  0            
6444 0           $expectation->is(q{})->at($text);
6445 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
6446             {
6447            
6448 0 0         Parse::RecDescent::_trace(q{<>},
6449             Parse::RecDescent::_tracefirst($text),
6450             q{keyword},
6451             $tracelevel)
6452             if defined $::RD_TRACE;
6453 0           $expectation->failed();
6454 0           last;
6455             }
6456 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
6457             . $_tok . q{]},
6458            
6459             Parse::RecDescent::_tracefirst($text),
6460             q{keyword},
6461             $tracelevel)
6462             if defined $::RD_TRACE;
6463 0           $item{q{IDENT}} = $_tok;
6464 0           push @item, $_tok;
6465            
6466             }
6467              
6468 0 0         Parse::RecDescent::_trace(q{Trying action},
6469             Parse::RecDescent::_tracefirst($text),
6470             q{keyword},
6471             $tracelevel)
6472             if defined $::RD_TRACE;
6473            
6474              
6475 0 0         $_tok = ($_noactions) ? 0 : do {
6476 0 0         if ( Bigtop::Parser->is_valid_keyword( $arg[0], $item[1] ) ) {
6477 0           $return = $item[1];
6478             }
6479             else {
6480 0           my @expected = Bigtop::Parser->get_valid_keywords( $arg[0] );
6481 0           Bigtop::Parser->fatal_keyword_error(
6482             {
6483             bad_keyword => $item[1],
6484             diag_text => $text,
6485             input_linenum => $thisline,
6486             expected => \@expected,
6487             type => $arg[0],
6488             }
6489             );
6490             }
6491             };
6492 0 0         unless (defined $_tok)
6493             {
6494 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
6495             if defined $::RD_TRACE;
6496 0           last;
6497             }
6498 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6499             . $_tok . q{])},
6500             Parse::RecDescent::_tracefirst($text))
6501             if defined $::RD_TRACE;
6502 0           push @item, $_tok;
6503 0           $item{__ACTION1__}=$_tok;
6504            
6505              
6506              
6507 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT]<<},
6508             Parse::RecDescent::_tracefirst($text),
6509             q{keyword},
6510             $tracelevel)
6511             if defined $::RD_TRACE;
6512 0           $_matched = 1;
6513 0           last;
6514             }
6515              
6516              
6517 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
6518             {
6519            
6520              
6521 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
6522 0 0         Parse::RecDescent::_trace(q{<>},
6523             Parse::RecDescent::_tracefirst($_[1]),
6524             q{keyword},
6525             $tracelevel)
6526             if defined $::RD_TRACE;
6527 0           return undef;
6528             }
6529 0 0 0       if (!defined($return) && defined($score))
6530             {
6531 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6532             q{keyword},
6533             $tracelevel)
6534             if defined $::RD_TRACE;
6535 0           $return = $score_return;
6536             }
6537 0           splice @{$thisparser->{errors}}, $err_at;
  0            
6538 0 0         $return = $item[$#item] unless defined $return;
6539 0 0         if (defined $::RD_TRACE)
6540             {
6541 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6542             $return . q{])}, "",
6543             q{keyword},
6544             $tracelevel);
6545 0           Parse::RecDescent::_trace(q{(consumed: [} .
6546             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6547             Parse::RecDescent::_tracefirst($text),
6548             , q{keyword},
6549             $tracelevel)
6550             }
6551 0           $_[1] = $text;
6552 0           return $return;
6553             }
6554              
6555             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6556             sub Parse::RecDescent::Bigtop::Grammar::SEMI_COLON
6557             {
6558 0     0     my $thisparser = $_[0];
6559 41     41   269 use vars q{$tracelevel};
  41         93  
  41         64828  
6560 0   0       local $tracelevel = ($tracelevel||0)+1;
6561 0           $ERRORS = 0;
6562 0           my $thisrule = $thisparser->{"rules"}{"SEMI_COLON"};
6563            
6564 0 0         Parse::RecDescent::_trace(q{Trying rule: [SEMI_COLON]},
6565             Parse::RecDescent::_tracefirst($_[1]),
6566             q{SEMI_COLON},
6567             $tracelevel)
6568             if defined $::RD_TRACE;
6569              
6570            
6571 0           my $err_at = @{$thisparser->{errors}};
  0            
6572              
6573 0           my $score;
6574             my $score_return;
6575 0           my $_tok;
6576 0           my $return = undef;
6577 0           my $_matched=0;
6578 0           my $commit=0;
6579 0           my @item = ();
6580 0           my %item = ();
6581 0   0       my $repeating = defined($_[2]) && $_[2];
6582 0   0       my $_noactions = defined($_[3]) && $_[3];
6583 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
6584 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6585 0           my $text;
6586 0           my $lastsep="";
6587 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6588 0           $expectation->at($_[1]);
6589            
6590 0           my $thisline;
6591 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6592              
6593            
6594              
6595 0   0       while (!$_matched && !$commit)
6596             {
6597            
6598 0 0         Parse::RecDescent::_trace(q{Trying production: [';']},
6599             Parse::RecDescent::_tracefirst($_[1]),
6600             q{SEMI_COLON},
6601             $tracelevel)
6602             if defined $::RD_TRACE;
6603 0           my $thisprod = $thisrule->{"prods"}[0];
6604 0           $text = $_[1];
6605 0           my $_savetext;
6606 0           @item = (q{SEMI_COLON});
6607 0           %item = (__RULE__ => q{SEMI_COLON});
6608 0           my $repcount = 0;
6609              
6610              
6611 0 0         Parse::RecDescent::_trace(q{Trying terminal: [';']},
6612             Parse::RecDescent::_tracefirst($text),
6613             q{SEMI_COLON},
6614             $tracelevel)
6615             if defined $::RD_TRACE;
6616 0           $lastsep = "";
6617 0           $expectation->is(q{})->at($text);
6618            
6619              
6620 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\;//)
  0 0          
6621             {
6622            
6623 0           $expectation->failed();
6624 0 0         Parse::RecDescent::_trace(qq{<>},
6625             Parse::RecDescent::_tracefirst($text))
6626             if defined $::RD_TRACE;
6627 0           last;
6628             }
6629 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6630             . $& . q{])},
6631             Parse::RecDescent::_tracefirst($text))
6632             if defined $::RD_TRACE;
6633 0           push @item, $item{__STRING1__}=$&;
6634            
6635              
6636 0 0         Parse::RecDescent::_trace(q{Trying action},
6637             Parse::RecDescent::_tracefirst($text),
6638             q{SEMI_COLON},
6639             $tracelevel)
6640             if defined $::RD_TRACE;
6641            
6642              
6643 0 0         $_tok = ($_noactions) ? 0 : do {bless {__VALUE__=>$item[1]}, $item[0]};
  0            
6644 0 0         unless (defined $_tok)
6645             {
6646 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
6647             if defined $::RD_TRACE;
6648 0           last;
6649             }
6650 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6651             . $_tok . q{])},
6652             Parse::RecDescent::_tracefirst($text))
6653             if defined $::RD_TRACE;
6654 0           push @item, $_tok;
6655            
6656            
6657              
6658              
6659 0 0         Parse::RecDescent::_trace(q{>>Matched production: [';']<<},
6660             Parse::RecDescent::_tracefirst($text),
6661             q{SEMI_COLON},
6662             $tracelevel)
6663             if defined $::RD_TRACE;
6664 0           $_matched = 1;
6665 0           last;
6666             }
6667              
6668              
6669 0   0       while (!$_matched && !$commit)
6670             {
6671            
6672 0 0         Parse::RecDescent::_trace(q{Trying production: []},
6673             Parse::RecDescent::_tracefirst($_[1]),
6674             q{SEMI_COLON},
6675             $tracelevel)
6676             if defined $::RD_TRACE;
6677 0           my $thisprod = $thisrule->{"prods"}[1];
6678 0           $text = $_[1];
6679 0           my $_savetext;
6680 0           @item = (q{SEMI_COLON});
6681 0           %item = (__RULE__ => q{SEMI_COLON});
6682 0           my $repcount = 0;
6683              
6684              
6685 0 0         Parse::RecDescent::_trace(q{Trying action},
6686             Parse::RecDescent::_tracefirst($text),
6687             q{SEMI_COLON},
6688             $tracelevel)
6689             if defined $::RD_TRACE;
6690            
6691              
6692 0 0         $_tok = ($_noactions) ? 0 : do {
6693 0           my $message = "missing semi-colon";
6694 0 0         if ( $backtick_warning ) {
6695 0           $message .= " ($backtick_warning)";
6696 0           $backtick_warning = '';
6697             }
6698             Bigtop::Parser->fatal_error_two_lines(
6699 0           $message, $text, $thisline
6700             );
6701             };
6702 0 0         unless (defined $_tok)
6703             {
6704 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
6705             if defined $::RD_TRACE;
6706 0           last;
6707             }
6708 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6709             . $_tok . q{])},
6710             Parse::RecDescent::_tracefirst($text))
6711             if defined $::RD_TRACE;
6712 0           push @item, $_tok;
6713 0           $item{__ACTION1__}=$_tok;
6714            
6715              
6716              
6717 0 0         Parse::RecDescent::_trace(q{>>Matched production: []<<},
6718             Parse::RecDescent::_tracefirst($text),
6719             q{SEMI_COLON},
6720             $tracelevel)
6721             if defined $::RD_TRACE;
6722 0           $_matched = 1;
6723 0           last;
6724             }
6725              
6726              
6727 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
6728             {
6729            
6730              
6731 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
6732 0 0         Parse::RecDescent::_trace(q{<>},
6733             Parse::RecDescent::_tracefirst($_[1]),
6734             q{SEMI_COLON},
6735             $tracelevel)
6736             if defined $::RD_TRACE;
6737 0           return undef;
6738             }
6739 0 0 0       if (!defined($return) && defined($score))
6740             {
6741 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6742             q{SEMI_COLON},
6743             $tracelevel)
6744             if defined $::RD_TRACE;
6745 0           $return = $score_return;
6746             }
6747 0           splice @{$thisparser->{errors}}, $err_at;
  0            
6748 0 0         $return = $item[$#item] unless defined $return;
6749 0 0         if (defined $::RD_TRACE)
6750             {
6751 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6752             $return . q{])}, "",
6753             q{SEMI_COLON},
6754             $tracelevel);
6755 0           Parse::RecDescent::_trace(q{(consumed: [} .
6756             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6757             Parse::RecDescent::_tracefirst($text),
6758             , q{SEMI_COLON},
6759             $tracelevel)
6760             }
6761 0           $_[1] = $text;
6762 0           return $return;
6763             }
6764              
6765             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6766             sub Parse::RecDescent::Bigtop::Grammar::app_config_block
6767             {
6768 0     0     my $thisparser = $_[0];
6769 41     41   297 use vars q{$tracelevel};
  41         82  
  41         16541  
6770 0   0       local $tracelevel = ($tracelevel||0)+1;
6771 0           $ERRORS = 0;
6772 0           my $thisrule = $thisparser->{"rules"}{"app_config_block"};
6773            
6774 0 0         Parse::RecDescent::_trace(q{Trying rule: [app_config_block]},
6775             Parse::RecDescent::_tracefirst($_[1]),
6776             q{app_config_block},
6777             $tracelevel)
6778             if defined $::RD_TRACE;
6779              
6780            
6781 0           my $err_at = @{$thisparser->{errors}};
  0            
6782              
6783 0           my $score;
6784             my $score_return;
6785 0           my $_tok;
6786 0           my $return = undef;
6787 0           my $_matched=0;
6788 0           my $commit=0;
6789 0           my @item = ();
6790 0           my %item = ();
6791 0   0       my $repeating = defined($_[2]) && $_[2];
6792 0   0       my $_noactions = defined($_[3]) && $_[3];
6793 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
6794 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
6795 0           my $text;
6796 0           my $lastsep="";
6797 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6798 0           $expectation->at($_[1]);
6799            
6800 0           my $thisline;
6801 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6802              
6803            
6804              
6805 0   0       while (!$_matched && !$commit)
6806             {
6807            
6808 0 0         Parse::RecDescent::_trace(q{Trying production: [CONFIG IDENT '\{' app_config_statement '\}']},
6809             Parse::RecDescent::_tracefirst($_[1]),
6810             q{app_config_block},
6811             $tracelevel)
6812             if defined $::RD_TRACE;
6813 0           my $thisprod = $thisrule->{"prods"}[0];
6814 0           $text = $_[1];
6815 0           my $_savetext;
6816 0           @item = (q{app_config_block});
6817 0           %item = (__RULE__ => q{app_config_block});
6818 0           my $repcount = 0;
6819              
6820              
6821 0 0         Parse::RecDescent::_trace(q{Trying subrule: [CONFIG]},
6822             Parse::RecDescent::_tracefirst($text),
6823             q{app_config_block},
6824             $tracelevel)
6825             if defined $::RD_TRACE;
6826 41     41   244 if (1) { no strict qw{refs};
  41         88  
  41         58293  
  0            
6827 0           $expectation->is(q{})->at($text);
6828 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::CONFIG($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
6829             {
6830            
6831 0 0         Parse::RecDescent::_trace(q{<>},
6832             Parse::RecDescent::_tracefirst($text),
6833             q{app_config_block},
6834             $tracelevel)
6835             if defined $::RD_TRACE;
6836 0           $expectation->failed();
6837 0           last;
6838             }
6839 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [CONFIG]<< (return value: [}
6840             . $_tok . q{]},
6841            
6842             Parse::RecDescent::_tracefirst($text),
6843             q{app_config_block},
6844             $tracelevel)
6845             if defined $::RD_TRACE;
6846 0           $item{q{CONFIG}} = $_tok;
6847 0           push @item, $_tok;
6848            
6849             }
6850              
6851 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [IDENT]},
6852             Parse::RecDescent::_tracefirst($text),
6853             q{app_config_block},
6854             $tracelevel)
6855             if defined $::RD_TRACE;
6856 0           $expectation->is(q{IDENT})->at($text);
6857            
6858 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::IDENT, 0, 1, $_noactions,$expectation,undef)))
6859             {
6860 0 0         Parse::RecDescent::_trace(q{<>},
6861             Parse::RecDescent::_tracefirst($text),
6862             q{app_config_block},
6863             $tracelevel)
6864             if defined $::RD_TRACE;
6865 0           last;
6866             }
6867 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [IDENT]<< (}
6868             . @$_tok . q{ times)},
6869            
6870             Parse::RecDescent::_tracefirst($text),
6871             q{app_config_block},
6872             $tracelevel)
6873             if defined $::RD_TRACE;
6874 0           $item{q{IDENT(?)}} = $_tok;
6875 0           push @item, $_tok;
6876            
6877              
6878              
6879 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
6880             Parse::RecDescent::_tracefirst($text),
6881             q{app_config_block},
6882             $tracelevel)
6883             if defined $::RD_TRACE;
6884 0           $lastsep = "";
6885 0           $expectation->is(q{'\{'})->at($text);
6886            
6887              
6888 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
6889             {
6890            
6891 0           $expectation->failed();
6892 0 0         Parse::RecDescent::_trace(qq{<>},
6893             Parse::RecDescent::_tracefirst($text))
6894             if defined $::RD_TRACE;
6895 0           last;
6896             }
6897 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6898             . $& . q{])},
6899             Parse::RecDescent::_tracefirst($text))
6900             if defined $::RD_TRACE;
6901 0           push @item, $item{__STRING1__}=$&;
6902            
6903              
6904 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [app_config_statement]},
6905             Parse::RecDescent::_tracefirst($text),
6906             q{app_config_block},
6907             $tracelevel)
6908             if defined $::RD_TRACE;
6909 0           $expectation->is(q{app_config_statement})->at($text);
6910            
6911 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::app_config_statement, 0, 100000000, $_noactions,$expectation,undef)))
6912             {
6913 0 0         Parse::RecDescent::_trace(q{<>},
6914             Parse::RecDescent::_tracefirst($text),
6915             q{app_config_block},
6916             $tracelevel)
6917             if defined $::RD_TRACE;
6918 0           last;
6919             }
6920 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [app_config_statement]<< (}
6921             . @$_tok . q{ times)},
6922            
6923             Parse::RecDescent::_tracefirst($text),
6924             q{app_config_block},
6925             $tracelevel)
6926             if defined $::RD_TRACE;
6927 0           $item{q{app_config_statement(s?)}} = $_tok;
6928 0           push @item, $_tok;
6929            
6930              
6931              
6932 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
6933             Parse::RecDescent::_tracefirst($text),
6934             q{app_config_block},
6935             $tracelevel)
6936             if defined $::RD_TRACE;
6937 0           $lastsep = "";
6938 0           $expectation->is(q{'\}'})->at($text);
6939            
6940              
6941 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
6942             {
6943            
6944 0           $expectation->failed();
6945 0 0         Parse::RecDescent::_trace(qq{<>},
6946             Parse::RecDescent::_tracefirst($text))
6947             if defined $::RD_TRACE;
6948 0           last;
6949             }
6950 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6951             . $& . q{])},
6952             Parse::RecDescent::_tracefirst($text))
6953             if defined $::RD_TRACE;
6954 0           push @item, $item{__STRING2__}=$&;
6955            
6956              
6957 0 0         Parse::RecDescent::_trace(q{Trying action},
6958             Parse::RecDescent::_tracefirst($text),
6959             q{app_config_block},
6960             $tracelevel)
6961             if defined $::RD_TRACE;
6962            
6963              
6964 0 0         $_tok = ($_noactions) ? 0 : do {
6965 0           bless {
6966             __IDENT__ => Bigtop::Parser->get_ident(),
6967             __BODY__ => $item{'app_config_statement(s?)'},
6968             __TYPE__ => $item{'IDENT(?)'}[0],
6969             }, 'app_config_block'
6970             };
6971 0 0         unless (defined $_tok)
6972             {
6973 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
6974             if defined $::RD_TRACE;
6975 0           last;
6976             }
6977 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
6978             . $_tok . q{])},
6979             Parse::RecDescent::_tracefirst($text))
6980             if defined $::RD_TRACE;
6981 0           push @item, $_tok;
6982 0           $item{__ACTION1__}=$_tok;
6983            
6984              
6985              
6986 0 0         Parse::RecDescent::_trace(q{>>Matched production: [CONFIG IDENT '\{' app_config_statement '\}']<<},
6987             Parse::RecDescent::_tracefirst($text),
6988             q{app_config_block},
6989             $tracelevel)
6990             if defined $::RD_TRACE;
6991 0           $_matched = 1;
6992 0           last;
6993             }
6994              
6995              
6996 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
6997             {
6998            
6999              
7000 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
7001 0 0         Parse::RecDescent::_trace(q{<>},
7002             Parse::RecDescent::_tracefirst($_[1]),
7003             q{app_config_block},
7004             $tracelevel)
7005             if defined $::RD_TRACE;
7006 0           return undef;
7007             }
7008 0 0 0       if (!defined($return) && defined($score))
7009             {
7010 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7011             q{app_config_block},
7012             $tracelevel)
7013             if defined $::RD_TRACE;
7014 0           $return = $score_return;
7015             }
7016 0           splice @{$thisparser->{errors}}, $err_at;
  0            
7017 0 0         $return = $item[$#item] unless defined $return;
7018 0 0         if (defined $::RD_TRACE)
7019             {
7020 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7021             $return . q{])}, "",
7022             q{app_config_block},
7023             $tracelevel);
7024 0           Parse::RecDescent::_trace(q{(consumed: [} .
7025             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7026             Parse::RecDescent::_tracefirst($text),
7027             , q{app_config_block},
7028             $tracelevel)
7029             }
7030 0           $_[1] = $text;
7031 0           return $return;
7032             }
7033              
7034             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7035             sub Parse::RecDescent::Bigtop::Grammar::controller_block
7036             {
7037 0     0     my $thisparser = $_[0];
7038 41     41   304 use vars q{$tracelevel};
  41         75  
  41         50384  
7039 0   0       local $tracelevel = ($tracelevel||0)+1;
7040 0           $ERRORS = 0;
7041 0           my $thisrule = $thisparser->{"rules"}{"controller_block"};
7042            
7043 0 0         Parse::RecDescent::_trace(q{Trying rule: [controller_block]},
7044             Parse::RecDescent::_tracefirst($_[1]),
7045             q{controller_block},
7046             $tracelevel)
7047             if defined $::RD_TRACE;
7048              
7049            
7050 0           my $err_at = @{$thisparser->{errors}};
  0            
7051              
7052 0           my $score;
7053             my $score_return;
7054 0           my $_tok;
7055 0           my $return = undef;
7056 0           my $_matched=0;
7057 0           my $commit=0;
7058 0           my @item = ();
7059 0           my %item = ();
7060 0   0       my $repeating = defined($_[2]) && $_[2];
7061 0   0       my $_noactions = defined($_[3]) && $_[3];
7062 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
7063 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7064 0           my $text;
7065 0           my $lastsep="";
7066 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
7067 0           $expectation->at($_[1]);
7068            
7069 0           my $thisline;
7070 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7071              
7072            
7073              
7074 0   0       while (!$_matched && !$commit)
7075             {
7076            
7077 0 0         Parse::RecDescent::_trace(q{Trying production: ['controller' 'is' 'base_controller' '\{' controller_body '\}']},
7078             Parse::RecDescent::_tracefirst($_[1]),
7079             q{controller_block},
7080             $tracelevel)
7081             if defined $::RD_TRACE;
7082 0           my $thisprod = $thisrule->{"prods"}[0];
7083 0           $text = $_[1];
7084 0           my $_savetext;
7085 0           @item = (q{controller_block});
7086 0           %item = (__RULE__ => q{controller_block});
7087 0           my $repcount = 0;
7088              
7089              
7090 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['controller']},
7091             Parse::RecDescent::_tracefirst($text),
7092             q{controller_block},
7093             $tracelevel)
7094             if defined $::RD_TRACE;
7095 0           $lastsep = "";
7096 0           $expectation->is(q{})->at($text);
7097            
7098              
7099 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acontroller//)
  0 0          
7100             {
7101            
7102 0           $expectation->failed();
7103 0 0         Parse::RecDescent::_trace(qq{<>},
7104             Parse::RecDescent::_tracefirst($text))
7105             if defined $::RD_TRACE;
7106 0           last;
7107             }
7108 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7109             . $& . q{])},
7110             Parse::RecDescent::_tracefirst($text))
7111             if defined $::RD_TRACE;
7112 0           push @item, $item{__STRING1__}=$&;
7113            
7114              
7115 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['is']},
7116             Parse::RecDescent::_tracefirst($text),
7117             q{controller_block},
7118             $tracelevel)
7119             if defined $::RD_TRACE;
7120 0           $lastsep = "";
7121 0           $expectation->is(q{'is'})->at($text);
7122            
7123              
7124 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ais//)
  0 0          
7125             {
7126            
7127 0           $expectation->failed();
7128 0 0         Parse::RecDescent::_trace(qq{<>},
7129             Parse::RecDescent::_tracefirst($text))
7130             if defined $::RD_TRACE;
7131 0           last;
7132             }
7133 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7134             . $& . q{])},
7135             Parse::RecDescent::_tracefirst($text))
7136             if defined $::RD_TRACE;
7137 0           push @item, $item{__STRING2__}=$&;
7138            
7139              
7140 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['base_controller']},
7141             Parse::RecDescent::_tracefirst($text),
7142             q{controller_block},
7143             $tracelevel)
7144             if defined $::RD_TRACE;
7145 0           $lastsep = "";
7146 0           $expectation->is(q{'base_controller'})->at($text);
7147            
7148              
7149 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Abase_controller//)
  0 0          
7150             {
7151            
7152 0           $expectation->failed();
7153 0 0         Parse::RecDescent::_trace(qq{<>},
7154             Parse::RecDescent::_tracefirst($text))
7155             if defined $::RD_TRACE;
7156 0           last;
7157             }
7158 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7159             . $& . q{])},
7160             Parse::RecDescent::_tracefirst($text))
7161             if defined $::RD_TRACE;
7162 0           push @item, $item{__STRING3__}=$&;
7163            
7164              
7165 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
7166             Parse::RecDescent::_tracefirst($text),
7167             q{controller_block},
7168             $tracelevel)
7169             if defined $::RD_TRACE;
7170 0           $lastsep = "";
7171 0           $expectation->is(q{'\{'})->at($text);
7172            
7173              
7174 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
7175             {
7176            
7177 0           $expectation->failed();
7178 0 0         Parse::RecDescent::_trace(qq{<>},
7179             Parse::RecDescent::_tracefirst($text))
7180             if defined $::RD_TRACE;
7181 0           last;
7182             }
7183 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7184             . $& . q{])},
7185             Parse::RecDescent::_tracefirst($text))
7186             if defined $::RD_TRACE;
7187 0           push @item, $item{__STRING4__}=$&;
7188            
7189              
7190 0 0         Parse::RecDescent::_trace(q{Trying subrule: [controller_body]},
7191             Parse::RecDescent::_tracefirst($text),
7192             q{controller_block},
7193             $tracelevel)
7194             if defined $::RD_TRACE;
7195 41     41   295 if (1) { no strict qw{refs};
  41         95  
  41         37942  
  0            
7196 0           $expectation->is(q{controller_body})->at($text);
7197 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::controller_body($thisparser,$text,$repeating,$_noactions,sub { return [ 'base_controller' ] })))
  0            
7198             {
7199            
7200 0 0         Parse::RecDescent::_trace(q{<>},
7201             Parse::RecDescent::_tracefirst($text),
7202             q{controller_block},
7203             $tracelevel)
7204             if defined $::RD_TRACE;
7205 0           $expectation->failed();
7206 0           last;
7207             }
7208 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [controller_body]<< (return value: [}
7209             . $_tok . q{]},
7210            
7211             Parse::RecDescent::_tracefirst($text),
7212             q{controller_block},
7213             $tracelevel)
7214             if defined $::RD_TRACE;
7215 0           $item{q{controller_body}} = $_tok;
7216 0           push @item, $_tok;
7217            
7218             }
7219              
7220 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
7221             Parse::RecDescent::_tracefirst($text),
7222             q{controller_block},
7223             $tracelevel)
7224             if defined $::RD_TRACE;
7225 0           $lastsep = "";
7226 0           $expectation->is(q{'\}'})->at($text);
7227            
7228              
7229 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
7230             {
7231            
7232 0           $expectation->failed();
7233 0 0         Parse::RecDescent::_trace(qq{<>},
7234             Parse::RecDescent::_tracefirst($text))
7235             if defined $::RD_TRACE;
7236 0           last;
7237             }
7238 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7239             . $& . q{])},
7240             Parse::RecDescent::_tracefirst($text))
7241             if defined $::RD_TRACE;
7242 0           push @item, $item{__STRING5__}=$&;
7243            
7244              
7245 0 0         Parse::RecDescent::_trace(q{Trying action},
7246             Parse::RecDescent::_tracefirst($text),
7247             q{controller_block},
7248             $tracelevel)
7249             if defined $::RD_TRACE;
7250            
7251              
7252 0 0         $_tok = ($_noactions) ? 0 : do {
7253 0           bless {
7254             __IDENT__ => Bigtop::Parser->get_ident(),
7255             __BODY__ => $item{controller_body}
7256             {'controller_statement(s?)'},
7257             __NAME__ => 'base_controller',
7258             __TYPE__ => 'base_controller',
7259             }, 'controller_block'
7260             };
7261 0 0         unless (defined $_tok)
7262             {
7263 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
7264             if defined $::RD_TRACE;
7265 0           last;
7266             }
7267 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7268             . $_tok . q{])},
7269             Parse::RecDescent::_tracefirst($text))
7270             if defined $::RD_TRACE;
7271 0           push @item, $_tok;
7272 0           $item{__ACTION1__}=$_tok;
7273            
7274              
7275              
7276 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['controller' 'is' 'base_controller' '\{' controller_body '\}']<<},
7277             Parse::RecDescent::_tracefirst($text),
7278             q{controller_block},
7279             $tracelevel)
7280             if defined $::RD_TRACE;
7281 0           $_matched = 1;
7282 0           last;
7283             }
7284              
7285              
7286 0   0       while (!$_matched && !$commit)
7287             {
7288            
7289 0 0         Parse::RecDescent::_trace(q{Trying production: ['controller' module_ident is_type '\{' controller_body '\}']},
7290             Parse::RecDescent::_tracefirst($_[1]),
7291             q{controller_block},
7292             $tracelevel)
7293             if defined $::RD_TRACE;
7294 0           my $thisprod = $thisrule->{"prods"}[1];
7295 0           $text = $_[1];
7296 0           my $_savetext;
7297 0           @item = (q{controller_block});
7298 0           %item = (__RULE__ => q{controller_block});
7299 0           my $repcount = 0;
7300              
7301              
7302 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['controller']},
7303             Parse::RecDescent::_tracefirst($text),
7304             q{controller_block},
7305             $tracelevel)
7306             if defined $::RD_TRACE;
7307 0           $lastsep = "";
7308 0           $expectation->is(q{})->at($text);
7309            
7310              
7311 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Acontroller//)
  0 0          
7312             {
7313            
7314 0           $expectation->failed();
7315 0 0         Parse::RecDescent::_trace(qq{<>},
7316             Parse::RecDescent::_tracefirst($text))
7317             if defined $::RD_TRACE;
7318 0           last;
7319             }
7320 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7321             . $& . q{])},
7322             Parse::RecDescent::_tracefirst($text))
7323             if defined $::RD_TRACE;
7324 0           push @item, $item{__STRING1__}=$&;
7325            
7326              
7327 0 0         Parse::RecDescent::_trace(q{Trying subrule: [module_ident]},
7328             Parse::RecDescent::_tracefirst($text),
7329             q{controller_block},
7330             $tracelevel)
7331             if defined $::RD_TRACE;
7332 41     41   262 if (1) { no strict qw{refs};
  41         91  
  41         41934  
  0            
7333 0           $expectation->is(q{module_ident})->at($text);
7334 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::module_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
7335             {
7336            
7337 0 0         Parse::RecDescent::_trace(q{<>},
7338             Parse::RecDescent::_tracefirst($text),
7339             q{controller_block},
7340             $tracelevel)
7341             if defined $::RD_TRACE;
7342 0           $expectation->failed();
7343 0           last;
7344             }
7345 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [module_ident]<< (return value: [}
7346             . $_tok . q{]},
7347            
7348             Parse::RecDescent::_tracefirst($text),
7349             q{controller_block},
7350             $tracelevel)
7351             if defined $::RD_TRACE;
7352 0           $item{q{module_ident}} = $_tok;
7353 0           push @item, $_tok;
7354            
7355             }
7356              
7357 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [is_type]},
7358             Parse::RecDescent::_tracefirst($text),
7359             q{controller_block},
7360             $tracelevel)
7361             if defined $::RD_TRACE;
7362 0           $expectation->is(q{is_type})->at($text);
7363            
7364 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::is_type, 0, 1, $_noactions,$expectation,undef)))
7365             {
7366 0 0         Parse::RecDescent::_trace(q{<>},
7367             Parse::RecDescent::_tracefirst($text),
7368             q{controller_block},
7369             $tracelevel)
7370             if defined $::RD_TRACE;
7371 0           last;
7372             }
7373 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [is_type]<< (}
7374             . @$_tok . q{ times)},
7375            
7376             Parse::RecDescent::_tracefirst($text),
7377             q{controller_block},
7378             $tracelevel)
7379             if defined $::RD_TRACE;
7380 0           $item{q{is_type(?)}} = $_tok;
7381 0           push @item, $_tok;
7382            
7383              
7384              
7385 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
7386             Parse::RecDescent::_tracefirst($text),
7387             q{controller_block},
7388             $tracelevel)
7389             if defined $::RD_TRACE;
7390 0           $lastsep = "";
7391 0           $expectation->is(q{'\{'})->at($text);
7392            
7393              
7394 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
7395             {
7396            
7397 0           $expectation->failed();
7398 0 0         Parse::RecDescent::_trace(qq{<>},
7399             Parse::RecDescent::_tracefirst($text))
7400             if defined $::RD_TRACE;
7401 0           last;
7402             }
7403 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7404             . $& . q{])},
7405             Parse::RecDescent::_tracefirst($text))
7406             if defined $::RD_TRACE;
7407 0           push @item, $item{__STRING2__}=$&;
7408            
7409              
7410 0 0         Parse::RecDescent::_trace(q{Trying subrule: [controller_body]},
7411             Parse::RecDescent::_tracefirst($text),
7412             q{controller_block},
7413             $tracelevel)
7414             if defined $::RD_TRACE;
7415 41     41   261 if (1) { no strict qw{refs};
  41         101  
  41         49639  
  0            
7416 0           $expectation->is(q{controller_body})->at($text);
7417 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::controller_body($thisparser,$text,$repeating,$_noactions,sub { return [ $item{module_ident} ] })))
  0            
7418             {
7419            
7420 0 0         Parse::RecDescent::_trace(q{<>},
7421             Parse::RecDescent::_tracefirst($text),
7422             q{controller_block},
7423             $tracelevel)
7424             if defined $::RD_TRACE;
7425 0           $expectation->failed();
7426 0           last;
7427             }
7428 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [controller_body]<< (return value: [}
7429             . $_tok . q{]},
7430            
7431             Parse::RecDescent::_tracefirst($text),
7432             q{controller_block},
7433             $tracelevel)
7434             if defined $::RD_TRACE;
7435 0           $item{q{controller_body}} = $_tok;
7436 0           push @item, $_tok;
7437            
7438             }
7439              
7440 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
7441             Parse::RecDescent::_tracefirst($text),
7442             q{controller_block},
7443             $tracelevel)
7444             if defined $::RD_TRACE;
7445 0           $lastsep = "";
7446 0           $expectation->is(q{'\}'})->at($text);
7447            
7448              
7449 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
7450             {
7451            
7452 0           $expectation->failed();
7453 0 0         Parse::RecDescent::_trace(qq{<>},
7454             Parse::RecDescent::_tracefirst($text))
7455             if defined $::RD_TRACE;
7456 0           last;
7457             }
7458 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7459             . $& . q{])},
7460             Parse::RecDescent::_tracefirst($text))
7461             if defined $::RD_TRACE;
7462 0           push @item, $item{__STRING3__}=$&;
7463            
7464              
7465 0 0         Parse::RecDescent::_trace(q{Trying action},
7466             Parse::RecDescent::_tracefirst($text),
7467             q{controller_block},
7468             $tracelevel)
7469             if defined $::RD_TRACE;
7470            
7471              
7472 0 0         $_tok = ($_noactions) ? 0 : do {
7473 0 0 0       if ( defined $item{'is_type(?)'}[0]
7474             and
7475             $item{'is_type(?)'}[0] eq 'base_controller'
7476             ) {
7477 0           my $message = "base_controller cannot have an "
7478             . "explicit name";
7479 0           my $diag_text = "controller $item{module_ident} "
7480             . "is base_controller";
7481 0           Bigtop::Parser->fatal_error_two_lines(
7482             $message, $diag_text, $thisline
7483             );
7484             }
7485             bless {
7486 0           __IDENT__ => Bigtop::Parser->get_ident(),
7487             __NAME__ => $item{module_ident},
7488             __BODY__ => $item{controller_body}
7489             {'controller_statement(s?)'},
7490             __TYPE__ => $item{'is_type(?)'}[0],
7491             }, 'controller_block'
7492             };
7493 0 0         unless (defined $_tok)
7494             {
7495 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
7496             if defined $::RD_TRACE;
7497 0           last;
7498             }
7499 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7500             . $_tok . q{])},
7501             Parse::RecDescent::_tracefirst($text))
7502             if defined $::RD_TRACE;
7503 0           push @item, $_tok;
7504 0           $item{__ACTION1__}=$_tok;
7505            
7506              
7507              
7508 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['controller' module_ident is_type '\{' controller_body '\}']<<},
7509             Parse::RecDescent::_tracefirst($text),
7510             q{controller_block},
7511             $tracelevel)
7512             if defined $::RD_TRACE;
7513 0           $_matched = 1;
7514 0           last;
7515             }
7516              
7517              
7518 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
7519             {
7520            
7521              
7522 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
7523 0 0         Parse::RecDescent::_trace(q{<>},
7524             Parse::RecDescent::_tracefirst($_[1]),
7525             q{controller_block},
7526             $tracelevel)
7527             if defined $::RD_TRACE;
7528 0           return undef;
7529             }
7530 0 0 0       if (!defined($return) && defined($score))
7531             {
7532 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7533             q{controller_block},
7534             $tracelevel)
7535             if defined $::RD_TRACE;
7536 0           $return = $score_return;
7537             }
7538 0           splice @{$thisparser->{errors}}, $err_at;
  0            
7539 0 0         $return = $item[$#item] unless defined $return;
7540 0 0         if (defined $::RD_TRACE)
7541             {
7542 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7543             $return . q{])}, "",
7544             q{controller_block},
7545             $tracelevel);
7546 0           Parse::RecDescent::_trace(q{(consumed: [} .
7547             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7548             Parse::RecDescent::_tracefirst($text),
7549             , q{controller_block},
7550             $tracelevel)
7551             }
7552 0           $_[1] = $text;
7553 0           return $return;
7554             }
7555              
7556             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7557             sub Parse::RecDescent::Bigtop::Grammar::field_body
7558             {
7559 0     0     my $thisparser = $_[0];
7560 41     41   282 use vars q{$tracelevel};
  41         88  
  41         40762  
7561 0   0       local $tracelevel = ($tracelevel||0)+1;
7562 0           $ERRORS = 0;
7563 0           my $thisrule = $thisparser->{"rules"}{"field_body"};
7564            
7565 0 0         Parse::RecDescent::_trace(q{Trying rule: [field_body]},
7566             Parse::RecDescent::_tracefirst($_[1]),
7567             q{field_body},
7568             $tracelevel)
7569             if defined $::RD_TRACE;
7570              
7571            
7572 0           my $err_at = @{$thisparser->{errors}};
  0            
7573              
7574 0           my $score;
7575             my $score_return;
7576 0           my $_tok;
7577 0           my $return = undef;
7578 0           my $_matched=0;
7579 0           my $commit=0;
7580 0           my @item = ();
7581 0           my %item = ();
7582 0   0       my $repeating = defined($_[2]) && $_[2];
7583 0   0       my $_noactions = defined($_[3]) && $_[3];
7584 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
7585 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7586 0           my $text;
7587 0           my $lastsep="";
7588 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
7589 0           $expectation->at($_[1]);
7590            
7591 0           my $thisline;
7592 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7593              
7594            
7595              
7596 0   0       while (!$_matched && !$commit)
7597             {
7598            
7599 0 0         Parse::RecDescent::_trace(q{Trying production: [field_statement]},
7600             Parse::RecDescent::_tracefirst($_[1]),
7601             q{field_body},
7602             $tracelevel)
7603             if defined $::RD_TRACE;
7604 0           my $thisprod = $thisrule->{"prods"}[0];
7605 0           $text = $_[1];
7606 0           my $_savetext;
7607 0           @item = (q{field_body});
7608 0           %item = (__RULE__ => q{field_body});
7609 0           my $repcount = 0;
7610              
7611              
7612 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [field_statement]},
7613             Parse::RecDescent::_tracefirst($text),
7614             q{field_body},
7615             $tracelevel)
7616             if defined $::RD_TRACE;
7617 0           $expectation->is(q{})->at($text);
7618            
7619 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::field_statement, 0, 100000000, $_noactions,$expectation,undef)))
7620             {
7621 0 0         Parse::RecDescent::_trace(q{<>},
7622             Parse::RecDescent::_tracefirst($text),
7623             q{field_body},
7624             $tracelevel)
7625             if defined $::RD_TRACE;
7626 0           last;
7627             }
7628 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [field_statement]<< (}
7629             . @$_tok . q{ times)},
7630            
7631             Parse::RecDescent::_tracefirst($text),
7632             q{field_body},
7633             $tracelevel)
7634             if defined $::RD_TRACE;
7635 0           $item{q{field_statement(s?)}} = $_tok;
7636 0           push @item, $_tok;
7637            
7638              
7639              
7640 0 0         Parse::RecDescent::_trace(q{Trying action},
7641             Parse::RecDescent::_tracefirst($text),
7642             q{field_body},
7643             $tracelevel)
7644             if defined $::RD_TRACE;
7645            
7646              
7647 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
7648 0 0         unless (defined $_tok)
7649             {
7650 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
7651             if defined $::RD_TRACE;
7652 0           last;
7653             }
7654 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7655             . $_tok . q{])},
7656             Parse::RecDescent::_tracefirst($text))
7657             if defined $::RD_TRACE;
7658 0           push @item, $_tok;
7659            
7660            
7661              
7662              
7663 0 0         Parse::RecDescent::_trace(q{>>Matched production: [field_statement]<<},
7664             Parse::RecDescent::_tracefirst($text),
7665             q{field_body},
7666             $tracelevel)
7667             if defined $::RD_TRACE;
7668 0           $_matched = 1;
7669 0           last;
7670             }
7671              
7672              
7673 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
7674             {
7675            
7676              
7677 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
7678 0 0         Parse::RecDescent::_trace(q{<>},
7679             Parse::RecDescent::_tracefirst($_[1]),
7680             q{field_body},
7681             $tracelevel)
7682             if defined $::RD_TRACE;
7683 0           return undef;
7684             }
7685 0 0 0       if (!defined($return) && defined($score))
7686             {
7687 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7688             q{field_body},
7689             $tracelevel)
7690             if defined $::RD_TRACE;
7691 0           $return = $score_return;
7692             }
7693 0           splice @{$thisparser->{errors}}, $err_at;
  0            
7694 0 0         $return = $item[$#item] unless defined $return;
7695 0 0         if (defined $::RD_TRACE)
7696             {
7697 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7698             $return . q{])}, "",
7699             q{field_body},
7700             $tracelevel);
7701 0           Parse::RecDescent::_trace(q{(consumed: [} .
7702             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7703             Parse::RecDescent::_tracefirst($text),
7704             , q{field_body},
7705             $tracelevel)
7706             }
7707 0           $_[1] = $text;
7708 0           return $return;
7709             }
7710              
7711             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7712             sub Parse::RecDescent::Bigtop::Grammar::CONFIG
7713             {
7714 0     0     my $thisparser = $_[0];
7715 41     41   297 use vars q{$tracelevel};
  41         101  
  41         62572  
7716 0   0       local $tracelevel = ($tracelevel||0)+1;
7717 0           $ERRORS = 0;
7718 0           my $thisrule = $thisparser->{"rules"}{"CONFIG"};
7719            
7720 0 0         Parse::RecDescent::_trace(q{Trying rule: [CONFIG]},
7721             Parse::RecDescent::_tracefirst($_[1]),
7722             q{CONFIG},
7723             $tracelevel)
7724             if defined $::RD_TRACE;
7725              
7726            
7727 0           my $err_at = @{$thisparser->{errors}};
  0            
7728              
7729 0           my $score;
7730             my $score_return;
7731 0           my $_tok;
7732 0           my $return = undef;
7733 0           my $_matched=0;
7734 0           my $commit=0;
7735 0           my @item = ();
7736 0           my %item = ();
7737 0   0       my $repeating = defined($_[2]) && $_[2];
7738 0   0       my $_noactions = defined($_[3]) && $_[3];
7739 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
7740 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7741 0           my $text;
7742 0           my $lastsep="";
7743 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
7744 0           $expectation->at($_[1]);
7745            
7746 0           my $thisline;
7747 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7748              
7749            
7750              
7751 0   0       while (!$_matched && !$commit)
7752             {
7753            
7754 0 0         Parse::RecDescent::_trace(q{Trying production: ['config']},
7755             Parse::RecDescent::_tracefirst($_[1]),
7756             q{CONFIG},
7757             $tracelevel)
7758             if defined $::RD_TRACE;
7759 0           my $thisprod = $thisrule->{"prods"}[0];
7760 0           $text = $_[1];
7761 0           my $_savetext;
7762 0           @item = (q{CONFIG});
7763 0           %item = (__RULE__ => q{CONFIG});
7764 0           my $repcount = 0;
7765              
7766              
7767 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['config']},
7768             Parse::RecDescent::_tracefirst($text),
7769             q{CONFIG},
7770             $tracelevel)
7771             if defined $::RD_TRACE;
7772 0           $lastsep = "";
7773 0           $expectation->is(q{})->at($text);
7774            
7775              
7776 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aconfig//)
  0 0          
7777             {
7778            
7779 0           $expectation->failed();
7780 0 0         Parse::RecDescent::_trace(qq{<>},
7781             Parse::RecDescent::_tracefirst($text))
7782             if defined $::RD_TRACE;
7783 0           last;
7784             }
7785 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7786             . $& . q{])},
7787             Parse::RecDescent::_tracefirst($text))
7788             if defined $::RD_TRACE;
7789 0           push @item, $item{__STRING1__}=$&;
7790            
7791              
7792 0 0         Parse::RecDescent::_trace(q{Trying action},
7793             Parse::RecDescent::_tracefirst($text),
7794             q{CONFIG},
7795             $tracelevel)
7796             if defined $::RD_TRACE;
7797            
7798              
7799 0 0         $_tok = ($_noactions) ? 0 : do {bless {__VALUE__=>$item[1]}, $item[0]};
  0            
7800 0 0         unless (defined $_tok)
7801             {
7802 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
7803             if defined $::RD_TRACE;
7804 0           last;
7805             }
7806 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7807             . $_tok . q{])},
7808             Parse::RecDescent::_tracefirst($text))
7809             if defined $::RD_TRACE;
7810 0           push @item, $_tok;
7811            
7812            
7813              
7814              
7815 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['config']<<},
7816             Parse::RecDescent::_tracefirst($text),
7817             q{CONFIG},
7818             $tracelevel)
7819             if defined $::RD_TRACE;
7820 0           $_matched = 1;
7821 0           last;
7822             }
7823              
7824              
7825 0   0       while (!$_matched && !$commit)
7826             {
7827            
7828 0 0         Parse::RecDescent::_trace(q{Trying production: ['set_vars']},
7829             Parse::RecDescent::_tracefirst($_[1]),
7830             q{CONFIG},
7831             $tracelevel)
7832             if defined $::RD_TRACE;
7833 0           my $thisprod = $thisrule->{"prods"}[1];
7834 0           $text = $_[1];
7835 0           my $_savetext;
7836 0           @item = (q{CONFIG});
7837 0           %item = (__RULE__ => q{CONFIG});
7838 0           my $repcount = 0;
7839              
7840              
7841 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['set_vars']},
7842             Parse::RecDescent::_tracefirst($text),
7843             q{CONFIG},
7844             $tracelevel)
7845             if defined $::RD_TRACE;
7846 0           $lastsep = "";
7847 0           $expectation->is(q{})->at($text);
7848            
7849              
7850 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aset_vars//)
  0 0          
7851             {
7852            
7853 0           $expectation->failed();
7854 0 0         Parse::RecDescent::_trace(qq{<>},
7855             Parse::RecDescent::_tracefirst($text))
7856             if defined $::RD_TRACE;
7857 0           last;
7858             }
7859 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7860             . $& . q{])},
7861             Parse::RecDescent::_tracefirst($text))
7862             if defined $::RD_TRACE;
7863 0           push @item, $item{__STRING1__}=$&;
7864            
7865              
7866 0 0         Parse::RecDescent::_trace(q{Trying action},
7867             Parse::RecDescent::_tracefirst($text),
7868             q{CONFIG},
7869             $tracelevel)
7870             if defined $::RD_TRACE;
7871            
7872              
7873 0 0         $_tok = ($_noactions) ? 0 : do {bless {__VALUE__=>$item[1]}, $item[0]};
  0            
7874 0 0         unless (defined $_tok)
7875             {
7876 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
7877             if defined $::RD_TRACE;
7878 0           last;
7879             }
7880 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
7881             . $_tok . q{])},
7882             Parse::RecDescent::_tracefirst($text))
7883             if defined $::RD_TRACE;
7884 0           push @item, $_tok;
7885            
7886            
7887              
7888              
7889 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['set_vars']<<},
7890             Parse::RecDescent::_tracefirst($text),
7891             q{CONFIG},
7892             $tracelevel)
7893             if defined $::RD_TRACE;
7894 0           $_matched = 1;
7895 0           last;
7896             }
7897              
7898              
7899 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
7900             {
7901            
7902              
7903 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
7904 0 0         Parse::RecDescent::_trace(q{<>},
7905             Parse::RecDescent::_tracefirst($_[1]),
7906             q{CONFIG},
7907             $tracelevel)
7908             if defined $::RD_TRACE;
7909 0           return undef;
7910             }
7911 0 0 0       if (!defined($return) && defined($score))
7912             {
7913 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
7914             q{CONFIG},
7915             $tracelevel)
7916             if defined $::RD_TRACE;
7917 0           $return = $score_return;
7918             }
7919 0           splice @{$thisparser->{errors}}, $err_at;
  0            
7920 0 0         $return = $item[$#item] unless defined $return;
7921 0 0         if (defined $::RD_TRACE)
7922             {
7923 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
7924             $return . q{])}, "",
7925             q{CONFIG},
7926             $tracelevel);
7927 0           Parse::RecDescent::_trace(q{(consumed: [} .
7928             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
7929             Parse::RecDescent::_tracefirst($text),
7930             , q{CONFIG},
7931             $tracelevel)
7932             }
7933 0           $_[1] = $text;
7934 0           return $return;
7935             }
7936              
7937             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
7938             sub Parse::RecDescent::Bigtop::Grammar::config_body
7939             {
7940 0     0     my $thisparser = $_[0];
7941 41     41   286 use vars q{$tracelevel};
  41         81  
  41         51078  
7942 0   0       local $tracelevel = ($tracelevel||0)+1;
7943 0           $ERRORS = 0;
7944 0           my $thisrule = $thisparser->{"rules"}{"config_body"};
7945            
7946 0 0         Parse::RecDescent::_trace(q{Trying rule: [config_body]},
7947             Parse::RecDescent::_tracefirst($_[1]),
7948             q{config_body},
7949             $tracelevel)
7950             if defined $::RD_TRACE;
7951              
7952            
7953 0           my $err_at = @{$thisparser->{errors}};
  0            
7954              
7955 0           my $score;
7956             my $score_return;
7957 0           my $_tok;
7958 0           my $return = undef;
7959 0           my $_matched=0;
7960 0           my $commit=0;
7961 0           my @item = ();
7962 0           my %item = ();
7963 0   0       my $repeating = defined($_[2]) && $_[2];
7964 0   0       my $_noactions = defined($_[3]) && $_[3];
7965 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
7966 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
7967 0           my $text;
7968 0           my $lastsep="";
7969 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
7970 0           $expectation->at($_[1]);
7971            
7972 0           my $thisline;
7973 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
7974              
7975            
7976              
7977 0   0       while (!$_matched && !$commit)
7978             {
7979            
7980 0 0         Parse::RecDescent::_trace(q{Trying production: [config_statement]},
7981             Parse::RecDescent::_tracefirst($_[1]),
7982             q{config_body},
7983             $tracelevel)
7984             if defined $::RD_TRACE;
7985 0           my $thisprod = $thisrule->{"prods"}[0];
7986 0           $text = $_[1];
7987 0           my $_savetext;
7988 0           @item = (q{config_body});
7989 0           %item = (__RULE__ => q{config_body});
7990 0           my $repcount = 0;
7991              
7992              
7993 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [config_statement]},
7994             Parse::RecDescent::_tracefirst($text),
7995             q{config_body},
7996             $tracelevel)
7997             if defined $::RD_TRACE;
7998 0           $expectation->is(q{})->at($text);
7999            
8000 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::config_statement, 0, 100000000, $_noactions,$expectation,undef)))
8001             {
8002 0 0         Parse::RecDescent::_trace(q{<>},
8003             Parse::RecDescent::_tracefirst($text),
8004             q{config_body},
8005             $tracelevel)
8006             if defined $::RD_TRACE;
8007 0           last;
8008             }
8009 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [config_statement]<< (}
8010             . @$_tok . q{ times)},
8011            
8012             Parse::RecDescent::_tracefirst($text),
8013             q{config_body},
8014             $tracelevel)
8015             if defined $::RD_TRACE;
8016 0           $item{q{config_statement(s?)}} = $_tok;
8017 0           push @item, $_tok;
8018            
8019              
8020              
8021 0 0         Parse::RecDescent::_trace(q{Trying action},
8022             Parse::RecDescent::_tracefirst($text),
8023             q{config_body},
8024             $tracelevel)
8025             if defined $::RD_TRACE;
8026            
8027              
8028 0 0         $_tok = ($_noactions) ? 0 : do {
8029 0           my %config;
8030             my %backend_lookup;
8031 0           my @statements;
8032 0           foreach my $statement ( @{ $item{'config_statement(s?)'} } ) {
  0            
8033 0           $config{ $statement->[0] } = $statement->[1];
8034 0           push @statements, [ $statement->[0], $statement->[1] ];
8035              
8036 0 0         if ( ref( $statement->[1] ) eq 'HASH' ) {
8037 0           push @{ $backend_lookup{ $statement->[0] } }, $statement->[1];
  0            
8038             }
8039             }
8040 0           $config{__STATEMENTS__} = \@statements;
8041 0           $config{__BACKENDS__} = \%backend_lookup;
8042 0           $return = \%config;
8043             };
8044 0 0         unless (defined $_tok)
8045             {
8046 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
8047             if defined $::RD_TRACE;
8048 0           last;
8049             }
8050 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8051             . $_tok . q{])},
8052             Parse::RecDescent::_tracefirst($text))
8053             if defined $::RD_TRACE;
8054 0           push @item, $_tok;
8055 0           $item{__ACTION1__}=$_tok;
8056            
8057              
8058              
8059 0 0         Parse::RecDescent::_trace(q{>>Matched production: [config_statement]<<},
8060             Parse::RecDescent::_tracefirst($text),
8061             q{config_body},
8062             $tracelevel)
8063             if defined $::RD_TRACE;
8064 0           $_matched = 1;
8065 0           last;
8066             }
8067              
8068              
8069 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
8070             {
8071            
8072              
8073 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
8074 0 0         Parse::RecDescent::_trace(q{<>},
8075             Parse::RecDescent::_tracefirst($_[1]),
8076             q{config_body},
8077             $tracelevel)
8078             if defined $::RD_TRACE;
8079 0           return undef;
8080             }
8081 0 0 0       if (!defined($return) && defined($score))
8082             {
8083 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8084             q{config_body},
8085             $tracelevel)
8086             if defined $::RD_TRACE;
8087 0           $return = $score_return;
8088             }
8089 0           splice @{$thisparser->{errors}}, $err_at;
  0            
8090 0 0         $return = $item[$#item] unless defined $return;
8091 0 0         if (defined $::RD_TRACE)
8092             {
8093 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8094             $return . q{])}, "",
8095             q{config_body},
8096             $tracelevel);
8097 0           Parse::RecDescent::_trace(q{(consumed: [} .
8098             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8099             Parse::RecDescent::_tracefirst($text),
8100             , q{config_body},
8101             $tracelevel)
8102             }
8103 0           $_[1] = $text;
8104 0           return $return;
8105             }
8106              
8107             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
8108             sub Parse::RecDescent::Bigtop::Grammar::extra_sql_statement
8109             {
8110 0     0     my $thisparser = $_[0];
8111 41     41   460 use vars q{$tracelevel};
  41         679  
  41         21891  
8112 0   0       local $tracelevel = ($tracelevel||0)+1;
8113 0           $ERRORS = 0;
8114 0           my $thisrule = $thisparser->{"rules"}{"extra_sql_statement"};
8115            
8116 0 0         Parse::RecDescent::_trace(q{Trying rule: [extra_sql_statement]},
8117             Parse::RecDescent::_tracefirst($_[1]),
8118             q{extra_sql_statement},
8119             $tracelevel)
8120             if defined $::RD_TRACE;
8121              
8122            
8123 0           my $err_at = @{$thisparser->{errors}};
  0            
8124              
8125 0           my $score;
8126             my $score_return;
8127 0           my $_tok;
8128 0           my $return = undef;
8129 0           my $_matched=0;
8130 0           my $commit=0;
8131 0           my @item = ();
8132 0           my %item = ();
8133 0   0       my $repeating = defined($_[2]) && $_[2];
8134 0   0       my $_noactions = defined($_[3]) && $_[3];
8135 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
8136 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
8137 0           my $text;
8138 0           my $lastsep="";
8139 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
8140 0           $expectation->at($_[1]);
8141            
8142 0           my $thisline;
8143 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
8144              
8145            
8146              
8147 0   0       while (!$_matched && !$commit)
8148             {
8149            
8150 0 0         Parse::RecDescent::_trace(q{Trying production: [keyword extra_sql_statement_def SEMI_COLON]},
8151             Parse::RecDescent::_tracefirst($_[1]),
8152             q{extra_sql_statement},
8153             $tracelevel)
8154             if defined $::RD_TRACE;
8155 0           my $thisprod = $thisrule->{"prods"}[0];
8156 0           $text = $_[1];
8157 0           my $_savetext;
8158 0           @item = (q{extra_sql_statement});
8159 0           %item = (__RULE__ => q{extra_sql_statement});
8160 0           my $repcount = 0;
8161              
8162              
8163 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
8164             Parse::RecDescent::_tracefirst($text),
8165             q{extra_sql_statement},
8166             $tracelevel)
8167             if defined $::RD_TRACE;
8168 41     41   310 if (1) { no strict qw{refs};
  41         97  
  41         9684  
  0            
8169 0           $expectation->is(q{})->at($text);
8170 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return ['extra_sql'] })))
  0            
8171             {
8172            
8173 0 0         Parse::RecDescent::_trace(q{<>},
8174             Parse::RecDescent::_tracefirst($text),
8175             q{extra_sql_statement},
8176             $tracelevel)
8177             if defined $::RD_TRACE;
8178 0           $expectation->failed();
8179 0           last;
8180             }
8181 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
8182             . $_tok . q{]},
8183            
8184             Parse::RecDescent::_tracefirst($text),
8185             q{extra_sql_statement},
8186             $tracelevel)
8187             if defined $::RD_TRACE;
8188 0           $item{q{keyword}} = $_tok;
8189 0           push @item, $_tok;
8190            
8191             }
8192              
8193 0 0         Parse::RecDescent::_trace(q{Trying subrule: [extra_sql_statement_def]},
8194             Parse::RecDescent::_tracefirst($text),
8195             q{extra_sql_statement},
8196             $tracelevel)
8197             if defined $::RD_TRACE;
8198 41     41   238 if (1) { no strict qw{refs};
  41         95  
  41         10140  
  0            
8199 0           $expectation->is(q{extra_sql_statement_def})->at($text);
8200 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::extra_sql_statement_def($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
8201             {
8202            
8203 0 0         Parse::RecDescent::_trace(q{<>},
8204             Parse::RecDescent::_tracefirst($text),
8205             q{extra_sql_statement},
8206             $tracelevel)
8207             if defined $::RD_TRACE;
8208 0           $expectation->failed();
8209 0           last;
8210             }
8211 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [extra_sql_statement_def]<< (return value: [}
8212             . $_tok . q{]},
8213            
8214             Parse::RecDescent::_tracefirst($text),
8215             q{extra_sql_statement},
8216             $tracelevel)
8217             if defined $::RD_TRACE;
8218 0           $item{q{extra_sql_statement_def}} = $_tok;
8219 0           push @item, $_tok;
8220            
8221             }
8222              
8223 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
8224             Parse::RecDescent::_tracefirst($text),
8225             q{extra_sql_statement},
8226             $tracelevel)
8227             if defined $::RD_TRACE;
8228 41     41   248 if (1) { no strict qw{refs};
  41         93  
  41         36091  
  0            
8229 0           $expectation->is(q{SEMI_COLON})->at($text);
8230 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
8231             {
8232            
8233 0 0         Parse::RecDescent::_trace(q{<>},
8234             Parse::RecDescent::_tracefirst($text),
8235             q{extra_sql_statement},
8236             $tracelevel)
8237             if defined $::RD_TRACE;
8238 0           $expectation->failed();
8239 0           last;
8240             }
8241 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
8242             . $_tok . q{]},
8243            
8244             Parse::RecDescent::_tracefirst($text),
8245             q{extra_sql_statement},
8246             $tracelevel)
8247             if defined $::RD_TRACE;
8248 0           $item{q{SEMI_COLON}} = $_tok;
8249 0           push @item, $_tok;
8250            
8251             }
8252              
8253 0 0         Parse::RecDescent::_trace(q{Trying action},
8254             Parse::RecDescent::_tracefirst($text),
8255             q{extra_sql_statement},
8256             $tracelevel)
8257             if defined $::RD_TRACE;
8258            
8259              
8260 0 0         $_tok = ($_noactions) ? 0 : do {
8261 0           bless {
8262             __KEYWORD__ => $item[1], __DEF__ => $item[2]
8263             }, 'extra_sql_statement'
8264             };
8265 0 0         unless (defined $_tok)
8266             {
8267 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
8268             if defined $::RD_TRACE;
8269 0           last;
8270             }
8271 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8272             . $_tok . q{])},
8273             Parse::RecDescent::_tracefirst($text))
8274             if defined $::RD_TRACE;
8275 0           push @item, $_tok;
8276 0           $item{__ACTION1__}=$_tok;
8277            
8278              
8279              
8280 0 0         Parse::RecDescent::_trace(q{>>Matched production: [keyword extra_sql_statement_def SEMI_COLON]<<},
8281             Parse::RecDescent::_tracefirst($text),
8282             q{extra_sql_statement},
8283             $tracelevel)
8284             if defined $::RD_TRACE;
8285 0           $_matched = 1;
8286 0           last;
8287             }
8288              
8289              
8290 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
8291             {
8292            
8293              
8294 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
8295 0 0         Parse::RecDescent::_trace(q{<>},
8296             Parse::RecDescent::_tracefirst($_[1]),
8297             q{extra_sql_statement},
8298             $tracelevel)
8299             if defined $::RD_TRACE;
8300 0           return undef;
8301             }
8302 0 0 0       if (!defined($return) && defined($score))
8303             {
8304 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8305             q{extra_sql_statement},
8306             $tracelevel)
8307             if defined $::RD_TRACE;
8308 0           $return = $score_return;
8309             }
8310 0           splice @{$thisparser->{errors}}, $err_at;
  0            
8311 0 0         $return = $item[$#item] unless defined $return;
8312 0 0         if (defined $::RD_TRACE)
8313             {
8314 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8315             $return . q{])}, "",
8316             q{extra_sql_statement},
8317             $tracelevel);
8318 0           Parse::RecDescent::_trace(q{(consumed: [} .
8319             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8320             Parse::RecDescent::_tracefirst($text),
8321             , q{extra_sql_statement},
8322             $tracelevel)
8323             }
8324 0           $_[1] = $text;
8325 0           return $return;
8326             }
8327              
8328             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
8329             sub Parse::RecDescent::Bigtop::Grammar::app_body
8330             {
8331 0     0     my $thisparser = $_[0];
8332 41     41   275 use vars q{$tracelevel};
  41         88  
  41         41136  
8333 0   0       local $tracelevel = ($tracelevel||0)+1;
8334 0           $ERRORS = 0;
8335 0           my $thisrule = $thisparser->{"rules"}{"app_body"};
8336            
8337 0 0         Parse::RecDescent::_trace(q{Trying rule: [app_body]},
8338             Parse::RecDescent::_tracefirst($_[1]),
8339             q{app_body},
8340             $tracelevel)
8341             if defined $::RD_TRACE;
8342              
8343            
8344 0           my $err_at = @{$thisparser->{errors}};
  0            
8345              
8346 0           my $score;
8347             my $score_return;
8348 0           my $_tok;
8349 0           my $return = undef;
8350 0           my $_matched=0;
8351 0           my $commit=0;
8352 0           my @item = ();
8353 0           my %item = ();
8354 0   0       my $repeating = defined($_[2]) && $_[2];
8355 0   0       my $_noactions = defined($_[3]) && $_[3];
8356 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
8357 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
8358 0           my $text;
8359 0           my $lastsep="";
8360 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
8361 0           $expectation->at($_[1]);
8362            
8363 0           my $thisline;
8364 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
8365              
8366            
8367              
8368 0   0       while (!$_matched && !$commit)
8369             {
8370            
8371 0 0         Parse::RecDescent::_trace(q{Trying production: [block]},
8372             Parse::RecDescent::_tracefirst($_[1]),
8373             q{app_body},
8374             $tracelevel)
8375             if defined $::RD_TRACE;
8376 0           my $thisprod = $thisrule->{"prods"}[0];
8377 0           $text = $_[1];
8378 0           my $_savetext;
8379 0           @item = (q{app_body});
8380 0           %item = (__RULE__ => q{app_body});
8381 0           my $repcount = 0;
8382              
8383              
8384 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [block]},
8385             Parse::RecDescent::_tracefirst($text),
8386             q{app_body},
8387             $tracelevel)
8388             if defined $::RD_TRACE;
8389 0           $expectation->is(q{})->at($text);
8390            
8391 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::block, 0, 100000000, $_noactions,$expectation,undef)))
8392             {
8393 0 0         Parse::RecDescent::_trace(q{<>},
8394             Parse::RecDescent::_tracefirst($text),
8395             q{app_body},
8396             $tracelevel)
8397             if defined $::RD_TRACE;
8398 0           last;
8399             }
8400 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [block]<< (}
8401             . @$_tok . q{ times)},
8402            
8403             Parse::RecDescent::_tracefirst($text),
8404             q{app_body},
8405             $tracelevel)
8406             if defined $::RD_TRACE;
8407 0           $item{q{block(s?)}} = $_tok;
8408 0           push @item, $_tok;
8409            
8410              
8411              
8412 0 0         Parse::RecDescent::_trace(q{Trying action},
8413             Parse::RecDescent::_tracefirst($text),
8414             q{app_body},
8415             $tracelevel)
8416             if defined $::RD_TRACE;
8417            
8418              
8419 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
8420 0 0         unless (defined $_tok)
8421             {
8422 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
8423             if defined $::RD_TRACE;
8424 0           last;
8425             }
8426 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8427             . $_tok . q{])},
8428             Parse::RecDescent::_tracefirst($text))
8429             if defined $::RD_TRACE;
8430 0           push @item, $_tok;
8431            
8432            
8433              
8434              
8435 0 0         Parse::RecDescent::_trace(q{>>Matched production: [block]<<},
8436             Parse::RecDescent::_tracefirst($text),
8437             q{app_body},
8438             $tracelevel)
8439             if defined $::RD_TRACE;
8440 0           $_matched = 1;
8441 0           last;
8442             }
8443              
8444              
8445 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
8446             {
8447            
8448              
8449 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
8450 0 0         Parse::RecDescent::_trace(q{<>},
8451             Parse::RecDescent::_tracefirst($_[1]),
8452             q{app_body},
8453             $tracelevel)
8454             if defined $::RD_TRACE;
8455 0           return undef;
8456             }
8457 0 0 0       if (!defined($return) && defined($score))
8458             {
8459 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8460             q{app_body},
8461             $tracelevel)
8462             if defined $::RD_TRACE;
8463 0           $return = $score_return;
8464             }
8465 0           splice @{$thisparser->{errors}}, $err_at;
  0            
8466 0 0         $return = $item[$#item] unless defined $return;
8467 0 0         if (defined $::RD_TRACE)
8468             {
8469 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8470             $return . q{])}, "",
8471             q{app_body},
8472             $tracelevel);
8473 0           Parse::RecDescent::_trace(q{(consumed: [} .
8474             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8475             Parse::RecDescent::_tracefirst($text),
8476             , q{app_body},
8477             $tracelevel)
8478             }
8479 0           $_[1] = $text;
8480 0           return $return;
8481             }
8482              
8483             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
8484             sub Parse::RecDescent::Bigtop::Grammar::arg_list
8485             {
8486 0     0     my $thisparser = $_[0];
8487 41     41   293 use vars q{$tracelevel};
  41         93  
  41         18076  
8488 0   0       local $tracelevel = ($tracelevel||0)+1;
8489 0           $ERRORS = 0;
8490 0           my $thisrule = $thisparser->{"rules"}{"arg_list"};
8491            
8492 0 0         Parse::RecDescent::_trace(q{Trying rule: [arg_list]},
8493             Parse::RecDescent::_tracefirst($_[1]),
8494             q{arg_list},
8495             $tracelevel)
8496             if defined $::RD_TRACE;
8497              
8498            
8499 0           my $err_at = @{$thisparser->{errors}};
  0            
8500              
8501 0           my $score;
8502             my $score_return;
8503 0           my $_tok;
8504 0           my $return = undef;
8505 0           my $_matched=0;
8506 0           my $commit=0;
8507 0           my @item = ();
8508 0           my %item = ();
8509 0   0       my $repeating = defined($_[2]) && $_[2];
8510 0   0       my $_noactions = defined($_[3]) && $_[3];
8511 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
8512 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
8513 0           my $text;
8514 0           my $lastsep="";
8515 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
8516 0           $expectation->at($_[1]);
8517            
8518 0           my $thisline;
8519 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
8520              
8521            
8522              
8523 0   0       while (!$_matched && !$commit)
8524             {
8525            
8526 0 0         Parse::RecDescent::_trace(q{Trying production: [arg ',' arg_list]},
8527             Parse::RecDescent::_tracefirst($_[1]),
8528             q{arg_list},
8529             $tracelevel)
8530             if defined $::RD_TRACE;
8531 0           my $thisprod = $thisrule->{"prods"}[0];
8532 0           $text = $_[1];
8533 0           my $_savetext;
8534 0           @item = (q{arg_list});
8535 0           %item = (__RULE__ => q{arg_list});
8536 0           my $repcount = 0;
8537              
8538              
8539 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg]},
8540             Parse::RecDescent::_tracefirst($text),
8541             q{arg_list},
8542             $tracelevel)
8543             if defined $::RD_TRACE;
8544 41     41   274 if (1) { no strict qw{refs};
  41         85  
  41         16770  
  0            
8545 0           $expectation->is(q{})->at($text);
8546 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
8547             {
8548            
8549 0 0         Parse::RecDescent::_trace(q{<>},
8550             Parse::RecDescent::_tracefirst($text),
8551             q{arg_list},
8552             $tracelevel)
8553             if defined $::RD_TRACE;
8554 0           $expectation->failed();
8555 0           last;
8556             }
8557 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg]<< (return value: [}
8558             . $_tok . q{]},
8559            
8560             Parse::RecDescent::_tracefirst($text),
8561             q{arg_list},
8562             $tracelevel)
8563             if defined $::RD_TRACE;
8564 0           $item{q{arg}} = $_tok;
8565 0           push @item, $_tok;
8566            
8567             }
8568              
8569 0 0         Parse::RecDescent::_trace(q{Trying terminal: [',']},
8570             Parse::RecDescent::_tracefirst($text),
8571             q{arg_list},
8572             $tracelevel)
8573             if defined $::RD_TRACE;
8574 0           $lastsep = "";
8575 0           $expectation->is(q{','})->at($text);
8576            
8577              
8578 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\,//)
  0 0          
8579             {
8580            
8581 0           $expectation->failed();
8582 0 0         Parse::RecDescent::_trace(qq{<>},
8583             Parse::RecDescent::_tracefirst($text))
8584             if defined $::RD_TRACE;
8585 0           last;
8586             }
8587 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8588             . $& . q{])},
8589             Parse::RecDescent::_tracefirst($text))
8590             if defined $::RD_TRACE;
8591 0           push @item, $item{__STRING1__}=$&;
8592            
8593              
8594 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_list]},
8595             Parse::RecDescent::_tracefirst($text),
8596             q{arg_list},
8597             $tracelevel)
8598             if defined $::RD_TRACE;
8599 41     41   261 if (1) { no strict qw{refs};
  41         96  
  41         21442  
  0            
8600 0           $expectation->is(q{arg_list})->at($text);
8601 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
8602             {
8603            
8604 0 0         Parse::RecDescent::_trace(q{<>},
8605             Parse::RecDescent::_tracefirst($text),
8606             q{arg_list},
8607             $tracelevel)
8608             if defined $::RD_TRACE;
8609 0           $expectation->failed();
8610 0           last;
8611             }
8612 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_list]<< (return value: [}
8613             . $_tok . q{]},
8614            
8615             Parse::RecDescent::_tracefirst($text),
8616             q{arg_list},
8617             $tracelevel)
8618             if defined $::RD_TRACE;
8619 0           $item{q{arg_list}} = $_tok;
8620 0           push @item, $_tok;
8621            
8622             }
8623              
8624 0 0         Parse::RecDescent::_trace(q{Trying action},
8625             Parse::RecDescent::_tracefirst($text),
8626             q{arg_list},
8627             $tracelevel)
8628             if defined $::RD_TRACE;
8629            
8630              
8631 0 0         $_tok = ($_noactions) ? 0 : do {
8632 0           unshift @{ $item[3] }, $item[1];
  0            
8633 0           $return = $item[3];
8634             };
8635 0 0         unless (defined $_tok)
8636             {
8637 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
8638             if defined $::RD_TRACE;
8639 0           last;
8640             }
8641 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8642             . $_tok . q{])},
8643             Parse::RecDescent::_tracefirst($text))
8644             if defined $::RD_TRACE;
8645 0           push @item, $_tok;
8646 0           $item{__ACTION1__}=$_tok;
8647            
8648              
8649              
8650 0 0         Parse::RecDescent::_trace(q{>>Matched production: [arg ',' arg_list]<<},
8651             Parse::RecDescent::_tracefirst($text),
8652             q{arg_list},
8653             $tracelevel)
8654             if defined $::RD_TRACE;
8655 0           $_matched = 1;
8656 0           last;
8657             }
8658              
8659              
8660 0   0       while (!$_matched && !$commit)
8661             {
8662            
8663 0 0         Parse::RecDescent::_trace(q{Trying production: [arg]},
8664             Parse::RecDescent::_tracefirst($_[1]),
8665             q{arg_list},
8666             $tracelevel)
8667             if defined $::RD_TRACE;
8668 0           my $thisprod = $thisrule->{"prods"}[1];
8669 0           $text = $_[1];
8670 0           my $_savetext;
8671 0           @item = (q{arg_list});
8672 0           %item = (__RULE__ => q{arg_list});
8673 0           my $repcount = 0;
8674              
8675              
8676 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg]},
8677             Parse::RecDescent::_tracefirst($text),
8678             q{arg_list},
8679             $tracelevel)
8680             if defined $::RD_TRACE;
8681 41     41   275 if (1) { no strict qw{refs};
  41         107  
  41         31440  
  0            
8682 0           $expectation->is(q{})->at($text);
8683 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
8684             {
8685            
8686 0 0         Parse::RecDescent::_trace(q{<>},
8687             Parse::RecDescent::_tracefirst($text),
8688             q{arg_list},
8689             $tracelevel)
8690             if defined $::RD_TRACE;
8691 0           $expectation->failed();
8692 0           last;
8693             }
8694 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg]<< (return value: [}
8695             . $_tok . q{]},
8696            
8697             Parse::RecDescent::_tracefirst($text),
8698             q{arg_list},
8699             $tracelevel)
8700             if defined $::RD_TRACE;
8701 0           $item{q{arg}} = $_tok;
8702 0           push @item, $_tok;
8703            
8704             }
8705              
8706 0 0         Parse::RecDescent::_trace(q{Trying action},
8707             Parse::RecDescent::_tracefirst($text),
8708             q{arg_list},
8709             $tracelevel)
8710             if defined $::RD_TRACE;
8711            
8712              
8713 0 0         $_tok = ($_noactions) ? 0 : do { bless [ $item[1] ], 'arg_list' };
  0            
8714 0 0         unless (defined $_tok)
8715             {
8716 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
8717             if defined $::RD_TRACE;
8718 0           last;
8719             }
8720 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8721             . $_tok . q{])},
8722             Parse::RecDescent::_tracefirst($text))
8723             if defined $::RD_TRACE;
8724 0           push @item, $_tok;
8725 0           $item{__ACTION1__}=$_tok;
8726            
8727              
8728              
8729 0 0         Parse::RecDescent::_trace(q{>>Matched production: [arg]<<},
8730             Parse::RecDescent::_tracefirst($text),
8731             q{arg_list},
8732             $tracelevel)
8733             if defined $::RD_TRACE;
8734 0           $_matched = 1;
8735 0           last;
8736             }
8737              
8738              
8739 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
8740             {
8741            
8742              
8743 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
8744 0 0         Parse::RecDescent::_trace(q{<>},
8745             Parse::RecDescent::_tracefirst($_[1]),
8746             q{arg_list},
8747             $tracelevel)
8748             if defined $::RD_TRACE;
8749 0           return undef;
8750             }
8751 0 0 0       if (!defined($return) && defined($score))
8752             {
8753 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8754             q{arg_list},
8755             $tracelevel)
8756             if defined $::RD_TRACE;
8757 0           $return = $score_return;
8758             }
8759 0           splice @{$thisparser->{errors}}, $err_at;
  0            
8760 0 0         $return = $item[$#item] unless defined $return;
8761 0 0         if (defined $::RD_TRACE)
8762             {
8763 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8764             $return . q{])}, "",
8765             q{arg_list},
8766             $tracelevel);
8767 0           Parse::RecDescent::_trace(q{(consumed: [} .
8768             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8769             Parse::RecDescent::_tracefirst($text),
8770             , q{arg_list},
8771             $tracelevel)
8772             }
8773 0           $_[1] = $text;
8774 0           return $return;
8775             }
8776              
8777             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
8778             sub Parse::RecDescent::Bigtop::Grammar::is_type
8779             {
8780 0     0     my $thisparser = $_[0];
8781 41     41   261 use vars q{$tracelevel};
  41         105  
  41         33870  
8782 0   0       local $tracelevel = ($tracelevel||0)+1;
8783 0           $ERRORS = 0;
8784 0           my $thisrule = $thisparser->{"rules"}{"is_type"};
8785            
8786 0 0         Parse::RecDescent::_trace(q{Trying rule: [is_type]},
8787             Parse::RecDescent::_tracefirst($_[1]),
8788             q{is_type},
8789             $tracelevel)
8790             if defined $::RD_TRACE;
8791              
8792            
8793 0           my $err_at = @{$thisparser->{errors}};
  0            
8794              
8795 0           my $score;
8796             my $score_return;
8797 0           my $_tok;
8798 0           my $return = undef;
8799 0           my $_matched=0;
8800 0           my $commit=0;
8801 0           my @item = ();
8802 0           my %item = ();
8803 0   0       my $repeating = defined($_[2]) && $_[2];
8804 0   0       my $_noactions = defined($_[3]) && $_[3];
8805 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
8806 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
8807 0           my $text;
8808 0           my $lastsep="";
8809 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
8810 0           $expectation->at($_[1]);
8811            
8812 0           my $thisline;
8813 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
8814              
8815            
8816              
8817 0   0       while (!$_matched && !$commit)
8818             {
8819            
8820 0 0         Parse::RecDescent::_trace(q{Trying production: ['is' module_ident]},
8821             Parse::RecDescent::_tracefirst($_[1]),
8822             q{is_type},
8823             $tracelevel)
8824             if defined $::RD_TRACE;
8825 0           my $thisprod = $thisrule->{"prods"}[0];
8826 0           $text = $_[1];
8827 0           my $_savetext;
8828 0           @item = (q{is_type});
8829 0           %item = (__RULE__ => q{is_type});
8830 0           my $repcount = 0;
8831              
8832              
8833 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['is']},
8834             Parse::RecDescent::_tracefirst($text),
8835             q{is_type},
8836             $tracelevel)
8837             if defined $::RD_TRACE;
8838 0           $lastsep = "";
8839 0           $expectation->is(q{})->at($text);
8840            
8841              
8842 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ais//)
  0 0          
8843             {
8844            
8845 0           $expectation->failed();
8846 0 0         Parse::RecDescent::_trace(qq{<>},
8847             Parse::RecDescent::_tracefirst($text))
8848             if defined $::RD_TRACE;
8849 0           last;
8850             }
8851 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8852             . $& . q{])},
8853             Parse::RecDescent::_tracefirst($text))
8854             if defined $::RD_TRACE;
8855 0           push @item, $item{__STRING1__}=$&;
8856            
8857              
8858 0 0         Parse::RecDescent::_trace(q{Trying subrule: [module_ident]},
8859             Parse::RecDescent::_tracefirst($text),
8860             q{is_type},
8861             $tracelevel)
8862             if defined $::RD_TRACE;
8863 41     41   255 if (1) { no strict qw{refs};
  41         99  
  41         28438  
  0            
8864 0           $expectation->is(q{module_ident})->at($text);
8865 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::module_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
8866             {
8867            
8868 0 0         Parse::RecDescent::_trace(q{<>},
8869             Parse::RecDescent::_tracefirst($text),
8870             q{is_type},
8871             $tracelevel)
8872             if defined $::RD_TRACE;
8873 0           $expectation->failed();
8874 0           last;
8875             }
8876 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [module_ident]<< (return value: [}
8877             . $_tok . q{]},
8878            
8879             Parse::RecDescent::_tracefirst($text),
8880             q{is_type},
8881             $tracelevel)
8882             if defined $::RD_TRACE;
8883 0           $item{q{module_ident}} = $_tok;
8884 0           push @item, $_tok;
8885            
8886             }
8887              
8888 0 0         Parse::RecDescent::_trace(q{Trying action},
8889             Parse::RecDescent::_tracefirst($text),
8890             q{is_type},
8891             $tracelevel)
8892             if defined $::RD_TRACE;
8893            
8894              
8895 0 0         $_tok = ($_noactions) ? 0 : do { $item{module_ident} };
  0            
8896 0 0         unless (defined $_tok)
8897             {
8898 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
8899             if defined $::RD_TRACE;
8900 0           last;
8901             }
8902 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
8903             . $_tok . q{])},
8904             Parse::RecDescent::_tracefirst($text))
8905             if defined $::RD_TRACE;
8906 0           push @item, $_tok;
8907 0           $item{__ACTION1__}=$_tok;
8908            
8909              
8910              
8911 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['is' module_ident]<<},
8912             Parse::RecDescent::_tracefirst($text),
8913             q{is_type},
8914             $tracelevel)
8915             if defined $::RD_TRACE;
8916 0           $_matched = 1;
8917 0           last;
8918             }
8919              
8920              
8921 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
8922             {
8923            
8924              
8925 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
8926 0 0         Parse::RecDescent::_trace(q{<>},
8927             Parse::RecDescent::_tracefirst($_[1]),
8928             q{is_type},
8929             $tracelevel)
8930             if defined $::RD_TRACE;
8931 0           return undef;
8932             }
8933 0 0 0       if (!defined($return) && defined($score))
8934             {
8935 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
8936             q{is_type},
8937             $tracelevel)
8938             if defined $::RD_TRACE;
8939 0           $return = $score_return;
8940             }
8941 0           splice @{$thisparser->{errors}}, $err_at;
  0            
8942 0 0         $return = $item[$#item] unless defined $return;
8943 0 0         if (defined $::RD_TRACE)
8944             {
8945 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
8946             $return . q{])}, "",
8947             q{is_type},
8948             $tracelevel);
8949 0           Parse::RecDescent::_trace(q{(consumed: [} .
8950             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
8951             Parse::RecDescent::_tracefirst($text),
8952             , q{is_type},
8953             $tracelevel)
8954             }
8955 0           $_[1] = $text;
8956 0           return $return;
8957             }
8958              
8959             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
8960             sub Parse::RecDescent::Bigtop::Grammar::table_element_block
8961             {
8962 0     0     my $thisparser = $_[0];
8963 41     41   275 use vars q{$tracelevel};
  41         78  
  41         30042  
8964 0   0       local $tracelevel = ($tracelevel||0)+1;
8965 0           $ERRORS = 0;
8966 0           my $thisrule = $thisparser->{"rules"}{"table_element_block"};
8967            
8968 0 0         Parse::RecDescent::_trace(q{Trying rule: [table_element_block]},
8969             Parse::RecDescent::_tracefirst($_[1]),
8970             q{table_element_block},
8971             $tracelevel)
8972             if defined $::RD_TRACE;
8973              
8974            
8975 0           my $err_at = @{$thisparser->{errors}};
  0            
8976              
8977 0           my $score;
8978             my $score_return;
8979 0           my $_tok;
8980 0           my $return = undef;
8981 0           my $_matched=0;
8982 0           my $commit=0;
8983 0           my @item = ();
8984 0           my %item = ();
8985 0   0       my $repeating = defined($_[2]) && $_[2];
8986 0   0       my $_noactions = defined($_[3]) && $_[3];
8987 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
8988 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
8989 0           my $text;
8990 0           my $lastsep="";
8991 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
8992 0           $expectation->at($_[1]);
8993            
8994 0           my $thisline;
8995 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
8996              
8997            
8998              
8999 0   0       while (!$_matched && !$commit)
9000             {
9001            
9002 0 0         Parse::RecDescent::_trace(q{Trying production: ['field' IDENT '\{' field_body '\}']},
9003             Parse::RecDescent::_tracefirst($_[1]),
9004             q{table_element_block},
9005             $tracelevel)
9006             if defined $::RD_TRACE;
9007 0           my $thisprod = $thisrule->{"prods"}[0];
9008 0           $text = $_[1];
9009 0           my $_savetext;
9010 0           @item = (q{table_element_block});
9011 0           %item = (__RULE__ => q{table_element_block});
9012 0           my $repcount = 0;
9013              
9014              
9015 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['field']},
9016             Parse::RecDescent::_tracefirst($text),
9017             q{table_element_block},
9018             $tracelevel)
9019             if defined $::RD_TRACE;
9020 0           $lastsep = "";
9021 0           $expectation->is(q{})->at($text);
9022            
9023              
9024 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Afield//)
  0 0          
9025             {
9026            
9027 0           $expectation->failed();
9028 0 0         Parse::RecDescent::_trace(qq{<>},
9029             Parse::RecDescent::_tracefirst($text))
9030             if defined $::RD_TRACE;
9031 0           last;
9032             }
9033 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9034             . $& . q{])},
9035             Parse::RecDescent::_tracefirst($text))
9036             if defined $::RD_TRACE;
9037 0           push @item, $item{__STRING1__}=$&;
9038            
9039              
9040            
9041              
9042 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
9043             Parse::RecDescent::_tracefirst($text),
9044             q{table_element_block},
9045             $tracelevel)
9046             if defined $::RD_TRACE;
9047 0           $_tok = do { $commit = 1 };
  0            
9048 0 0         if (defined($_tok))
9049             {
9050 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
9051             . $_tok . q{])},
9052             Parse::RecDescent::_tracefirst($text))
9053             if defined $::RD_TRACE;
9054             }
9055             else
9056             {
9057 0 0         Parse::RecDescent::_trace(q{<>},
9058             Parse::RecDescent::_tracefirst($text))
9059             if defined $::RD_TRACE;
9060             }
9061            
9062 0 0         last unless defined $_tok;
9063 0           push @item, $item{__DIRECTIVE1__}=$_tok;
9064            
9065              
9066 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
9067             Parse::RecDescent::_tracefirst($text),
9068             q{table_element_block},
9069             $tracelevel)
9070             if defined $::RD_TRACE;
9071 41     41   278 if (1) { no strict qw{refs};
  41         100  
  41         17486  
  0            
9072 0           $expectation->is(q{IDENT})->at($text);
9073 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9074             {
9075            
9076 0 0         Parse::RecDescent::_trace(q{<>},
9077             Parse::RecDescent::_tracefirst($text),
9078             q{table_element_block},
9079             $tracelevel)
9080             if defined $::RD_TRACE;
9081 0           $expectation->failed();
9082 0           last;
9083             }
9084 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
9085             . $_tok . q{]},
9086            
9087             Parse::RecDescent::_tracefirst($text),
9088             q{table_element_block},
9089             $tracelevel)
9090             if defined $::RD_TRACE;
9091 0           $item{q{IDENT}} = $_tok;
9092 0           push @item, $_tok;
9093            
9094             }
9095              
9096 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
9097             Parse::RecDescent::_tracefirst($text),
9098             q{table_element_block},
9099             $tracelevel)
9100             if defined $::RD_TRACE;
9101 0           $lastsep = "";
9102 0           $expectation->is(q{'\{'})->at($text);
9103            
9104              
9105 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
9106             {
9107            
9108 0           $expectation->failed();
9109 0 0         Parse::RecDescent::_trace(qq{<>},
9110             Parse::RecDescent::_tracefirst($text))
9111             if defined $::RD_TRACE;
9112 0           last;
9113             }
9114 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9115             . $& . q{])},
9116             Parse::RecDescent::_tracefirst($text))
9117             if defined $::RD_TRACE;
9118 0           push @item, $item{__STRING2__}=$&;
9119            
9120              
9121 0 0         Parse::RecDescent::_trace(q{Trying subrule: [field_body]},
9122             Parse::RecDescent::_tracefirst($text),
9123             q{table_element_block},
9124             $tracelevel)
9125             if defined $::RD_TRACE;
9126 41     41   242 if (1) { no strict qw{refs};
  41         175  
  41         41680  
  0            
9127 0           $expectation->is(q{field_body})->at($text);
9128 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::field_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9129             {
9130            
9131 0 0         Parse::RecDescent::_trace(q{<>},
9132             Parse::RecDescent::_tracefirst($text),
9133             q{table_element_block},
9134             $tracelevel)
9135             if defined $::RD_TRACE;
9136 0           $expectation->failed();
9137 0           last;
9138             }
9139 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [field_body]<< (return value: [}
9140             . $_tok . q{]},
9141            
9142             Parse::RecDescent::_tracefirst($text),
9143             q{table_element_block},
9144             $tracelevel)
9145             if defined $::RD_TRACE;
9146 0           $item{q{field_body}} = $_tok;
9147 0           push @item, $_tok;
9148            
9149             }
9150              
9151 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
9152             Parse::RecDescent::_tracefirst($text),
9153             q{table_element_block},
9154             $tracelevel)
9155             if defined $::RD_TRACE;
9156 0           $lastsep = "";
9157 0           $expectation->is(q{'\}'})->at($text);
9158            
9159              
9160 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
9161             {
9162            
9163 0           $expectation->failed();
9164 0 0         Parse::RecDescent::_trace(qq{<>},
9165             Parse::RecDescent::_tracefirst($text))
9166             if defined $::RD_TRACE;
9167 0           last;
9168             }
9169 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9170             . $& . q{])},
9171             Parse::RecDescent::_tracefirst($text))
9172             if defined $::RD_TRACE;
9173 0           push @item, $item{__STRING3__}=$&;
9174            
9175              
9176 0 0         Parse::RecDescent::_trace(q{Trying action},
9177             Parse::RecDescent::_tracefirst($text),
9178             q{table_element_block},
9179             $tracelevel)
9180             if defined $::RD_TRACE;
9181            
9182              
9183 0 0         $_tok = ($_noactions) ? 0 : do {
9184 0           bless {
9185             __IDENT__ => Bigtop::Parser->get_ident(),
9186             __TYPE__ => 'field',
9187             __NAME__ => $item{IDENT},
9188             __BODY__ =>
9189             $item{field_body}{'field_statement(s?)'},
9190             }, 'table_element_block'
9191             };
9192 0 0         unless (defined $_tok)
9193             {
9194 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
9195             if defined $::RD_TRACE;
9196 0           last;
9197             }
9198 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9199             . $_tok . q{])},
9200             Parse::RecDescent::_tracefirst($text))
9201             if defined $::RD_TRACE;
9202 0           push @item, $_tok;
9203 0           $item{__ACTION1__}=$_tok;
9204            
9205              
9206              
9207 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['field' IDENT '\{' field_body '\}']<<},
9208             Parse::RecDescent::_tracefirst($text),
9209             q{table_element_block},
9210             $tracelevel)
9211             if defined $::RD_TRACE;
9212 0           $_matched = 1;
9213 0           last;
9214             }
9215              
9216              
9217 0   0       while (!$_matched && !$commit)
9218             {
9219            
9220 0 0         Parse::RecDescent::_trace(q{Trying production: ['extra_sql' IDENT '\{' extra_sql_body '\}']},
9221             Parse::RecDescent::_tracefirst($_[1]),
9222             q{table_element_block},
9223             $tracelevel)
9224             if defined $::RD_TRACE;
9225 0           my $thisprod = $thisrule->{"prods"}[1];
9226 0           $text = $_[1];
9227 0           my $_savetext;
9228 0           @item = (q{table_element_block});
9229 0           %item = (__RULE__ => q{table_element_block});
9230 0           my $repcount = 0;
9231              
9232              
9233 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['extra_sql']},
9234             Parse::RecDescent::_tracefirst($text),
9235             q{table_element_block},
9236             $tracelevel)
9237             if defined $::RD_TRACE;
9238 0           $lastsep = "";
9239 0           $expectation->is(q{})->at($text);
9240            
9241              
9242 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aextra_sql//)
  0 0          
9243             {
9244            
9245 0           $expectation->failed();
9246 0 0         Parse::RecDescent::_trace(qq{<>},
9247             Parse::RecDescent::_tracefirst($text))
9248             if defined $::RD_TRACE;
9249 0           last;
9250             }
9251 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9252             . $& . q{])},
9253             Parse::RecDescent::_tracefirst($text))
9254             if defined $::RD_TRACE;
9255 0           push @item, $item{__STRING1__}=$&;
9256            
9257              
9258            
9259              
9260 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
9261             Parse::RecDescent::_tracefirst($text),
9262             q{table_element_block},
9263             $tracelevel)
9264             if defined $::RD_TRACE;
9265 0           $_tok = do { $commit = 1 };
  0            
9266 0 0         if (defined($_tok))
9267             {
9268 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
9269             . $_tok . q{])},
9270             Parse::RecDescent::_tracefirst($text))
9271             if defined $::RD_TRACE;
9272             }
9273             else
9274             {
9275 0 0         Parse::RecDescent::_trace(q{<>},
9276             Parse::RecDescent::_tracefirst($text))
9277             if defined $::RD_TRACE;
9278             }
9279            
9280 0 0         last unless defined $_tok;
9281 0           push @item, $item{__DIRECTIVE1__}=$_tok;
9282            
9283              
9284 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
9285             Parse::RecDescent::_tracefirst($text),
9286             q{table_element_block},
9287             $tracelevel)
9288             if defined $::RD_TRACE;
9289 41     41   305 if (1) { no strict qw{refs};
  41         88  
  41         17909  
  0            
9290 0           $expectation->is(q{IDENT})->at($text);
9291 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9292             {
9293            
9294 0 0         Parse::RecDescent::_trace(q{<>},
9295             Parse::RecDescent::_tracefirst($text),
9296             q{table_element_block},
9297             $tracelevel)
9298             if defined $::RD_TRACE;
9299 0           $expectation->failed();
9300 0           last;
9301             }
9302 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
9303             . $_tok . q{]},
9304            
9305             Parse::RecDescent::_tracefirst($text),
9306             q{table_element_block},
9307             $tracelevel)
9308             if defined $::RD_TRACE;
9309 0           $item{q{IDENT}} = $_tok;
9310 0           push @item, $_tok;
9311            
9312             }
9313              
9314 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
9315             Parse::RecDescent::_tracefirst($text),
9316             q{table_element_block},
9317             $tracelevel)
9318             if defined $::RD_TRACE;
9319 0           $lastsep = "";
9320 0           $expectation->is(q{'\{'})->at($text);
9321            
9322              
9323 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
9324             {
9325            
9326 0           $expectation->failed();
9327 0 0         Parse::RecDescent::_trace(qq{<>},
9328             Parse::RecDescent::_tracefirst($text))
9329             if defined $::RD_TRACE;
9330 0           last;
9331             }
9332 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9333             . $& . q{])},
9334             Parse::RecDescent::_tracefirst($text))
9335             if defined $::RD_TRACE;
9336 0           push @item, $item{__STRING2__}=$&;
9337            
9338              
9339 0 0         Parse::RecDescent::_trace(q{Trying subrule: [extra_sql_body]},
9340             Parse::RecDescent::_tracefirst($text),
9341             q{table_element_block},
9342             $tracelevel)
9343             if defined $::RD_TRACE;
9344 41     41   250 if (1) { no strict qw{refs};
  41         101  
  41         32870  
  0            
9345 0           $expectation->is(q{extra_sql_body})->at($text);
9346 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::extra_sql_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9347             {
9348            
9349 0 0         Parse::RecDescent::_trace(q{<>},
9350             Parse::RecDescent::_tracefirst($text),
9351             q{table_element_block},
9352             $tracelevel)
9353             if defined $::RD_TRACE;
9354 0           $expectation->failed();
9355 0           last;
9356             }
9357 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [extra_sql_body]<< (return value: [}
9358             . $_tok . q{]},
9359            
9360             Parse::RecDescent::_tracefirst($text),
9361             q{table_element_block},
9362             $tracelevel)
9363             if defined $::RD_TRACE;
9364 0           $item{q{extra_sql_body}} = $_tok;
9365 0           push @item, $_tok;
9366            
9367             }
9368              
9369 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
9370             Parse::RecDescent::_tracefirst($text),
9371             q{table_element_block},
9372             $tracelevel)
9373             if defined $::RD_TRACE;
9374 0           $lastsep = "";
9375 0           $expectation->is(q{'\}'})->at($text);
9376            
9377              
9378 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
9379             {
9380            
9381 0           $expectation->failed();
9382 0 0         Parse::RecDescent::_trace(qq{<>},
9383             Parse::RecDescent::_tracefirst($text))
9384             if defined $::RD_TRACE;
9385 0           last;
9386             }
9387 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9388             . $& . q{])},
9389             Parse::RecDescent::_tracefirst($text))
9390             if defined $::RD_TRACE;
9391 0           push @item, $item{__STRING3__}=$&;
9392            
9393              
9394 0 0         Parse::RecDescent::_trace(q{Trying action},
9395             Parse::RecDescent::_tracefirst($text),
9396             q{table_element_block},
9397             $tracelevel)
9398             if defined $::RD_TRACE;
9399            
9400              
9401 0 0         $_tok = ($_noactions) ? 0 : do {
9402 0           bless {
9403             __IDENT__ => Bigtop::Parser->get_ident(),
9404             __TYPE__ => 'extra_sql',
9405             __NAME__ => $item{IDENT},
9406             __BODY__ =>
9407             $item{extra_sql_body}
9408             {'extra_sql_statement(s?)'},
9409             }, 'extra_sql_block'
9410             };
9411 0 0         unless (defined $_tok)
9412             {
9413 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
9414             if defined $::RD_TRACE;
9415 0           last;
9416             }
9417 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9418             . $_tok . q{])},
9419             Parse::RecDescent::_tracefirst($text))
9420             if defined $::RD_TRACE;
9421 0           push @item, $_tok;
9422 0           $item{__ACTION1__}=$_tok;
9423            
9424              
9425              
9426 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['extra_sql' IDENT '\{' extra_sql_body '\}']<<},
9427             Parse::RecDescent::_tracefirst($text),
9428             q{table_element_block},
9429             $tracelevel)
9430             if defined $::RD_TRACE;
9431 0           $_matched = 1;
9432 0           last;
9433             }
9434              
9435              
9436 0   0       while (!$_matched && !$commit)
9437             {
9438            
9439 0 0         Parse::RecDescent::_trace(q{Trying production: [keyword arg_list SEMI_COLON]},
9440             Parse::RecDescent::_tracefirst($_[1]),
9441             q{table_element_block},
9442             $tracelevel)
9443             if defined $::RD_TRACE;
9444 0           my $thisprod = $thisrule->{"prods"}[2];
9445 0           $text = $_[1];
9446 0           my $_savetext;
9447 0           @item = (q{table_element_block});
9448 0           %item = (__RULE__ => q{table_element_block});
9449 0           my $repcount = 0;
9450              
9451              
9452 0 0         Parse::RecDescent::_trace(q{Trying subrule: [keyword]},
9453             Parse::RecDescent::_tracefirst($text),
9454             q{table_element_block},
9455             $tracelevel)
9456             if defined $::RD_TRACE;
9457 41     41   268 if (1) { no strict qw{refs};
  41         122  
  41         9464  
  0            
9458 0           $expectation->is(q{})->at($text);
9459 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::keyword($thisparser,$text,$repeating,$_noactions,sub { return ['table'] })))
  0            
9460             {
9461            
9462 0 0         Parse::RecDescent::_trace(q{<>},
9463             Parse::RecDescent::_tracefirst($text),
9464             q{table_element_block},
9465             $tracelevel)
9466             if defined $::RD_TRACE;
9467 0           $expectation->failed();
9468 0           last;
9469             }
9470 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [keyword]<< (return value: [}
9471             . $_tok . q{]},
9472            
9473             Parse::RecDescent::_tracefirst($text),
9474             q{table_element_block},
9475             $tracelevel)
9476             if defined $::RD_TRACE;
9477 0           $item{q{keyword}} = $_tok;
9478 0           push @item, $_tok;
9479            
9480             }
9481              
9482 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_list]},
9483             Parse::RecDescent::_tracefirst($text),
9484             q{table_element_block},
9485             $tracelevel)
9486             if defined $::RD_TRACE;
9487 41     41   243 if (1) { no strict qw{refs};
  41         93  
  41         11046  
  0            
9488 0           $expectation->is(q{arg_list})->at($text);
9489 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9490             {
9491            
9492 0 0         Parse::RecDescent::_trace(q{<>},
9493             Parse::RecDescent::_tracefirst($text),
9494             q{table_element_block},
9495             $tracelevel)
9496             if defined $::RD_TRACE;
9497 0           $expectation->failed();
9498 0           last;
9499             }
9500 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_list]<< (return value: [}
9501             . $_tok . q{]},
9502            
9503             Parse::RecDescent::_tracefirst($text),
9504             q{table_element_block},
9505             $tracelevel)
9506             if defined $::RD_TRACE;
9507 0           $item{q{arg_list}} = $_tok;
9508 0           push @item, $_tok;
9509            
9510             }
9511              
9512 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
9513             Parse::RecDescent::_tracefirst($text),
9514             q{table_element_block},
9515             $tracelevel)
9516             if defined $::RD_TRACE;
9517 41     41   235 if (1) { no strict qw{refs};
  41         89  
  41         63224  
  0            
9518 0           $expectation->is(q{SEMI_COLON})->at($text);
9519 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9520             {
9521            
9522 0 0         Parse::RecDescent::_trace(q{<>},
9523             Parse::RecDescent::_tracefirst($text),
9524             q{table_element_block},
9525             $tracelevel)
9526             if defined $::RD_TRACE;
9527 0           $expectation->failed();
9528 0           last;
9529             }
9530 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
9531             . $_tok . q{]},
9532            
9533             Parse::RecDescent::_tracefirst($text),
9534             q{table_element_block},
9535             $tracelevel)
9536             if defined $::RD_TRACE;
9537 0           $item{q{SEMI_COLON}} = $_tok;
9538 0           push @item, $_tok;
9539            
9540             }
9541              
9542 0 0         Parse::RecDescent::_trace(q{Trying action},
9543             Parse::RecDescent::_tracefirst($text),
9544             q{table_element_block},
9545             $tracelevel)
9546             if defined $::RD_TRACE;
9547            
9548              
9549 0 0         $_tok = ($_noactions) ? 0 : do {
9550 0           bless {
9551             __TYPE__ => $item[1],
9552             __ARGS__ => $item[2],
9553             __BODY__ => $item[1],
9554             }, 'table_element_block'
9555             };
9556 0 0         unless (defined $_tok)
9557             {
9558 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
9559             if defined $::RD_TRACE;
9560 0           last;
9561             }
9562 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9563             . $_tok . q{])},
9564             Parse::RecDescent::_tracefirst($text))
9565             if defined $::RD_TRACE;
9566 0           push @item, $_tok;
9567 0           $item{__ACTION1__}=$_tok;
9568            
9569              
9570              
9571 0 0         Parse::RecDescent::_trace(q{>>Matched production: [keyword arg_list SEMI_COLON]<<},
9572             Parse::RecDescent::_tracefirst($text),
9573             q{table_element_block},
9574             $tracelevel)
9575             if defined $::RD_TRACE;
9576 0           $_matched = 1;
9577 0           last;
9578             }
9579              
9580              
9581 0           while (!$_matched)
9582             {
9583            
9584 0 0         Parse::RecDescent::_trace(q{Trying production: []},
9585             Parse::RecDescent::_tracefirst($_[1]),
9586             q{table_element_block},
9587             $tracelevel)
9588             if defined $::RD_TRACE;
9589 0           my $thisprod = $thisrule->{"prods"}[3];
9590            
9591 0           my $_savetext;
9592 0           @item = (q{table_element_block});
9593 0           %item = (__RULE__ => q{table_element_block});
9594 0           my $repcount = 0;
9595              
9596              
9597            
9598              
9599 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
9600             Parse::RecDescent::_tracefirst($text),
9601             q{table_element_block},
9602             $tracelevel)
9603             if defined $::RD_TRACE;
9604 0 0         $_tok = do { if (1) { do {
  0            
  0            
9605 0           my $rule = $item[0];
9606 0           $rule =~ s/_/ /g;
9607             #WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
9608 0           push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
  0            
9609 0           } unless $_noactions; undef } else {0} };
9610 0 0         if (defined($_tok))
9611             {
9612 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
9613             . $_tok . q{])},
9614             Parse::RecDescent::_tracefirst($text))
9615             if defined $::RD_TRACE;
9616             }
9617             else
9618             {
9619 0 0         Parse::RecDescent::_trace(q{<>},
9620             Parse::RecDescent::_tracefirst($text))
9621             if defined $::RD_TRACE;
9622             }
9623            
9624 0 0         last unless defined $_tok;
9625 0           push @item, $item{__DIRECTIVE1__}=$_tok;
9626            
9627              
9628 0 0         Parse::RecDescent::_trace(q{Trying action},
9629             Parse::RecDescent::_tracefirst($text),
9630             q{table_element_block},
9631             $tracelevel)
9632             if defined $::RD_TRACE;
9633            
9634              
9635 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
9636 0 0         unless (defined $_tok)
9637             {
9638 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
9639             if defined $::RD_TRACE;
9640 0           last;
9641             }
9642 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9643             . $_tok . q{])},
9644             Parse::RecDescent::_tracefirst($text))
9645             if defined $::RD_TRACE;
9646 0           push @item, $_tok;
9647            
9648            
9649              
9650              
9651 0 0         Parse::RecDescent::_trace(q{>>Matched production: []<<},
9652             Parse::RecDescent::_tracefirst($text),
9653             q{table_element_block},
9654             $tracelevel)
9655             if defined $::RD_TRACE;
9656 0           $_matched = 1;
9657 0           last;
9658             }
9659              
9660              
9661 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
9662             {
9663            
9664              
9665 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
9666 0 0         Parse::RecDescent::_trace(q{<>},
9667             Parse::RecDescent::_tracefirst($_[1]),
9668             q{table_element_block},
9669             $tracelevel)
9670             if defined $::RD_TRACE;
9671 0           return undef;
9672             }
9673 0 0 0       if (!defined($return) && defined($score))
9674             {
9675 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
9676             q{table_element_block},
9677             $tracelevel)
9678             if defined $::RD_TRACE;
9679 0           $return = $score_return;
9680             }
9681 0           splice @{$thisparser->{errors}}, $err_at;
  0            
9682 0 0         $return = $item[$#item] unless defined $return;
9683 0 0         if (defined $::RD_TRACE)
9684             {
9685 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
9686             $return . q{])}, "",
9687             q{table_element_block},
9688             $tracelevel);
9689 0           Parse::RecDescent::_trace(q{(consumed: [} .
9690             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
9691             Parse::RecDescent::_tracefirst($text),
9692             , q{table_element_block},
9693             $tracelevel)
9694             }
9695 0           $_[1] = $text;
9696 0           return $return;
9697             }
9698              
9699             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
9700             sub Parse::RecDescent::Bigtop::Grammar::text
9701             {
9702 0     0     my $thisparser = $_[0];
9703 41     41   283 use vars q{$tracelevel};
  41         97  
  41         47395  
9704 0   0       local $tracelevel = ($tracelevel||0)+1;
9705 0           $ERRORS = 0;
9706 0           my $thisrule = $thisparser->{"rules"}{"text"};
9707            
9708 0 0         Parse::RecDescent::_trace(q{Trying rule: [text]},
9709             Parse::RecDescent::_tracefirst($_[1]),
9710             q{text},
9711             $tracelevel)
9712             if defined $::RD_TRACE;
9713              
9714            
9715 0           my $err_at = @{$thisparser->{errors}};
  0            
9716              
9717 0           my $score;
9718             my $score_return;
9719 0           my $_tok;
9720 0           my $return = undef;
9721 0           my $_matched=0;
9722 0           my $commit=0;
9723 0           my @item = ();
9724 0           my %item = ();
9725 0   0       my $repeating = defined($_[2]) && $_[2];
9726 0   0       my $_noactions = defined($_[3]) && $_[3];
9727 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
9728 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
9729 0           my $text;
9730 0           my $lastsep="";
9731 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
9732 0           $expectation->at($_[1]);
9733            
9734 0           my $thisline;
9735 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
9736              
9737            
9738              
9739 0   0       while (!$_matched && !$commit)
9740             {
9741            
9742 0 0         Parse::RecDescent::_trace(q{Trying production: [/[^`]*/]},
9743             Parse::RecDescent::_tracefirst($_[1]),
9744             q{text},
9745             $tracelevel)
9746             if defined $::RD_TRACE;
9747 0           my $thisprod = $thisrule->{"prods"}[0];
9748 0           $text = $_[1];
9749 0           my $_savetext;
9750 0           @item = (q{text});
9751 0           %item = (__RULE__ => q{text});
9752 0           my $repcount = 0;
9753              
9754              
9755 0 0         Parse::RecDescent::_trace(q{Trying terminal: [/[^`]*/]}, Parse::RecDescent::_tracefirst($text),
9756             q{text},
9757             $tracelevel)
9758             if defined $::RD_TRACE;
9759 0           $lastsep = "";
9760 0           $expectation->is(q{})->at($text);
9761            
9762              
9763 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[^`]*)//)
  0 0          
9764             {
9765            
9766 0           $expectation->failed();
9767 0 0         Parse::RecDescent::_trace(q{<>},
9768             Parse::RecDescent::_tracefirst($text))
9769             if defined $::RD_TRACE;
9770              
9771 0           last;
9772             }
9773 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9774             . $& . q{])},
9775             Parse::RecDescent::_tracefirst($text))
9776             if defined $::RD_TRACE;
9777 0           push @item, $item{__PATTERN1__}=$&;
9778            
9779              
9780 0 0         Parse::RecDescent::_trace(q{Trying action},
9781             Parse::RecDescent::_tracefirst($text),
9782             q{text},
9783             $tracelevel)
9784             if defined $::RD_TRACE;
9785            
9786              
9787 0 0         $_tok = ($_noactions) ? 0 : do {
9788 0           my @lines = split /\n/, $item[1];
9789 0 0         if ( @lines > 1 ) {
9790 0           $backtick_warning
9791             = "possible run-away string beginning on line "
9792             . "$backtick_line.";
9793             }
9794 0           $item[1];
9795             };
9796 0 0         unless (defined $_tok)
9797             {
9798 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
9799             if defined $::RD_TRACE;
9800 0           last;
9801             }
9802 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
9803             . $_tok . q{])},
9804             Parse::RecDescent::_tracefirst($text))
9805             if defined $::RD_TRACE;
9806 0           push @item, $_tok;
9807 0           $item{__ACTION1__}=$_tok;
9808            
9809              
9810              
9811 0 0         Parse::RecDescent::_trace(q{>>Matched production: [/[^`]*/]<<},
9812             Parse::RecDescent::_tracefirst($text),
9813             q{text},
9814             $tracelevel)
9815             if defined $::RD_TRACE;
9816 0           $_matched = 1;
9817 0           last;
9818             }
9819              
9820              
9821 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
9822             {
9823            
9824              
9825 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
9826 0 0         Parse::RecDescent::_trace(q{<>},
9827             Parse::RecDescent::_tracefirst($_[1]),
9828             q{text},
9829             $tracelevel)
9830             if defined $::RD_TRACE;
9831 0           return undef;
9832             }
9833 0 0 0       if (!defined($return) && defined($score))
9834             {
9835 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
9836             q{text},
9837             $tracelevel)
9838             if defined $::RD_TRACE;
9839 0           $return = $score_return;
9840             }
9841 0           splice @{$thisparser->{errors}}, $err_at;
  0            
9842 0 0         $return = $item[$#item] unless defined $return;
9843 0 0         if (defined $::RD_TRACE)
9844             {
9845 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
9846             $return . q{])}, "",
9847             q{text},
9848             $tracelevel);
9849 0           Parse::RecDescent::_trace(q{(consumed: [} .
9850             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
9851             Parse::RecDescent::_tracefirst($text),
9852             , q{text},
9853             $tracelevel)
9854             }
9855 0           $_[1] = $text;
9856 0           return $return;
9857             }
9858              
9859             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
9860             sub Parse::RecDescent::Bigtop::Grammar::sequence_statement
9861             {
9862 0     0     my $thisparser = $_[0];
9863 41     41   279 use vars q{$tracelevel};
  41         97  
  41         16347  
9864 0   0       local $tracelevel = ($tracelevel||0)+1;
9865 0           $ERRORS = 0;
9866 0           my $thisrule = $thisparser->{"rules"}{"sequence_statement"};
9867            
9868 0 0         Parse::RecDescent::_trace(q{Trying rule: [sequence_statement]},
9869             Parse::RecDescent::_tracefirst($_[1]),
9870             q{sequence_statement},
9871             $tracelevel)
9872             if defined $::RD_TRACE;
9873              
9874            
9875 0           my $err_at = @{$thisparser->{errors}};
  0            
9876              
9877 0           my $score;
9878             my $score_return;
9879 0           my $_tok;
9880 0           my $return = undef;
9881 0           my $_matched=0;
9882 0           my $commit=0;
9883 0           my @item = ();
9884 0           my %item = ();
9885 0   0       my $repeating = defined($_[2]) && $_[2];
9886 0   0       my $_noactions = defined($_[3]) && $_[3];
9887 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
9888 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
9889 0           my $text;
9890 0           my $lastsep="";
9891 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
9892 0           $expectation->at($_[1]);
9893            
9894 0           my $thisline;
9895 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
9896              
9897            
9898              
9899 0   0       while (!$_matched && !$commit)
9900             {
9901            
9902 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT arg_list SEMI_COLON]},
9903             Parse::RecDescent::_tracefirst($_[1]),
9904             q{sequence_statement},
9905             $tracelevel)
9906             if defined $::RD_TRACE;
9907 0           my $thisprod = $thisrule->{"prods"}[0];
9908 0           $text = $_[1];
9909 0           my $_savetext;
9910 0           @item = (q{sequence_statement});
9911 0           %item = (__RULE__ => q{sequence_statement});
9912 0           my $repcount = 0;
9913              
9914              
9915 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
9916             Parse::RecDescent::_tracefirst($text),
9917             q{sequence_statement},
9918             $tracelevel)
9919             if defined $::RD_TRACE;
9920 41     41   245 if (1) { no strict qw{refs};
  41         96  
  41         9133  
  0            
9921 0           $expectation->is(q{})->at($text);
9922 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9923             {
9924            
9925 0 0         Parse::RecDescent::_trace(q{<>},
9926             Parse::RecDescent::_tracefirst($text),
9927             q{sequence_statement},
9928             $tracelevel)
9929             if defined $::RD_TRACE;
9930 0           $expectation->failed();
9931 0           last;
9932             }
9933 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
9934             . $_tok . q{]},
9935            
9936             Parse::RecDescent::_tracefirst($text),
9937             q{sequence_statement},
9938             $tracelevel)
9939             if defined $::RD_TRACE;
9940 0           $item{q{IDENT}} = $_tok;
9941 0           push @item, $_tok;
9942            
9943             }
9944              
9945 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_list]},
9946             Parse::RecDescent::_tracefirst($text),
9947             q{sequence_statement},
9948             $tracelevel)
9949             if defined $::RD_TRACE;
9950 41     41   259 if (1) { no strict qw{refs};
  41         102  
  41         9211  
  0            
9951 0           $expectation->is(q{arg_list})->at($text);
9952 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9953             {
9954            
9955 0 0         Parse::RecDescent::_trace(q{<>},
9956             Parse::RecDescent::_tracefirst($text),
9957             q{sequence_statement},
9958             $tracelevel)
9959             if defined $::RD_TRACE;
9960 0           $expectation->failed();
9961 0           last;
9962             }
9963 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_list]<< (return value: [}
9964             . $_tok . q{]},
9965            
9966             Parse::RecDescent::_tracefirst($text),
9967             q{sequence_statement},
9968             $tracelevel)
9969             if defined $::RD_TRACE;
9970 0           $item{q{arg_list}} = $_tok;
9971 0           push @item, $_tok;
9972            
9973             }
9974              
9975 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
9976             Parse::RecDescent::_tracefirst($text),
9977             q{sequence_statement},
9978             $tracelevel)
9979             if defined $::RD_TRACE;
9980 41     41   230 if (1) { no strict qw{refs};
  41         87  
  41         28043  
  0            
9981 0           $expectation->is(q{SEMI_COLON})->at($text);
9982 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
9983             {
9984            
9985 0 0         Parse::RecDescent::_trace(q{<>},
9986             Parse::RecDescent::_tracefirst($text),
9987             q{sequence_statement},
9988             $tracelevel)
9989             if defined $::RD_TRACE;
9990 0           $expectation->failed();
9991 0           last;
9992             }
9993 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
9994             . $_tok . q{]},
9995            
9996             Parse::RecDescent::_tracefirst($text),
9997             q{sequence_statement},
9998             $tracelevel)
9999             if defined $::RD_TRACE;
10000 0           $item{q{SEMI_COLON}} = $_tok;
10001 0           push @item, $_tok;
10002            
10003             }
10004              
10005 0 0         Parse::RecDescent::_trace(q{Trying action},
10006             Parse::RecDescent::_tracefirst($text),
10007             q{sequence_statement},
10008             $tracelevel)
10009             if defined $::RD_TRACE;
10010            
10011              
10012 0 0         $_tok = ($_noactions) ? 0 : do {
10013 0           bless {
10014             __NAME__ => $item[1], __ARGS__ => $item{arg_list}
10015             }, 'sequence_statement'
10016             };
10017 0 0         unless (defined $_tok)
10018             {
10019 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
10020             if defined $::RD_TRACE;
10021 0           last;
10022             }
10023 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10024             . $_tok . q{])},
10025             Parse::RecDescent::_tracefirst($text))
10026             if defined $::RD_TRACE;
10027 0           push @item, $_tok;
10028 0           $item{__ACTION1__}=$_tok;
10029            
10030              
10031              
10032 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT arg_list SEMI_COLON]<<},
10033             Parse::RecDescent::_tracefirst($text),
10034             q{sequence_statement},
10035             $tracelevel)
10036             if defined $::RD_TRACE;
10037 0           $_matched = 1;
10038 0           last;
10039             }
10040              
10041              
10042 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
10043             {
10044            
10045              
10046 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
10047 0 0         Parse::RecDescent::_trace(q{<>},
10048             Parse::RecDescent::_tracefirst($_[1]),
10049             q{sequence_statement},
10050             $tracelevel)
10051             if defined $::RD_TRACE;
10052 0           return undef;
10053             }
10054 0 0 0       if (!defined($return) && defined($score))
10055             {
10056 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
10057             q{sequence_statement},
10058             $tracelevel)
10059             if defined $::RD_TRACE;
10060 0           $return = $score_return;
10061             }
10062 0           splice @{$thisparser->{errors}}, $err_at;
  0            
10063 0 0         $return = $item[$#item] unless defined $return;
10064 0 0         if (defined $::RD_TRACE)
10065             {
10066 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
10067             $return . q{])}, "",
10068             q{sequence_statement},
10069             $tracelevel);
10070 0           Parse::RecDescent::_trace(q{(consumed: [} .
10071             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
10072             Parse::RecDescent::_tracefirst($text),
10073             , q{sequence_statement},
10074             $tracelevel)
10075             }
10076 0           $_[1] = $text;
10077 0           return $return;
10078             }
10079              
10080             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10081             sub Parse::RecDescent::Bigtop::Grammar::module_ident
10082             {
10083 0     0     my $thisparser = $_[0];
10084 41     41   287 use vars q{$tracelevel};
  41         103  
  41         28069  
10085 0   0       local $tracelevel = ($tracelevel||0)+1;
10086 0           $ERRORS = 0;
10087 0           my $thisrule = $thisparser->{"rules"}{"module_ident"};
10088            
10089 0 0         Parse::RecDescent::_trace(q{Trying rule: [module_ident]},
10090             Parse::RecDescent::_tracefirst($_[1]),
10091             q{module_ident},
10092             $tracelevel)
10093             if defined $::RD_TRACE;
10094              
10095            
10096 0           my $err_at = @{$thisparser->{errors}};
  0            
10097              
10098 0           my $score;
10099             my $score_return;
10100 0           my $_tok;
10101 0           my $return = undef;
10102 0           my $_matched=0;
10103 0           my $commit=0;
10104 0           my @item = ();
10105 0           my %item = ();
10106 0   0       my $repeating = defined($_[2]) && $_[2];
10107 0   0       my $_noactions = defined($_[3]) && $_[3];
10108 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
10109 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10110 0           my $text;
10111 0           my $lastsep="";
10112 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10113 0           $expectation->at($_[1]);
10114            
10115 0           my $thisline;
10116 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10117              
10118            
10119              
10120 0   0       while (!$_matched && !$commit)
10121             {
10122            
10123 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT '::' module_ident]},
10124             Parse::RecDescent::_tracefirst($_[1]),
10125             q{module_ident},
10126             $tracelevel)
10127             if defined $::RD_TRACE;
10128 0           my $thisprod = $thisrule->{"prods"}[0];
10129 0           $text = $_[1];
10130 0           my $_savetext;
10131 0           @item = (q{module_ident});
10132 0           %item = (__RULE__ => q{module_ident});
10133 0           my $repcount = 0;
10134              
10135              
10136 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
10137             Parse::RecDescent::_tracefirst($text),
10138             q{module_ident},
10139             $tracelevel)
10140             if defined $::RD_TRACE;
10141 41     41   274 if (1) { no strict qw{refs};
  41         89  
  41         17404  
  0            
10142 0           $expectation->is(q{})->at($text);
10143 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
10144             {
10145            
10146 0 0         Parse::RecDescent::_trace(q{<>},
10147             Parse::RecDescent::_tracefirst($text),
10148             q{module_ident},
10149             $tracelevel)
10150             if defined $::RD_TRACE;
10151 0           $expectation->failed();
10152 0           last;
10153             }
10154 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
10155             . $_tok . q{]},
10156            
10157             Parse::RecDescent::_tracefirst($text),
10158             q{module_ident},
10159             $tracelevel)
10160             if defined $::RD_TRACE;
10161 0           $item{q{IDENT}} = $_tok;
10162 0           push @item, $_tok;
10163            
10164             }
10165              
10166 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['::']},
10167             Parse::RecDescent::_tracefirst($text),
10168             q{module_ident},
10169             $tracelevel)
10170             if defined $::RD_TRACE;
10171 0           $lastsep = "";
10172 0           $expectation->is(q{'::'})->at($text);
10173            
10174              
10175 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\:\://)
  0 0          
10176             {
10177            
10178 0           $expectation->failed();
10179 0 0         Parse::RecDescent::_trace(qq{<>},
10180             Parse::RecDescent::_tracefirst($text))
10181             if defined $::RD_TRACE;
10182 0           last;
10183             }
10184 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10185             . $& . q{])},
10186             Parse::RecDescent::_tracefirst($text))
10187             if defined $::RD_TRACE;
10188 0           push @item, $item{__STRING1__}=$&;
10189            
10190              
10191 0 0         Parse::RecDescent::_trace(q{Trying subrule: [module_ident]},
10192             Parse::RecDescent::_tracefirst($text),
10193             q{module_ident},
10194             $tracelevel)
10195             if defined $::RD_TRACE;
10196 41     41   285 if (1) { no strict qw{refs};
  41         171  
  41         20555  
  0            
10197 0           $expectation->is(q{module_ident})->at($text);
10198 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::module_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
10199             {
10200            
10201 0 0         Parse::RecDescent::_trace(q{<>},
10202             Parse::RecDescent::_tracefirst($text),
10203             q{module_ident},
10204             $tracelevel)
10205             if defined $::RD_TRACE;
10206 0           $expectation->failed();
10207 0           last;
10208             }
10209 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [module_ident]<< (return value: [}
10210             . $_tok . q{]},
10211            
10212             Parse::RecDescent::_tracefirst($text),
10213             q{module_ident},
10214             $tracelevel)
10215             if defined $::RD_TRACE;
10216 0           $item{q{module_ident}} = $_tok;
10217 0           push @item, $_tok;
10218            
10219             }
10220              
10221 0 0         Parse::RecDescent::_trace(q{Trying action},
10222             Parse::RecDescent::_tracefirst($text),
10223             q{module_ident},
10224             $tracelevel)
10225             if defined $::RD_TRACE;
10226            
10227              
10228 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] . '::' . $item[3] };
  0            
10229 0 0         unless (defined $_tok)
10230             {
10231 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
10232             if defined $::RD_TRACE;
10233 0           last;
10234             }
10235 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10236             . $_tok . q{])},
10237             Parse::RecDescent::_tracefirst($text))
10238             if defined $::RD_TRACE;
10239 0           push @item, $_tok;
10240 0           $item{__ACTION1__}=$_tok;
10241            
10242              
10243              
10244 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT '::' module_ident]<<},
10245             Parse::RecDescent::_tracefirst($text),
10246             q{module_ident},
10247             $tracelevel)
10248             if defined $::RD_TRACE;
10249 0           $_matched = 1;
10250 0           last;
10251             }
10252              
10253              
10254 0   0       while (!$_matched && !$commit)
10255             {
10256            
10257 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT]},
10258             Parse::RecDescent::_tracefirst($_[1]),
10259             q{module_ident},
10260             $tracelevel)
10261             if defined $::RD_TRACE;
10262 0           my $thisprod = $thisrule->{"prods"}[1];
10263 0           $text = $_[1];
10264 0           my $_savetext;
10265 0           @item = (q{module_ident});
10266 0           %item = (__RULE__ => q{module_ident});
10267 0           my $repcount = 0;
10268              
10269              
10270 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
10271             Parse::RecDescent::_tracefirst($text),
10272             q{module_ident},
10273             $tracelevel)
10274             if defined $::RD_TRACE;
10275 41     41   263 if (1) { no strict qw{refs};
  41         102  
  41         36391  
  0            
10276 0           $expectation->is(q{})->at($text);
10277 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
10278             {
10279            
10280 0 0         Parse::RecDescent::_trace(q{<>},
10281             Parse::RecDescent::_tracefirst($text),
10282             q{module_ident},
10283             $tracelevel)
10284             if defined $::RD_TRACE;
10285 0           $expectation->failed();
10286 0           last;
10287             }
10288 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
10289             . $_tok . q{]},
10290            
10291             Parse::RecDescent::_tracefirst($text),
10292             q{module_ident},
10293             $tracelevel)
10294             if defined $::RD_TRACE;
10295 0           $item{q{IDENT}} = $_tok;
10296 0           push @item, $_tok;
10297            
10298             }
10299              
10300 0 0         Parse::RecDescent::_trace(q{Trying action},
10301             Parse::RecDescent::_tracefirst($text),
10302             q{module_ident},
10303             $tracelevel)
10304             if defined $::RD_TRACE;
10305            
10306              
10307 0 0         $_tok = ($_noactions) ? 0 : do { $item[1] };
  0            
10308 0 0         unless (defined $_tok)
10309             {
10310 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
10311             if defined $::RD_TRACE;
10312 0           last;
10313             }
10314 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10315             . $_tok . q{])},
10316             Parse::RecDescent::_tracefirst($text))
10317             if defined $::RD_TRACE;
10318 0           push @item, $_tok;
10319 0           $item{__ACTION1__}=$_tok;
10320            
10321              
10322              
10323 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT]<<},
10324             Parse::RecDescent::_tracefirst($text),
10325             q{module_ident},
10326             $tracelevel)
10327             if defined $::RD_TRACE;
10328 0           $_matched = 1;
10329 0           last;
10330             }
10331              
10332              
10333 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
10334             {
10335            
10336              
10337 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
10338 0 0         Parse::RecDescent::_trace(q{<>},
10339             Parse::RecDescent::_tracefirst($_[1]),
10340             q{module_ident},
10341             $tracelevel)
10342             if defined $::RD_TRACE;
10343 0           return undef;
10344             }
10345 0 0 0       if (!defined($return) && defined($score))
10346             {
10347 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
10348             q{module_ident},
10349             $tracelevel)
10350             if defined $::RD_TRACE;
10351 0           $return = $score_return;
10352             }
10353 0           splice @{$thisparser->{errors}}, $err_at;
  0            
10354 0 0         $return = $item[$#item] unless defined $return;
10355 0 0         if (defined $::RD_TRACE)
10356             {
10357 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
10358             $return . q{])}, "",
10359             q{module_ident},
10360             $tracelevel);
10361 0           Parse::RecDescent::_trace(q{(consumed: [} .
10362             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
10363             Parse::RecDescent::_tracefirst($text),
10364             , q{module_ident},
10365             $tracelevel)
10366             }
10367 0           $_[1] = $text;
10368 0           return $return;
10369             }
10370              
10371             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10372             sub Parse::RecDescent::Bigtop::Grammar::bigtop_file
10373             {
10374 0     0     my $thisparser = $_[0];
10375 41     41   268 use vars q{$tracelevel};
  41         150  
  41         17592  
10376 0   0       local $tracelevel = ($tracelevel||0)+1;
10377 0           $ERRORS = 0;
10378 0           my $thisrule = $thisparser->{"rules"}{"bigtop_file"};
10379            
10380 0 0         Parse::RecDescent::_trace(q{Trying rule: [bigtop_file]},
10381             Parse::RecDescent::_tracefirst($_[1]),
10382             q{bigtop_file},
10383             $tracelevel)
10384             if defined $::RD_TRACE;
10385              
10386            
10387 0           my $err_at = @{$thisparser->{errors}};
  0            
10388              
10389 0           my $score;
10390             my $score_return;
10391 0           my $_tok;
10392 0           my $return = undef;
10393 0           my $_matched=0;
10394 0           my $commit=0;
10395 0           my @item = ();
10396 0           my %item = ();
10397 0   0       my $repeating = defined($_[2]) && $_[2];
10398 0   0       my $_noactions = defined($_[3]) && $_[3];
10399 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
10400 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10401 0           my $text;
10402 0           my $lastsep="";
10403 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10404 0           $expectation->at($_[1]);
10405            
10406 0           my $thisline;
10407 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10408              
10409            
10410              
10411 0   0       while (!$_matched && !$commit)
10412             {
10413            
10414 0 0         Parse::RecDescent::_trace(q{Trying production: [configuration application]},
10415             Parse::RecDescent::_tracefirst($_[1]),
10416             q{bigtop_file},
10417             $tracelevel)
10418             if defined $::RD_TRACE;
10419 0           my $thisprod = $thisrule->{"prods"}[0];
10420 0           $text = $_[1];
10421 0           my $_savetext;
10422 0           @item = (q{bigtop_file});
10423 0           %item = (__RULE__ => q{bigtop_file});
10424 0           my $repcount = 0;
10425              
10426              
10427 0 0         Parse::RecDescent::_trace(q{Trying subrule: [configuration]},
10428             Parse::RecDescent::_tracefirst($text),
10429             q{bigtop_file},
10430             $tracelevel)
10431             if defined $::RD_TRACE;
10432 41     41   244 if (1) { no strict qw{refs};
  41         92  
  41         8434  
  0            
10433 0           $expectation->is(q{})->at($text);
10434 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::configuration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
10435             {
10436            
10437 0 0         Parse::RecDescent::_trace(q{<>},
10438             Parse::RecDescent::_tracefirst($text),
10439             q{bigtop_file},
10440             $tracelevel)
10441             if defined $::RD_TRACE;
10442 0           $expectation->failed();
10443 0           last;
10444             }
10445 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [configuration]<< (return value: [}
10446             . $_tok . q{]},
10447            
10448             Parse::RecDescent::_tracefirst($text),
10449             q{bigtop_file},
10450             $tracelevel)
10451             if defined $::RD_TRACE;
10452 0           $item{q{configuration}} = $_tok;
10453 0           push @item, $_tok;
10454            
10455             }
10456              
10457 0 0         Parse::RecDescent::_trace(q{Trying subrule: [application]},
10458             Parse::RecDescent::_tracefirst($text),
10459             q{bigtop_file},
10460             $tracelevel)
10461             if defined $::RD_TRACE;
10462 41     41   221 if (1) { no strict qw{refs};
  41         97  
  41         29081  
  0            
10463 0           $expectation->is(q{application})->at($text);
10464 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::application($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
10465             {
10466            
10467 0 0         Parse::RecDescent::_trace(q{<>},
10468             Parse::RecDescent::_tracefirst($text),
10469             q{bigtop_file},
10470             $tracelevel)
10471             if defined $::RD_TRACE;
10472 0           $expectation->failed();
10473 0           last;
10474             }
10475 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [application]<< (return value: [}
10476             . $_tok . q{]},
10477            
10478             Parse::RecDescent::_tracefirst($text),
10479             q{bigtop_file},
10480             $tracelevel)
10481             if defined $::RD_TRACE;
10482 0           $item{q{application}} = $_tok;
10483 0           push @item, $_tok;
10484            
10485             }
10486              
10487 0 0         Parse::RecDescent::_trace(q{Trying action},
10488             Parse::RecDescent::_tracefirst($text),
10489             q{bigtop_file},
10490             $tracelevel)
10491             if defined $::RD_TRACE;
10492            
10493              
10494 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
10495 0 0         unless (defined $_tok)
10496             {
10497 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
10498             if defined $::RD_TRACE;
10499 0           last;
10500             }
10501 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10502             . $_tok . q{])},
10503             Parse::RecDescent::_tracefirst($text))
10504             if defined $::RD_TRACE;
10505 0           push @item, $_tok;
10506            
10507            
10508              
10509              
10510 0 0         Parse::RecDescent::_trace(q{>>Matched production: [configuration application]<<},
10511             Parse::RecDescent::_tracefirst($text),
10512             q{bigtop_file},
10513             $tracelevel)
10514             if defined $::RD_TRACE;
10515 0           $_matched = 1;
10516 0           last;
10517             }
10518              
10519              
10520 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
10521             {
10522            
10523              
10524 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
10525 0 0         Parse::RecDescent::_trace(q{<>},
10526             Parse::RecDescent::_tracefirst($_[1]),
10527             q{bigtop_file},
10528             $tracelevel)
10529             if defined $::RD_TRACE;
10530 0           return undef;
10531             }
10532 0 0 0       if (!defined($return) && defined($score))
10533             {
10534 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
10535             q{bigtop_file},
10536             $tracelevel)
10537             if defined $::RD_TRACE;
10538 0           $return = $score_return;
10539             }
10540 0           splice @{$thisparser->{errors}}, $err_at;
  0            
10541 0 0         $return = $item[$#item] unless defined $return;
10542 0 0         if (defined $::RD_TRACE)
10543             {
10544 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
10545             $return . q{])}, "",
10546             q{bigtop_file},
10547             $tracelevel);
10548 0           Parse::RecDescent::_trace(q{(consumed: [} .
10549             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
10550             Parse::RecDescent::_tracefirst($text),
10551             , q{bigtop_file},
10552             $tracelevel)
10553             }
10554 0           $_[1] = $text;
10555 0           return $return;
10556             }
10557              
10558             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10559             sub Parse::RecDescent::Bigtop::Grammar::sequence_body
10560             {
10561 0     0     my $thisparser = $_[0];
10562 41     41   270 use vars q{$tracelevel};
  41         99  
  41         40187  
10563 0   0       local $tracelevel = ($tracelevel||0)+1;
10564 0           $ERRORS = 0;
10565 0           my $thisrule = $thisparser->{"rules"}{"sequence_body"};
10566            
10567 0 0         Parse::RecDescent::_trace(q{Trying rule: [sequence_body]},
10568             Parse::RecDescent::_tracefirst($_[1]),
10569             q{sequence_body},
10570             $tracelevel)
10571             if defined $::RD_TRACE;
10572              
10573            
10574 0           my $err_at = @{$thisparser->{errors}};
  0            
10575              
10576 0           my $score;
10577             my $score_return;
10578 0           my $_tok;
10579 0           my $return = undef;
10580 0           my $_matched=0;
10581 0           my $commit=0;
10582 0           my @item = ();
10583 0           my %item = ();
10584 0   0       my $repeating = defined($_[2]) && $_[2];
10585 0   0       my $_noactions = defined($_[3]) && $_[3];
10586 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
10587 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10588 0           my $text;
10589 0           my $lastsep="";
10590 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10591 0           $expectation->at($_[1]);
10592            
10593 0           my $thisline;
10594 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10595              
10596            
10597              
10598 0   0       while (!$_matched && !$commit)
10599             {
10600            
10601 0 0         Parse::RecDescent::_trace(q{Trying production: [sequence_statement]},
10602             Parse::RecDescent::_tracefirst($_[1]),
10603             q{sequence_body},
10604             $tracelevel)
10605             if defined $::RD_TRACE;
10606 0           my $thisprod = $thisrule->{"prods"}[0];
10607 0           $text = $_[1];
10608 0           my $_savetext;
10609 0           @item = (q{sequence_body});
10610 0           %item = (__RULE__ => q{sequence_body});
10611 0           my $repcount = 0;
10612              
10613              
10614 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [sequence_statement]},
10615             Parse::RecDescent::_tracefirst($text),
10616             q{sequence_body},
10617             $tracelevel)
10618             if defined $::RD_TRACE;
10619 0           $expectation->is(q{})->at($text);
10620            
10621 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::sequence_statement, 0, 100000000, $_noactions,$expectation,undef)))
10622             {
10623 0 0         Parse::RecDescent::_trace(q{<>},
10624             Parse::RecDescent::_tracefirst($text),
10625             q{sequence_body},
10626             $tracelevel)
10627             if defined $::RD_TRACE;
10628 0           last;
10629             }
10630 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [sequence_statement]<< (}
10631             . @$_tok . q{ times)},
10632            
10633             Parse::RecDescent::_tracefirst($text),
10634             q{sequence_body},
10635             $tracelevel)
10636             if defined $::RD_TRACE;
10637 0           $item{q{sequence_statement(s?)}} = $_tok;
10638 0           push @item, $_tok;
10639            
10640              
10641              
10642 0 0         Parse::RecDescent::_trace(q{Trying action},
10643             Parse::RecDescent::_tracefirst($text),
10644             q{sequence_body},
10645             $tracelevel)
10646             if defined $::RD_TRACE;
10647            
10648              
10649 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
10650 0 0         unless (defined $_tok)
10651             {
10652 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
10653             if defined $::RD_TRACE;
10654 0           last;
10655             }
10656 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10657             . $_tok . q{])},
10658             Parse::RecDescent::_tracefirst($text))
10659             if defined $::RD_TRACE;
10660 0           push @item, $_tok;
10661            
10662            
10663              
10664              
10665 0 0         Parse::RecDescent::_trace(q{>>Matched production: [sequence_statement]<<},
10666             Parse::RecDescent::_tracefirst($text),
10667             q{sequence_body},
10668             $tracelevel)
10669             if defined $::RD_TRACE;
10670 0           $_matched = 1;
10671 0           last;
10672             }
10673              
10674              
10675 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
10676             {
10677            
10678              
10679 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
10680 0 0         Parse::RecDescent::_trace(q{<>},
10681             Parse::RecDescent::_tracefirst($_[1]),
10682             q{sequence_body},
10683             $tracelevel)
10684             if defined $::RD_TRACE;
10685 0           return undef;
10686             }
10687 0 0 0       if (!defined($return) && defined($score))
10688             {
10689 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
10690             q{sequence_body},
10691             $tracelevel)
10692             if defined $::RD_TRACE;
10693 0           $return = $score_return;
10694             }
10695 0           splice @{$thisparser->{errors}}, $err_at;
  0            
10696 0 0         $return = $item[$#item] unless defined $return;
10697 0 0         if (defined $::RD_TRACE)
10698             {
10699 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
10700             $return . q{])}, "",
10701             q{sequence_body},
10702             $tracelevel);
10703 0           Parse::RecDescent::_trace(q{(consumed: [} .
10704             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
10705             Parse::RecDescent::_tracefirst($text),
10706             , q{sequence_body},
10707             $tracelevel)
10708             }
10709 0           $_[1] = $text;
10710 0           return $return;
10711             }
10712              
10713             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
10714             sub Parse::RecDescent::Bigtop::Grammar::application
10715             {
10716 0     0     my $thisparser = $_[0];
10717 41     41   362 use vars q{$tracelevel};
  41         97  
  41         24045  
10718 0   0       local $tracelevel = ($tracelevel||0)+1;
10719 0           $ERRORS = 0;
10720 0           my $thisrule = $thisparser->{"rules"}{"application"};
10721            
10722 0 0         Parse::RecDescent::_trace(q{Trying rule: [application]},
10723             Parse::RecDescent::_tracefirst($_[1]),
10724             q{application},
10725             $tracelevel)
10726             if defined $::RD_TRACE;
10727              
10728            
10729 0           my $err_at = @{$thisparser->{errors}};
  0            
10730              
10731 0           my $score;
10732             my $score_return;
10733 0           my $_tok;
10734 0           my $return = undef;
10735 0           my $_matched=0;
10736 0           my $commit=0;
10737 0           my @item = ();
10738 0           my %item = ();
10739 0   0       my $repeating = defined($_[2]) && $_[2];
10740 0   0       my $_noactions = defined($_[3]) && $_[3];
10741 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
10742 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
10743 0           my $text;
10744 0           my $lastsep="";
10745 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
10746 0           $expectation->at($_[1]);
10747            
10748 0           my $thisline;
10749 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
10750              
10751            
10752              
10753 0   0       while (!$_matched && !$commit)
10754             {
10755            
10756 0 0         Parse::RecDescent::_trace(q{Trying production: ['app' module_ident '\{' app_body '\}']},
10757             Parse::RecDescent::_tracefirst($_[1]),
10758             q{application},
10759             $tracelevel)
10760             if defined $::RD_TRACE;
10761 0           my $thisprod = $thisrule->{"prods"}[0];
10762 0           $text = $_[1];
10763 0           my $_savetext;
10764 0           @item = (q{application});
10765 0           %item = (__RULE__ => q{application});
10766 0           my $repcount = 0;
10767              
10768              
10769 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['app']},
10770             Parse::RecDescent::_tracefirst($text),
10771             q{application},
10772             $tracelevel)
10773             if defined $::RD_TRACE;
10774 0           $lastsep = "";
10775 0           $expectation->is(q{})->at($text);
10776            
10777              
10778 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aapp//)
  0 0          
10779             {
10780            
10781 0           $expectation->failed();
10782 0 0         Parse::RecDescent::_trace(qq{<>},
10783             Parse::RecDescent::_tracefirst($text))
10784             if defined $::RD_TRACE;
10785 0           last;
10786             }
10787 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10788             . $& . q{])},
10789             Parse::RecDescent::_tracefirst($text))
10790             if defined $::RD_TRACE;
10791 0           push @item, $item{__STRING1__}=$&;
10792            
10793              
10794 0 0         Parse::RecDescent::_trace(q{Trying subrule: [module_ident]},
10795             Parse::RecDescent::_tracefirst($text),
10796             q{application},
10797             $tracelevel)
10798             if defined $::RD_TRACE;
10799 41     41   252 if (1) { no strict qw{refs};
  41         91  
  41         22572  
  0            
10800 0           $expectation->is(q{module_ident})->at($text);
10801 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::module_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
10802             {
10803            
10804 0 0         Parse::RecDescent::_trace(q{<>},
10805             Parse::RecDescent::_tracefirst($text),
10806             q{application},
10807             $tracelevel)
10808             if defined $::RD_TRACE;
10809 0           $expectation->failed();
10810 0           last;
10811             }
10812 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [module_ident]<< (return value: [}
10813             . $_tok . q{]},
10814            
10815             Parse::RecDescent::_tracefirst($text),
10816             q{application},
10817             $tracelevel)
10818             if defined $::RD_TRACE;
10819 0           $item{q{module_ident}} = $_tok;
10820 0           push @item, $_tok;
10821            
10822             }
10823              
10824 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
10825             Parse::RecDescent::_tracefirst($text),
10826             q{application},
10827             $tracelevel)
10828             if defined $::RD_TRACE;
10829 0           $lastsep = "";
10830 0           $expectation->is(q{'\{'})->at($text);
10831            
10832              
10833 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
10834             {
10835            
10836 0           $expectation->failed();
10837 0 0         Parse::RecDescent::_trace(qq{<>},
10838             Parse::RecDescent::_tracefirst($text))
10839             if defined $::RD_TRACE;
10840 0           last;
10841             }
10842 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10843             . $& . q{])},
10844             Parse::RecDescent::_tracefirst($text))
10845             if defined $::RD_TRACE;
10846 0           push @item, $item{__STRING2__}=$&;
10847            
10848              
10849 0 0         Parse::RecDescent::_trace(q{Trying subrule: [app_body]},
10850             Parse::RecDescent::_tracefirst($text),
10851             q{application},
10852             $tracelevel)
10853             if defined $::RD_TRACE;
10854 41     41   273 if (1) { no strict qw{refs};
  41         100  
  41         79906  
  0            
10855 0           $expectation->is(q{app_body})->at($text);
10856 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::app_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
10857             {
10858            
10859 0 0         Parse::RecDescent::_trace(q{<>},
10860             Parse::RecDescent::_tracefirst($text),
10861             q{application},
10862             $tracelevel)
10863             if defined $::RD_TRACE;
10864 0           $expectation->failed();
10865 0           last;
10866             }
10867 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [app_body]<< (return value: [}
10868             . $_tok . q{]},
10869            
10870             Parse::RecDescent::_tracefirst($text),
10871             q{application},
10872             $tracelevel)
10873             if defined $::RD_TRACE;
10874 0           $item{q{app_body}} = $_tok;
10875 0           push @item, $_tok;
10876            
10877             }
10878              
10879 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
10880             Parse::RecDescent::_tracefirst($text),
10881             q{application},
10882             $tracelevel)
10883             if defined $::RD_TRACE;
10884 0           $lastsep = "";
10885 0           $expectation->is(q{'\}'})->at($text);
10886            
10887              
10888 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
10889             {
10890            
10891 0           $expectation->failed();
10892 0 0         Parse::RecDescent::_trace(qq{<>},
10893             Parse::RecDescent::_tracefirst($text))
10894             if defined $::RD_TRACE;
10895 0           last;
10896             }
10897 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10898             . $& . q{])},
10899             Parse::RecDescent::_tracefirst($text))
10900             if defined $::RD_TRACE;
10901 0           push @item, $item{__STRING3__}=$&;
10902            
10903              
10904 0 0         Parse::RecDescent::_trace(q{Trying action},
10905             Parse::RecDescent::_tracefirst($text),
10906             q{application},
10907             $tracelevel)
10908             if defined $::RD_TRACE;
10909            
10910              
10911 0 0         $_tok = ($_noactions) ? 0 : do {
10912 0           my $retval = bless {
10913             __NAME__ => $item{module_ident},
10914             __BODY__ => $item{app_body},
10915             }, 'application';
10916              
10917 0           $retval->walk_postorder( 'set_parent' );
10918              
10919 0           my $lookup_hash = $retval->walk_postorder(
10920             'build_lookup_hash'
10921             );
10922              
10923 0           $retval->{lookup} = { @{ $lookup_hash } };
  0            
10924              
10925 0           $retval;
10926             };
10927 0 0         unless (defined $_tok)
10928             {
10929 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
10930             if defined $::RD_TRACE;
10931 0           last;
10932             }
10933 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
10934             . $_tok . q{])},
10935             Parse::RecDescent::_tracefirst($text))
10936             if defined $::RD_TRACE;
10937 0           push @item, $_tok;
10938 0           $item{__ACTION1__}=$_tok;
10939            
10940              
10941              
10942 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['app' module_ident '\{' app_body '\}']<<},
10943             Parse::RecDescent::_tracefirst($text),
10944             q{application},
10945             $tracelevel)
10946             if defined $::RD_TRACE;
10947 0           $_matched = 1;
10948 0           last;
10949             }
10950              
10951              
10952 0           while (!$_matched)
10953             {
10954            
10955 0 0         Parse::RecDescent::_trace(q{Trying production: []},
10956             Parse::RecDescent::_tracefirst($_[1]),
10957             q{application},
10958             $tracelevel)
10959             if defined $::RD_TRACE;
10960 0           my $thisprod = $thisrule->{"prods"}[1];
10961            
10962 0           my $_savetext;
10963 0           @item = (q{application});
10964 0           %item = (__RULE__ => q{application});
10965 0           my $repcount = 0;
10966              
10967              
10968            
10969              
10970 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
10971             Parse::RecDescent::_tracefirst($text),
10972             q{application},
10973             $tracelevel)
10974             if defined $::RD_TRACE;
10975 0 0         $_tok = do { if (1) { do {
  0            
  0            
10976 0           my $rule = $item[0];
10977 0           $rule =~ s/_/ /g;
10978             #WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
10979 0           push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
  0            
10980 0           } unless $_noactions; undef } else {0} };
10981 0 0         if (defined($_tok))
10982             {
10983 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
10984             . $_tok . q{])},
10985             Parse::RecDescent::_tracefirst($text))
10986             if defined $::RD_TRACE;
10987             }
10988             else
10989             {
10990 0 0         Parse::RecDescent::_trace(q{<>},
10991             Parse::RecDescent::_tracefirst($text))
10992             if defined $::RD_TRACE;
10993             }
10994            
10995 0 0         last unless defined $_tok;
10996 0           push @item, $item{__DIRECTIVE1__}=$_tok;
10997            
10998              
10999 0 0         Parse::RecDescent::_trace(q{Trying action},
11000             Parse::RecDescent::_tracefirst($text),
11001             q{application},
11002             $tracelevel)
11003             if defined $::RD_TRACE;
11004            
11005              
11006 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
11007 0 0         unless (defined $_tok)
11008             {
11009 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
11010             if defined $::RD_TRACE;
11011 0           last;
11012             }
11013 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11014             . $_tok . q{])},
11015             Parse::RecDescent::_tracefirst($text))
11016             if defined $::RD_TRACE;
11017 0           push @item, $_tok;
11018            
11019            
11020              
11021              
11022 0 0         Parse::RecDescent::_trace(q{>>Matched production: []<<},
11023             Parse::RecDescent::_tracefirst($text),
11024             q{application},
11025             $tracelevel)
11026             if defined $::RD_TRACE;
11027 0           $_matched = 1;
11028 0           last;
11029             }
11030              
11031              
11032 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
11033             {
11034            
11035              
11036 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
11037 0 0         Parse::RecDescent::_trace(q{<>},
11038             Parse::RecDescent::_tracefirst($_[1]),
11039             q{application},
11040             $tracelevel)
11041             if defined $::RD_TRACE;
11042 0           return undef;
11043             }
11044 0 0 0       if (!defined($return) && defined($score))
11045             {
11046 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11047             q{application},
11048             $tracelevel)
11049             if defined $::RD_TRACE;
11050 0           $return = $score_return;
11051             }
11052 0           splice @{$thisparser->{errors}}, $err_at;
  0            
11053 0 0         $return = $item[$#item] unless defined $return;
11054 0 0         if (defined $::RD_TRACE)
11055             {
11056 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11057             $return . q{])}, "",
11058             q{application},
11059             $tracelevel);
11060 0           Parse::RecDescent::_trace(q{(consumed: [} .
11061             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11062             Parse::RecDescent::_tracefirst($text),
11063             , q{application},
11064             $tracelevel)
11065             }
11066 0           $_[1] = $text;
11067 0           return $return;
11068             }
11069              
11070             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11071             sub Parse::RecDescent::Bigtop::Grammar::controller_config_statement
11072             {
11073 0     0     my $thisparser = $_[0];
11074 41     41   293 use vars q{$tracelevel};
  41         250  
  41         16851  
11075 0   0       local $tracelevel = ($tracelevel||0)+1;
11076 0           $ERRORS = 0;
11077 0           my $thisrule = $thisparser->{"rules"}{"controller_config_statement"};
11078            
11079 0 0         Parse::RecDescent::_trace(q{Trying rule: [controller_config_statement]},
11080             Parse::RecDescent::_tracefirst($_[1]),
11081             q{controller_config_statement},
11082             $tracelevel)
11083             if defined $::RD_TRACE;
11084              
11085            
11086 0           my $err_at = @{$thisparser->{errors}};
  0            
11087              
11088 0           my $score;
11089             my $score_return;
11090 0           my $_tok;
11091 0           my $return = undef;
11092 0           my $_matched=0;
11093 0           my $commit=0;
11094 0           my @item = ();
11095 0           my %item = ();
11096 0   0       my $repeating = defined($_[2]) && $_[2];
11097 0   0       my $_noactions = defined($_[3]) && $_[3];
11098 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
11099 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11100 0           my $text;
11101 0           my $lastsep="";
11102 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11103 0           $expectation->at($_[1]);
11104            
11105 0           my $thisline;
11106 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11107              
11108            
11109              
11110 0   0       while (!$_matched && !$commit)
11111             {
11112            
11113 0 0         Parse::RecDescent::_trace(q{Trying production: [IDENT arg_list SEMI_COLON]},
11114             Parse::RecDescent::_tracefirst($_[1]),
11115             q{controller_config_statement},
11116             $tracelevel)
11117             if defined $::RD_TRACE;
11118 0           my $thisprod = $thisrule->{"prods"}[0];
11119 0           $text = $_[1];
11120 0           my $_savetext;
11121 0           @item = (q{controller_config_statement});
11122 0           %item = (__RULE__ => q{controller_config_statement});
11123 0           my $repcount = 0;
11124              
11125              
11126 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
11127             Parse::RecDescent::_tracefirst($text),
11128             q{controller_config_statement},
11129             $tracelevel)
11130             if defined $::RD_TRACE;
11131 41     41   252 if (1) { no strict qw{refs};
  41         88  
  41         9247  
  0            
11132 0           $expectation->is(q{})->at($text);
11133 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11134             {
11135            
11136 0 0         Parse::RecDescent::_trace(q{<>},
11137             Parse::RecDescent::_tracefirst($text),
11138             q{controller_config_statement},
11139             $tracelevel)
11140             if defined $::RD_TRACE;
11141 0           $expectation->failed();
11142 0           last;
11143             }
11144 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
11145             . $_tok . q{]},
11146            
11147             Parse::RecDescent::_tracefirst($text),
11148             q{controller_config_statement},
11149             $tracelevel)
11150             if defined $::RD_TRACE;
11151 0           $item{q{IDENT}} = $_tok;
11152 0           push @item, $_tok;
11153            
11154             }
11155              
11156 0 0         Parse::RecDescent::_trace(q{Trying subrule: [arg_list]},
11157             Parse::RecDescent::_tracefirst($text),
11158             q{controller_config_statement},
11159             $tracelevel)
11160             if defined $::RD_TRACE;
11161 41     41   247 if (1) { no strict qw{refs};
  41         88  
  41         9504  
  0            
11162 0           $expectation->is(q{arg_list})->at($text);
11163 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::arg_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11164             {
11165            
11166 0 0         Parse::RecDescent::_trace(q{<>},
11167             Parse::RecDescent::_tracefirst($text),
11168             q{controller_config_statement},
11169             $tracelevel)
11170             if defined $::RD_TRACE;
11171 0           $expectation->failed();
11172 0           last;
11173             }
11174 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [arg_list]<< (return value: [}
11175             . $_tok . q{]},
11176            
11177             Parse::RecDescent::_tracefirst($text),
11178             q{controller_config_statement},
11179             $tracelevel)
11180             if defined $::RD_TRACE;
11181 0           $item{q{arg_list}} = $_tok;
11182 0           push @item, $_tok;
11183            
11184             }
11185              
11186 0 0         Parse::RecDescent::_trace(q{Trying subrule: [SEMI_COLON]},
11187             Parse::RecDescent::_tracefirst($text),
11188             q{controller_config_statement},
11189             $tracelevel)
11190             if defined $::RD_TRACE;
11191 41     41   247 if (1) { no strict qw{refs};
  41         85  
  41         55066  
  0            
11192 0           $expectation->is(q{SEMI_COLON})->at($text);
11193 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::SEMI_COLON($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11194             {
11195            
11196 0 0         Parse::RecDescent::_trace(q{<>},
11197             Parse::RecDescent::_tracefirst($text),
11198             q{controller_config_statement},
11199             $tracelevel)
11200             if defined $::RD_TRACE;
11201 0           $expectation->failed();
11202 0           last;
11203             }
11204 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [SEMI_COLON]<< (return value: [}
11205             . $_tok . q{]},
11206            
11207             Parse::RecDescent::_tracefirst($text),
11208             q{controller_config_statement},
11209             $tracelevel)
11210             if defined $::RD_TRACE;
11211 0           $item{q{SEMI_COLON}} = $_tok;
11212 0           push @item, $_tok;
11213            
11214             }
11215              
11216 0 0         Parse::RecDescent::_trace(q{Trying action},
11217             Parse::RecDescent::_tracefirst($text),
11218             q{controller_config_statement},
11219             $tracelevel)
11220             if defined $::RD_TRACE;
11221            
11222              
11223 0 0         $_tok = ($_noactions) ? 0 : do {
11224 0           bless {
11225             __KEYWORD__ => $item{IDENT},
11226             __ARGS__ => $item{arg_list}
11227             }, 'controller_config_statement'
11228             };
11229 0 0         unless (defined $_tok)
11230             {
11231 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
11232             if defined $::RD_TRACE;
11233 0           last;
11234             }
11235 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11236             . $_tok . q{])},
11237             Parse::RecDescent::_tracefirst($text))
11238             if defined $::RD_TRACE;
11239 0           push @item, $_tok;
11240 0           $item{__ACTION1__}=$_tok;
11241            
11242              
11243              
11244 0 0         Parse::RecDescent::_trace(q{>>Matched production: [IDENT arg_list SEMI_COLON]<<},
11245             Parse::RecDescent::_tracefirst($text),
11246             q{controller_config_statement},
11247             $tracelevel)
11248             if defined $::RD_TRACE;
11249 0           $_matched = 1;
11250 0           last;
11251             }
11252              
11253              
11254 0   0       while (!$_matched && !$commit)
11255             {
11256            
11257 0 0         Parse::RecDescent::_trace(q{Trying production: [/[^\\\}]/]},
11258             Parse::RecDescent::_tracefirst($_[1]),
11259             q{controller_config_statement},
11260             $tracelevel)
11261             if defined $::RD_TRACE;
11262 0           my $thisprod = $thisrule->{"prods"}[1];
11263 0           $text = $_[1];
11264 0           my $_savetext;
11265 0           @item = (q{controller_config_statement});
11266 0           %item = (__RULE__ => q{controller_config_statement});
11267 0           my $repcount = 0;
11268              
11269              
11270 0 0         Parse::RecDescent::_trace(q{Trying terminal: [/[^\\\}]/]}, Parse::RecDescent::_tracefirst($text),
11271             q{controller_config_statement},
11272             $tracelevel)
11273             if defined $::RD_TRACE;
11274 0           $lastsep = "";
11275 0           $expectation->is(q{})->at($text);
11276            
11277              
11278 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A(?:[^\}])//)
  0 0          
11279             {
11280            
11281 0           $expectation->failed();
11282 0 0         Parse::RecDescent::_trace(q{<>},
11283             Parse::RecDescent::_tracefirst($text))
11284             if defined $::RD_TRACE;
11285              
11286 0           last;
11287             }
11288 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11289             . $& . q{])},
11290             Parse::RecDescent::_tracefirst($text))
11291             if defined $::RD_TRACE;
11292 0           push @item, $item{__PATTERN1__}=$&;
11293            
11294              
11295 0 0         Parse::RecDescent::_trace(q{Trying action},
11296             Parse::RecDescent::_tracefirst($text),
11297             q{controller_config_statement},
11298             $tracelevel)
11299             if defined $::RD_TRACE;
11300            
11301              
11302 0 0         $_tok = ($_noactions) ? 0 : do {
11303 0           my $message = "bad config statement, "
11304             . "possible extra semicolon";
11305 0 0         if ( $backtick_warning ) {
11306 0           $message .= " ($backtick_warning)";
11307 0           $backtick_warning = '';
11308             }
11309 0           my $diag_text = $item[1] . $text;
11310 0           Bigtop::Parser->fatal_error_two_lines(
11311             $message, $diag_text, $thisline
11312             );
11313             };
11314 0 0         unless (defined $_tok)
11315             {
11316 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
11317             if defined $::RD_TRACE;
11318 0           last;
11319             }
11320 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11321             . $_tok . q{])},
11322             Parse::RecDescent::_tracefirst($text))
11323             if defined $::RD_TRACE;
11324 0           push @item, $_tok;
11325 0           $item{__ACTION1__}=$_tok;
11326            
11327              
11328              
11329 0 0         Parse::RecDescent::_trace(q{>>Matched production: [/[^\\\}]/]<<},
11330             Parse::RecDescent::_tracefirst($text),
11331             q{controller_config_statement},
11332             $tracelevel)
11333             if defined $::RD_TRACE;
11334 0           $_matched = 1;
11335 0           last;
11336             }
11337              
11338              
11339 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
11340             {
11341            
11342              
11343 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
11344 0 0         Parse::RecDescent::_trace(q{<>},
11345             Parse::RecDescent::_tracefirst($_[1]),
11346             q{controller_config_statement},
11347             $tracelevel)
11348             if defined $::RD_TRACE;
11349 0           return undef;
11350             }
11351 0 0 0       if (!defined($return) && defined($score))
11352             {
11353 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11354             q{controller_config_statement},
11355             $tracelevel)
11356             if defined $::RD_TRACE;
11357 0           $return = $score_return;
11358             }
11359 0           splice @{$thisparser->{errors}}, $err_at;
  0            
11360 0 0         $return = $item[$#item] unless defined $return;
11361 0 0         if (defined $::RD_TRACE)
11362             {
11363 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11364             $return . q{])}, "",
11365             q{controller_config_statement},
11366             $tracelevel);
11367 0           Parse::RecDescent::_trace(q{(consumed: [} .
11368             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11369             Parse::RecDescent::_tracefirst($text),
11370             , q{controller_config_statement},
11371             $tracelevel)
11372             }
11373 0           $_[1] = $text;
11374 0           return $return;
11375             }
11376              
11377             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11378             sub Parse::RecDescent::Bigtop::Grammar::block
11379             {
11380 0     0     my $thisparser = $_[0];
11381 41     41   368 use vars q{$tracelevel};
  41         100  
  41         18544  
11382 0   0       local $tracelevel = ($tracelevel||0)+1;
11383 0           $ERRORS = 0;
11384 0           my $thisrule = $thisparser->{"rules"}{"block"};
11385            
11386 0 0         Parse::RecDescent::_trace(q{Trying rule: [block]},
11387             Parse::RecDescent::_tracefirst($_[1]),
11388             q{block},
11389             $tracelevel)
11390             if defined $::RD_TRACE;
11391              
11392            
11393 0           my $err_at = @{$thisparser->{errors}};
  0            
11394              
11395 0           my $score;
11396             my $score_return;
11397 0           my $_tok;
11398 0           my $return = undef;
11399 0           my $_matched=0;
11400 0           my $commit=0;
11401 0           my @item = ();
11402 0           my %item = ();
11403 0   0       my $repeating = defined($_[2]) && $_[2];
11404 0   0       my $_noactions = defined($_[3]) && $_[3];
11405 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
11406 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11407 0           my $text;
11408 0           my $lastsep="";
11409 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11410 0           $expectation->at($_[1]);
11411            
11412 0           my $thisline;
11413 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11414              
11415            
11416              
11417 0   0       while (!$_matched && !$commit)
11418             {
11419            
11420 0 0         Parse::RecDescent::_trace(q{Trying production: [literal_block]},
11421             Parse::RecDescent::_tracefirst($_[1]),
11422             q{block},
11423             $tracelevel)
11424             if defined $::RD_TRACE;
11425 0           my $thisprod = $thisrule->{"prods"}[0];
11426 0           $text = $_[1];
11427 0           my $_savetext;
11428 0           @item = (q{block});
11429 0           %item = (__RULE__ => q{block});
11430 0           my $repcount = 0;
11431              
11432              
11433 0 0         Parse::RecDescent::_trace(q{Trying subrule: [literal_block]},
11434             Parse::RecDescent::_tracefirst($text),
11435             q{block},
11436             $tracelevel)
11437             if defined $::RD_TRACE;
11438 41     41   267 if (1) { no strict qw{refs};
  41         118  
  41         18056  
  0            
11439 0           $expectation->is(q{})->at($text);
11440 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::literal_block($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11441             {
11442            
11443 0 0         Parse::RecDescent::_trace(q{<>},
11444             Parse::RecDescent::_tracefirst($text),
11445             q{block},
11446             $tracelevel)
11447             if defined $::RD_TRACE;
11448 0           $expectation->failed();
11449 0           last;
11450             }
11451 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [literal_block]<< (return value: [}
11452             . $_tok . q{]},
11453            
11454             Parse::RecDescent::_tracefirst($text),
11455             q{block},
11456             $tracelevel)
11457             if defined $::RD_TRACE;
11458 0           $item{q{literal_block}} = $_tok;
11459 0           push @item, $_tok;
11460            
11461             }
11462              
11463 0 0         Parse::RecDescent::_trace(q{Trying action},
11464             Parse::RecDescent::_tracefirst($text),
11465             q{block},
11466             $tracelevel)
11467             if defined $::RD_TRACE;
11468            
11469              
11470 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
11471 0 0         unless (defined $_tok)
11472             {
11473 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
11474             if defined $::RD_TRACE;
11475 0           last;
11476             }
11477 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11478             . $_tok . q{])},
11479             Parse::RecDescent::_tracefirst($text))
11480             if defined $::RD_TRACE;
11481 0           push @item, $_tok;
11482            
11483            
11484              
11485              
11486 0 0         Parse::RecDescent::_trace(q{>>Matched production: [literal_block]<<},
11487             Parse::RecDescent::_tracefirst($text),
11488             q{block},
11489             $tracelevel)
11490             if defined $::RD_TRACE;
11491 0           $_matched = 1;
11492 0           last;
11493             }
11494              
11495              
11496 0   0       while (!$_matched && !$commit)
11497             {
11498            
11499 0 0         Parse::RecDescent::_trace(q{Trying production: [controller_block]},
11500             Parse::RecDescent::_tracefirst($_[1]),
11501             q{block},
11502             $tracelevel)
11503             if defined $::RD_TRACE;
11504 0           my $thisprod = $thisrule->{"prods"}[1];
11505 0           $text = $_[1];
11506 0           my $_savetext;
11507 0           @item = (q{block});
11508 0           %item = (__RULE__ => q{block});
11509 0           my $repcount = 0;
11510              
11511              
11512 0 0         Parse::RecDescent::_trace(q{Trying subrule: [controller_block]},
11513             Parse::RecDescent::_tracefirst($text),
11514             q{block},
11515             $tracelevel)
11516             if defined $::RD_TRACE;
11517 41     41   270 if (1) { no strict qw{refs};
  41         94  
  41         19652  
  0            
11518 0           $expectation->is(q{})->at($text);
11519 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::controller_block($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11520             {
11521            
11522 0 0         Parse::RecDescent::_trace(q{<>},
11523             Parse::RecDescent::_tracefirst($text),
11524             q{block},
11525             $tracelevel)
11526             if defined $::RD_TRACE;
11527 0           $expectation->failed();
11528 0           last;
11529             }
11530 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [controller_block]<< (return value: [}
11531             . $_tok . q{]},
11532            
11533             Parse::RecDescent::_tracefirst($text),
11534             q{block},
11535             $tracelevel)
11536             if defined $::RD_TRACE;
11537 0           $item{q{controller_block}} = $_tok;
11538 0           push @item, $_tok;
11539            
11540             }
11541              
11542 0 0         Parse::RecDescent::_trace(q{Trying action},
11543             Parse::RecDescent::_tracefirst($text),
11544             q{block},
11545             $tracelevel)
11546             if defined $::RD_TRACE;
11547            
11548              
11549 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
11550 0 0         unless (defined $_tok)
11551             {
11552 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
11553             if defined $::RD_TRACE;
11554 0           last;
11555             }
11556 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11557             . $_tok . q{])},
11558             Parse::RecDescent::_tracefirst($text))
11559             if defined $::RD_TRACE;
11560 0           push @item, $_tok;
11561            
11562            
11563              
11564              
11565 0 0         Parse::RecDescent::_trace(q{>>Matched production: [controller_block]<<},
11566             Parse::RecDescent::_tracefirst($text),
11567             q{block},
11568             $tracelevel)
11569             if defined $::RD_TRACE;
11570 0           $_matched = 1;
11571 0           last;
11572             }
11573              
11574              
11575 0   0       while (!$_matched && !$commit)
11576             {
11577            
11578 0 0         Parse::RecDescent::_trace(q{Trying production: [sql_block]},
11579             Parse::RecDescent::_tracefirst($_[1]),
11580             q{block},
11581             $tracelevel)
11582             if defined $::RD_TRACE;
11583 0           my $thisprod = $thisrule->{"prods"}[2];
11584 0           $text = $_[1];
11585 0           my $_savetext;
11586 0           @item = (q{block});
11587 0           %item = (__RULE__ => q{block});
11588 0           my $repcount = 0;
11589              
11590              
11591 0 0         Parse::RecDescent::_trace(q{Trying subrule: [sql_block]},
11592             Parse::RecDescent::_tracefirst($text),
11593             q{block},
11594             $tracelevel)
11595             if defined $::RD_TRACE;
11596 41     41   273 if (1) { no strict qw{refs};
  41         91  
  41         19135  
  0            
11597 0           $expectation->is(q{})->at($text);
11598 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::sql_block($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11599             {
11600            
11601 0 0         Parse::RecDescent::_trace(q{<>},
11602             Parse::RecDescent::_tracefirst($text),
11603             q{block},
11604             $tracelevel)
11605             if defined $::RD_TRACE;
11606 0           $expectation->failed();
11607 0           last;
11608             }
11609 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [sql_block]<< (return value: [}
11610             . $_tok . q{]},
11611            
11612             Parse::RecDescent::_tracefirst($text),
11613             q{block},
11614             $tracelevel)
11615             if defined $::RD_TRACE;
11616 0           $item{q{sql_block}} = $_tok;
11617 0           push @item, $_tok;
11618            
11619             }
11620              
11621 0 0         Parse::RecDescent::_trace(q{Trying action},
11622             Parse::RecDescent::_tracefirst($text),
11623             q{block},
11624             $tracelevel)
11625             if defined $::RD_TRACE;
11626            
11627              
11628 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
11629 0 0         unless (defined $_tok)
11630             {
11631 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
11632             if defined $::RD_TRACE;
11633 0           last;
11634             }
11635 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11636             . $_tok . q{])},
11637             Parse::RecDescent::_tracefirst($text))
11638             if defined $::RD_TRACE;
11639 0           push @item, $_tok;
11640            
11641            
11642              
11643              
11644 0 0         Parse::RecDescent::_trace(q{>>Matched production: [sql_block]<<},
11645             Parse::RecDescent::_tracefirst($text),
11646             q{block},
11647             $tracelevel)
11648             if defined $::RD_TRACE;
11649 0           $_matched = 1;
11650 0           last;
11651             }
11652              
11653              
11654 0   0       while (!$_matched && !$commit)
11655             {
11656            
11657 0 0         Parse::RecDescent::_trace(q{Trying production: [app_config_block]},
11658             Parse::RecDescent::_tracefirst($_[1]),
11659             q{block},
11660             $tracelevel)
11661             if defined $::RD_TRACE;
11662 0           my $thisprod = $thisrule->{"prods"}[3];
11663 0           $text = $_[1];
11664 0           my $_savetext;
11665 0           @item = (q{block});
11666 0           %item = (__RULE__ => q{block});
11667 0           my $repcount = 0;
11668              
11669              
11670 0 0         Parse::RecDescent::_trace(q{Trying subrule: [app_config_block]},
11671             Parse::RecDescent::_tracefirst($text),
11672             q{block},
11673             $tracelevel)
11674             if defined $::RD_TRACE;
11675 41     41   241 if (1) { no strict qw{refs};
  41         83  
  41         29118  
  0            
11676 0           $expectation->is(q{})->at($text);
11677 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::app_config_block($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11678             {
11679            
11680 0 0         Parse::RecDescent::_trace(q{<>},
11681             Parse::RecDescent::_tracefirst($text),
11682             q{block},
11683             $tracelevel)
11684             if defined $::RD_TRACE;
11685 0           $expectation->failed();
11686 0           last;
11687             }
11688 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [app_config_block]<< (return value: [}
11689             . $_tok . q{]},
11690            
11691             Parse::RecDescent::_tracefirst($text),
11692             q{block},
11693             $tracelevel)
11694             if defined $::RD_TRACE;
11695 0           $item{q{app_config_block}} = $_tok;
11696 0           push @item, $_tok;
11697            
11698             }
11699              
11700 0 0         Parse::RecDescent::_trace(q{Trying action},
11701             Parse::RecDescent::_tracefirst($text),
11702             q{block},
11703             $tracelevel)
11704             if defined $::RD_TRACE;
11705            
11706              
11707 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
11708 0 0         unless (defined $_tok)
11709             {
11710 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
11711             if defined $::RD_TRACE;
11712 0           last;
11713             }
11714 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11715             . $_tok . q{])},
11716             Parse::RecDescent::_tracefirst($text))
11717             if defined $::RD_TRACE;
11718 0           push @item, $_tok;
11719            
11720            
11721              
11722              
11723 0 0         Parse::RecDescent::_trace(q{>>Matched production: [app_config_block]<<},
11724             Parse::RecDescent::_tracefirst($text),
11725             q{block},
11726             $tracelevel)
11727             if defined $::RD_TRACE;
11728 0           $_matched = 1;
11729 0           last;
11730             }
11731              
11732              
11733 0   0       while (!$_matched && !$commit)
11734             {
11735            
11736 0 0         Parse::RecDescent::_trace(q{Trying production: [app_statement]},
11737             Parse::RecDescent::_tracefirst($_[1]),
11738             q{block},
11739             $tracelevel)
11740             if defined $::RD_TRACE;
11741 0           my $thisprod = $thisrule->{"prods"}[4];
11742 0           $text = $_[1];
11743 0           my $_savetext;
11744 0           @item = (q{block});
11745 0           %item = (__RULE__ => q{block});
11746 0           my $repcount = 0;
11747              
11748              
11749 0 0         Parse::RecDescent::_trace(q{Trying subrule: [app_statement]},
11750             Parse::RecDescent::_tracefirst($text),
11751             q{block},
11752             $tracelevel)
11753             if defined $::RD_TRACE;
11754 41     41   278 if (1) { no strict qw{refs};
  41         92  
  41         34209  
  0            
11755 0           $expectation->is(q{})->at($text);
11756 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::app_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11757             {
11758            
11759 0 0         Parse::RecDescent::_trace(q{<>},
11760             Parse::RecDescent::_tracefirst($text),
11761             q{block},
11762             $tracelevel)
11763             if defined $::RD_TRACE;
11764 0           $expectation->failed();
11765 0           last;
11766             }
11767 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [app_statement]<< (return value: [}
11768             . $_tok . q{]},
11769            
11770             Parse::RecDescent::_tracefirst($text),
11771             q{block},
11772             $tracelevel)
11773             if defined $::RD_TRACE;
11774 0           $item{q{app_statement}} = $_tok;
11775 0           push @item, $_tok;
11776            
11777             }
11778              
11779 0 0         Parse::RecDescent::_trace(q{Trying action},
11780             Parse::RecDescent::_tracefirst($text),
11781             q{block},
11782             $tracelevel)
11783             if defined $::RD_TRACE;
11784            
11785              
11786 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
11787 0 0         unless (defined $_tok)
11788             {
11789 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
11790             if defined $::RD_TRACE;
11791 0           last;
11792             }
11793 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
11794             . $_tok . q{])},
11795             Parse::RecDescent::_tracefirst($text))
11796             if defined $::RD_TRACE;
11797 0           push @item, $_tok;
11798            
11799            
11800              
11801              
11802 0 0         Parse::RecDescent::_trace(q{>>Matched production: [app_statement]<<},
11803             Parse::RecDescent::_tracefirst($text),
11804             q{block},
11805             $tracelevel)
11806             if defined $::RD_TRACE;
11807 0           $_matched = 1;
11808 0           last;
11809             }
11810              
11811              
11812 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
11813             {
11814            
11815              
11816 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
11817 0 0         Parse::RecDescent::_trace(q{<>},
11818             Parse::RecDescent::_tracefirst($_[1]),
11819             q{block},
11820             $tracelevel)
11821             if defined $::RD_TRACE;
11822 0           return undef;
11823             }
11824 0 0 0       if (!defined($return) && defined($score))
11825             {
11826 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11827             q{block},
11828             $tracelevel)
11829             if defined $::RD_TRACE;
11830 0           $return = $score_return;
11831             }
11832 0           splice @{$thisparser->{errors}}, $err_at;
  0            
11833 0 0         $return = $item[$#item] unless defined $return;
11834 0 0         if (defined $::RD_TRACE)
11835             {
11836 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11837             $return . q{])}, "",
11838             q{block},
11839             $tracelevel);
11840 0           Parse::RecDescent::_trace(q{(consumed: [} .
11841             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11842             Parse::RecDescent::_tracefirst($text),
11843             , q{block},
11844             $tracelevel)
11845             }
11846 0           $_[1] = $text;
11847 0           return $return;
11848             }
11849              
11850             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11851             sub Parse::RecDescent::Bigtop::Grammar::sql_block
11852             {
11853 0     0     my $thisparser = $_[0];
11854 41     41   266 use vars q{$tracelevel};
  41         102  
  41         43105  
11855 0   0       local $tracelevel = ($tracelevel||0)+1;
11856 0           $ERRORS = 0;
11857 0           my $thisrule = $thisparser->{"rules"}{"sql_block"};
11858            
11859 0 0         Parse::RecDescent::_trace(q{Trying rule: [sql_block]},
11860             Parse::RecDescent::_tracefirst($_[1]),
11861             q{sql_block},
11862             $tracelevel)
11863             if defined $::RD_TRACE;
11864              
11865            
11866 0           my $err_at = @{$thisparser->{errors}};
  0            
11867              
11868 0           my $score;
11869             my $score_return;
11870 0           my $_tok;
11871 0           my $return = undef;
11872 0           my $_matched=0;
11873 0           my $commit=0;
11874 0           my @item = ();
11875 0           my %item = ();
11876 0   0       my $repeating = defined($_[2]) && $_[2];
11877 0   0       my $_noactions = defined($_[3]) && $_[3];
11878 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
11879 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
11880 0           my $text;
11881 0           my $lastsep="";
11882 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11883 0           $expectation->at($_[1]);
11884            
11885 0           my $thisline;
11886 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11887              
11888            
11889              
11890 0   0       while (!$_matched && !$commit)
11891             {
11892            
11893 0 0         Parse::RecDescent::_trace(q{Trying production: ['sequence' table_ident '\{' sequence_body '\}']},
11894             Parse::RecDescent::_tracefirst($_[1]),
11895             q{sql_block},
11896             $tracelevel)
11897             if defined $::RD_TRACE;
11898 0           my $thisprod = $thisrule->{"prods"}[0];
11899 0           $text = $_[1];
11900 0           my $_savetext;
11901 0           @item = (q{sql_block});
11902 0           %item = (__RULE__ => q{sql_block});
11903 0           my $repcount = 0;
11904              
11905              
11906 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['sequence']},
11907             Parse::RecDescent::_tracefirst($text),
11908             q{sql_block},
11909             $tracelevel)
11910             if defined $::RD_TRACE;
11911 0           $lastsep = "";
11912 0           $expectation->is(q{})->at($text);
11913            
11914              
11915 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Asequence//)
  0 0          
11916             {
11917            
11918 0           $expectation->failed();
11919 0 0         Parse::RecDescent::_trace(qq{<>},
11920             Parse::RecDescent::_tracefirst($text))
11921             if defined $::RD_TRACE;
11922 0           last;
11923             }
11924 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11925             . $& . q{])},
11926             Parse::RecDescent::_tracefirst($text))
11927             if defined $::RD_TRACE;
11928 0           push @item, $item{__STRING1__}=$&;
11929            
11930              
11931            
11932              
11933 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
11934             Parse::RecDescent::_tracefirst($text),
11935             q{sql_block},
11936             $tracelevel)
11937             if defined $::RD_TRACE;
11938 0           $_tok = do { $commit = 1 };
  0            
11939 0 0         if (defined($_tok))
11940             {
11941 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
11942             . $_tok . q{])},
11943             Parse::RecDescent::_tracefirst($text))
11944             if defined $::RD_TRACE;
11945             }
11946             else
11947             {
11948 0 0         Parse::RecDescent::_trace(q{<>},
11949             Parse::RecDescent::_tracefirst($text))
11950             if defined $::RD_TRACE;
11951             }
11952            
11953 0 0         last unless defined $_tok;
11954 0           push @item, $item{__DIRECTIVE1__}=$_tok;
11955            
11956              
11957 0 0         Parse::RecDescent::_trace(q{Trying subrule: [table_ident]},
11958             Parse::RecDescent::_tracefirst($text),
11959             q{sql_block},
11960             $tracelevel)
11961             if defined $::RD_TRACE;
11962 41     41   296 if (1) { no strict qw{refs};
  41         109  
  41         22716  
  0            
11963 0           $expectation->is(q{table_ident})->at($text);
11964 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::table_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
11965             {
11966            
11967 0 0         Parse::RecDescent::_trace(q{<>},
11968             Parse::RecDescent::_tracefirst($text),
11969             q{sql_block},
11970             $tracelevel)
11971             if defined $::RD_TRACE;
11972 0           $expectation->failed();
11973 0           last;
11974             }
11975 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [table_ident]<< (return value: [}
11976             . $_tok . q{]},
11977            
11978             Parse::RecDescent::_tracefirst($text),
11979             q{sql_block},
11980             $tracelevel)
11981             if defined $::RD_TRACE;
11982 0           $item{q{table_ident}} = $_tok;
11983 0           push @item, $_tok;
11984            
11985             }
11986              
11987 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
11988             Parse::RecDescent::_tracefirst($text),
11989             q{sql_block},
11990             $tracelevel)
11991             if defined $::RD_TRACE;
11992 0           $lastsep = "";
11993 0           $expectation->is(q{'\{'})->at($text);
11994            
11995              
11996 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
11997             {
11998            
11999 0           $expectation->failed();
12000 0 0         Parse::RecDescent::_trace(qq{<>},
12001             Parse::RecDescent::_tracefirst($text))
12002             if defined $::RD_TRACE;
12003 0           last;
12004             }
12005 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12006             . $& . q{])},
12007             Parse::RecDescent::_tracefirst($text))
12008             if defined $::RD_TRACE;
12009 0           push @item, $item{__STRING2__}=$&;
12010            
12011              
12012 0 0         Parse::RecDescent::_trace(q{Trying subrule: [sequence_body]},
12013             Parse::RecDescent::_tracefirst($text),
12014             q{sql_block},
12015             $tracelevel)
12016             if defined $::RD_TRACE;
12017 41     41   270 if (1) { no strict qw{refs};
  41         121  
  41         42921  
  0            
12018 0           $expectation->is(q{sequence_body})->at($text);
12019 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::sequence_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
12020             {
12021            
12022 0 0         Parse::RecDescent::_trace(q{<>},
12023             Parse::RecDescent::_tracefirst($text),
12024             q{sql_block},
12025             $tracelevel)
12026             if defined $::RD_TRACE;
12027 0           $expectation->failed();
12028 0           last;
12029             }
12030 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_body]<< (return value: [}
12031             . $_tok . q{]},
12032            
12033             Parse::RecDescent::_tracefirst($text),
12034             q{sql_block},
12035             $tracelevel)
12036             if defined $::RD_TRACE;
12037 0           $item{q{sequence_body}} = $_tok;
12038 0           push @item, $_tok;
12039            
12040             }
12041              
12042 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
12043             Parse::RecDescent::_tracefirst($text),
12044             q{sql_block},
12045             $tracelevel)
12046             if defined $::RD_TRACE;
12047 0           $lastsep = "";
12048 0           $expectation->is(q{'\}'})->at($text);
12049            
12050              
12051 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
12052             {
12053            
12054 0           $expectation->failed();
12055 0 0         Parse::RecDescent::_trace(qq{<>},
12056             Parse::RecDescent::_tracefirst($text))
12057             if defined $::RD_TRACE;
12058 0           last;
12059             }
12060 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12061             . $& . q{])},
12062             Parse::RecDescent::_tracefirst($text))
12063             if defined $::RD_TRACE;
12064 0           push @item, $item{__STRING3__}=$&;
12065            
12066              
12067 0 0         Parse::RecDescent::_trace(q{Trying action},
12068             Parse::RecDescent::_tracefirst($text),
12069             q{sql_block},
12070             $tracelevel)
12071             if defined $::RD_TRACE;
12072            
12073              
12074 0 0         $_tok = ($_noactions) ? 0 : do {
12075 0           bless {
12076             __IDENT__ => Bigtop::Parser->get_ident(),
12077             __NAME__ => $item{table_ident},
12078             __TYPE__ => 'sequences',
12079             __BODY__ => $item{sequence_body}
12080             {'sequence_statement(s?)'},
12081             }, 'seq_block'
12082             };
12083 0 0         unless (defined $_tok)
12084             {
12085 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
12086             if defined $::RD_TRACE;
12087 0           last;
12088             }
12089 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
12090             . $_tok . q{])},
12091             Parse::RecDescent::_tracefirst($text))
12092             if defined $::RD_TRACE;
12093 0           push @item, $_tok;
12094 0           $item{__ACTION1__}=$_tok;
12095            
12096              
12097              
12098 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['sequence' table_ident '\{' sequence_body '\}']<<},
12099             Parse::RecDescent::_tracefirst($text),
12100             q{sql_block},
12101             $tracelevel)
12102             if defined $::RD_TRACE;
12103 0           $_matched = 1;
12104 0           last;
12105             }
12106              
12107              
12108 0   0       while (!$_matched && !$commit)
12109             {
12110            
12111 0 0         Parse::RecDescent::_trace(q{Trying production: ['table' table_ident '\{' table_body '\}']},
12112             Parse::RecDescent::_tracefirst($_[1]),
12113             q{sql_block},
12114             $tracelevel)
12115             if defined $::RD_TRACE;
12116 0           my $thisprod = $thisrule->{"prods"}[1];
12117 0           $text = $_[1];
12118 0           my $_savetext;
12119 0           @item = (q{sql_block});
12120 0           %item = (__RULE__ => q{sql_block});
12121 0           my $repcount = 0;
12122              
12123              
12124 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['table']},
12125             Parse::RecDescent::_tracefirst($text),
12126             q{sql_block},
12127             $tracelevel)
12128             if defined $::RD_TRACE;
12129 0           $lastsep = "";
12130 0           $expectation->is(q{})->at($text);
12131            
12132              
12133 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Atable//)
  0 0          
12134             {
12135            
12136 0           $expectation->failed();
12137 0 0         Parse::RecDescent::_trace(qq{<>},
12138             Parse::RecDescent::_tracefirst($text))
12139             if defined $::RD_TRACE;
12140 0           last;
12141             }
12142 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12143             . $& . q{])},
12144             Parse::RecDescent::_tracefirst($text))
12145             if defined $::RD_TRACE;
12146 0           push @item, $item{__STRING1__}=$&;
12147            
12148              
12149            
12150              
12151 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
12152             Parse::RecDescent::_tracefirst($text),
12153             q{sql_block},
12154             $tracelevel)
12155             if defined $::RD_TRACE;
12156 0           $_tok = do { $commit = 1 };
  0            
12157 0 0         if (defined($_tok))
12158             {
12159 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
12160             . $_tok . q{])},
12161             Parse::RecDescent::_tracefirst($text))
12162             if defined $::RD_TRACE;
12163             }
12164             else
12165             {
12166 0 0         Parse::RecDescent::_trace(q{<>},
12167             Parse::RecDescent::_tracefirst($text))
12168             if defined $::RD_TRACE;
12169             }
12170            
12171 0 0         last unless defined $_tok;
12172 0           push @item, $item{__DIRECTIVE1__}=$_tok;
12173            
12174              
12175 0 0         Parse::RecDescent::_trace(q{Trying subrule: [table_ident]},
12176             Parse::RecDescent::_tracefirst($text),
12177             q{sql_block},
12178             $tracelevel)
12179             if defined $::RD_TRACE;
12180 41     41   284 if (1) { no strict qw{refs};
  41         98  
  41         17895  
  0            
12181 0           $expectation->is(q{table_ident})->at($text);
12182 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::table_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
12183             {
12184            
12185 0 0         Parse::RecDescent::_trace(q{<>},
12186             Parse::RecDescent::_tracefirst($text),
12187             q{sql_block},
12188             $tracelevel)
12189             if defined $::RD_TRACE;
12190 0           $expectation->failed();
12191 0           last;
12192             }
12193 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [table_ident]<< (return value: [}
12194             . $_tok . q{]},
12195            
12196             Parse::RecDescent::_tracefirst($text),
12197             q{sql_block},
12198             $tracelevel)
12199             if defined $::RD_TRACE;
12200 0           $item{q{table_ident}} = $_tok;
12201 0           push @item, $_tok;
12202            
12203             }
12204              
12205 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
12206             Parse::RecDescent::_tracefirst($text),
12207             q{sql_block},
12208             $tracelevel)
12209             if defined $::RD_TRACE;
12210 0           $lastsep = "";
12211 0           $expectation->is(q{'\{'})->at($text);
12212            
12213              
12214 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
12215             {
12216            
12217 0           $expectation->failed();
12218 0 0         Parse::RecDescent::_trace(qq{<>},
12219             Parse::RecDescent::_tracefirst($text))
12220             if defined $::RD_TRACE;
12221 0           last;
12222             }
12223 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12224             . $& . q{])},
12225             Parse::RecDescent::_tracefirst($text))
12226             if defined $::RD_TRACE;
12227 0           push @item, $item{__STRING2__}=$&;
12228            
12229              
12230 0 0         Parse::RecDescent::_trace(q{Trying subrule: [table_body]},
12231             Parse::RecDescent::_tracefirst($text),
12232             q{sql_block},
12233             $tracelevel)
12234             if defined $::RD_TRACE;
12235 41     41   246 if (1) { no strict qw{refs};
  41         114  
  41         46894  
  0            
12236 0           $expectation->is(q{table_body})->at($text);
12237 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::table_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
12238             {
12239            
12240 0 0         Parse::RecDescent::_trace(q{<>},
12241             Parse::RecDescent::_tracefirst($text),
12242             q{sql_block},
12243             $tracelevel)
12244             if defined $::RD_TRACE;
12245 0           $expectation->failed();
12246 0           last;
12247             }
12248 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [table_body]<< (return value: [}
12249             . $_tok . q{]},
12250            
12251             Parse::RecDescent::_tracefirst($text),
12252             q{sql_block},
12253             $tracelevel)
12254             if defined $::RD_TRACE;
12255 0           $item{q{table_body}} = $_tok;
12256 0           push @item, $_tok;
12257            
12258             }
12259              
12260 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
12261             Parse::RecDescent::_tracefirst($text),
12262             q{sql_block},
12263             $tracelevel)
12264             if defined $::RD_TRACE;
12265 0           $lastsep = "";
12266 0           $expectation->is(q{'\}'})->at($text);
12267            
12268              
12269 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
12270             {
12271            
12272 0           $expectation->failed();
12273 0 0         Parse::RecDescent::_trace(qq{<>},
12274             Parse::RecDescent::_tracefirst($text))
12275             if defined $::RD_TRACE;
12276 0           last;
12277             }
12278 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12279             . $& . q{])},
12280             Parse::RecDescent::_tracefirst($text))
12281             if defined $::RD_TRACE;
12282 0           push @item, $item{__STRING3__}=$&;
12283            
12284              
12285 0 0         Parse::RecDescent::_trace(q{Trying action},
12286             Parse::RecDescent::_tracefirst($text),
12287             q{sql_block},
12288             $tracelevel)
12289             if defined $::RD_TRACE;
12290            
12291              
12292 0 0         $_tok = ($_noactions) ? 0 : do {
12293 0           bless {
12294             __IDENT__ => Bigtop::Parser->get_ident(),
12295             __NAME__ => $item{table_ident},
12296             __TYPE__ => 'tables',
12297             __BODY__ => $item{table_body}
12298             {'table_element_block(s?)'},
12299             }, 'table_block'
12300             };
12301 0 0         unless (defined $_tok)
12302             {
12303 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
12304             if defined $::RD_TRACE;
12305 0           last;
12306             }
12307 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
12308             . $_tok . q{])},
12309             Parse::RecDescent::_tracefirst($text))
12310             if defined $::RD_TRACE;
12311 0           push @item, $_tok;
12312 0           $item{__ACTION1__}=$_tok;
12313            
12314              
12315              
12316 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['table' table_ident '\{' table_body '\}']<<},
12317             Parse::RecDescent::_tracefirst($text),
12318             q{sql_block},
12319             $tracelevel)
12320             if defined $::RD_TRACE;
12321 0           $_matched = 1;
12322 0           last;
12323             }
12324              
12325              
12326 0   0       while (!$_matched && !$commit)
12327             {
12328            
12329 0 0         Parse::RecDescent::_trace(q{Trying production: ['join_table' table_ident '\{' join_table_body '\}']},
12330             Parse::RecDescent::_tracefirst($_[1]),
12331             q{sql_block},
12332             $tracelevel)
12333             if defined $::RD_TRACE;
12334 0           my $thisprod = $thisrule->{"prods"}[2];
12335 0           $text = $_[1];
12336 0           my $_savetext;
12337 0           @item = (q{sql_block});
12338 0           %item = (__RULE__ => q{sql_block});
12339 0           my $repcount = 0;
12340              
12341              
12342 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['join_table']},
12343             Parse::RecDescent::_tracefirst($text),
12344             q{sql_block},
12345             $tracelevel)
12346             if defined $::RD_TRACE;
12347 0           $lastsep = "";
12348 0           $expectation->is(q{})->at($text);
12349            
12350              
12351 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Ajoin_table//)
  0 0          
12352             {
12353            
12354 0           $expectation->failed();
12355 0 0         Parse::RecDescent::_trace(qq{<>},
12356             Parse::RecDescent::_tracefirst($text))
12357             if defined $::RD_TRACE;
12358 0           last;
12359             }
12360 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12361             . $& . q{])},
12362             Parse::RecDescent::_tracefirst($text))
12363             if defined $::RD_TRACE;
12364 0           push @item, $item{__STRING1__}=$&;
12365            
12366              
12367            
12368              
12369 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
12370             Parse::RecDescent::_tracefirst($text),
12371             q{sql_block},
12372             $tracelevel)
12373             if defined $::RD_TRACE;
12374 0           $_tok = do { $commit = 1 };
  0            
12375 0 0         if (defined($_tok))
12376             {
12377 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
12378             . $_tok . q{])},
12379             Parse::RecDescent::_tracefirst($text))
12380             if defined $::RD_TRACE;
12381             }
12382             else
12383             {
12384 0 0         Parse::RecDescent::_trace(q{<>},
12385             Parse::RecDescent::_tracefirst($text))
12386             if defined $::RD_TRACE;
12387             }
12388            
12389 0 0         last unless defined $_tok;
12390 0           push @item, $item{__DIRECTIVE1__}=$_tok;
12391            
12392              
12393 0 0         Parse::RecDescent::_trace(q{Trying subrule: [table_ident]},
12394             Parse::RecDescent::_tracefirst($text),
12395             q{sql_block},
12396             $tracelevel)
12397             if defined $::RD_TRACE;
12398 41     41   293 if (1) { no strict qw{refs};
  41         89  
  41         18863  
  0            
12399 0           $expectation->is(q{table_ident})->at($text);
12400 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::table_ident($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
12401             {
12402            
12403 0 0         Parse::RecDescent::_trace(q{<>},
12404             Parse::RecDescent::_tracefirst($text),
12405             q{sql_block},
12406             $tracelevel)
12407             if defined $::RD_TRACE;
12408 0           $expectation->failed();
12409 0           last;
12410             }
12411 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [table_ident]<< (return value: [}
12412             . $_tok . q{]},
12413            
12414             Parse::RecDescent::_tracefirst($text),
12415             q{sql_block},
12416             $tracelevel)
12417             if defined $::RD_TRACE;
12418 0           $item{q{table_ident}} = $_tok;
12419 0           push @item, $_tok;
12420            
12421             }
12422              
12423 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
12424             Parse::RecDescent::_tracefirst($text),
12425             q{sql_block},
12426             $tracelevel)
12427             if defined $::RD_TRACE;
12428 0           $lastsep = "";
12429 0           $expectation->is(q{'\{'})->at($text);
12430            
12431              
12432 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
12433             {
12434            
12435 0           $expectation->failed();
12436 0 0         Parse::RecDescent::_trace(qq{<>},
12437             Parse::RecDescent::_tracefirst($text))
12438             if defined $::RD_TRACE;
12439 0           last;
12440             }
12441 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12442             . $& . q{])},
12443             Parse::RecDescent::_tracefirst($text))
12444             if defined $::RD_TRACE;
12445 0           push @item, $item{__STRING2__}=$&;
12446            
12447              
12448 0 0         Parse::RecDescent::_trace(q{Trying subrule: [join_table_body]},
12449             Parse::RecDescent::_tracefirst($text),
12450             q{sql_block},
12451             $tracelevel)
12452             if defined $::RD_TRACE;
12453 41     41   296 if (1) { no strict qw{refs};
  41         86  
  41         47637  
  0            
12454 0           $expectation->is(q{join_table_body})->at($text);
12455 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::join_table_body($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
12456             {
12457            
12458 0 0         Parse::RecDescent::_trace(q{<>},
12459             Parse::RecDescent::_tracefirst($text),
12460             q{sql_block},
12461             $tracelevel)
12462             if defined $::RD_TRACE;
12463 0           $expectation->failed();
12464 0           last;
12465             }
12466 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [join_table_body]<< (return value: [}
12467             . $_tok . q{]},
12468            
12469             Parse::RecDescent::_tracefirst($text),
12470             q{sql_block},
12471             $tracelevel)
12472             if defined $::RD_TRACE;
12473 0           $item{q{join_table_body}} = $_tok;
12474 0           push @item, $_tok;
12475            
12476             }
12477              
12478 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
12479             Parse::RecDescent::_tracefirst($text),
12480             q{sql_block},
12481             $tracelevel)
12482             if defined $::RD_TRACE;
12483 0           $lastsep = "";
12484 0           $expectation->is(q{'\}'})->at($text);
12485            
12486              
12487 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
12488             {
12489            
12490 0           $expectation->failed();
12491 0 0         Parse::RecDescent::_trace(qq{<>},
12492             Parse::RecDescent::_tracefirst($text))
12493             if defined $::RD_TRACE;
12494 0           last;
12495             }
12496 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12497             . $& . q{])},
12498             Parse::RecDescent::_tracefirst($text))
12499             if defined $::RD_TRACE;
12500 0           push @item, $item{__STRING3__}=$&;
12501            
12502              
12503 0 0         Parse::RecDescent::_trace(q{Trying action},
12504             Parse::RecDescent::_tracefirst($text),
12505             q{sql_block},
12506             $tracelevel)
12507             if defined $::RD_TRACE;
12508            
12509              
12510 0 0         $_tok = ($_noactions) ? 0 : do {
12511 0           bless {
12512             __IDENT__ => Bigtop::Parser->get_ident(),
12513             __NAME__ => $item{table_ident},
12514             __BODY__ => $item{join_table_body}
12515             {'join_table_statement(s?)'},
12516             }, 'join_table'
12517             };
12518 0 0         unless (defined $_tok)
12519             {
12520 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
12521             if defined $::RD_TRACE;
12522 0           last;
12523             }
12524 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
12525             . $_tok . q{])},
12526             Parse::RecDescent::_tracefirst($text))
12527             if defined $::RD_TRACE;
12528 0           push @item, $_tok;
12529 0           $item{__ACTION1__}=$_tok;
12530            
12531              
12532              
12533 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['join_table' table_ident '\{' join_table_body '\}']<<},
12534             Parse::RecDescent::_tracefirst($text),
12535             q{sql_block},
12536             $tracelevel)
12537             if defined $::RD_TRACE;
12538 0           $_matched = 1;
12539 0           last;
12540             }
12541              
12542              
12543 0   0       while (!$_matched && !$commit)
12544             {
12545            
12546 0 0         Parse::RecDescent::_trace(q{Trying production: ['schema' IDENT '\{' '\}']},
12547             Parse::RecDescent::_tracefirst($_[1]),
12548             q{sql_block},
12549             $tracelevel)
12550             if defined $::RD_TRACE;
12551 0           my $thisprod = $thisrule->{"prods"}[3];
12552 0           $text = $_[1];
12553 0           my $_savetext;
12554 0           @item = (q{sql_block});
12555 0           %item = (__RULE__ => q{sql_block});
12556 0           my $repcount = 0;
12557              
12558              
12559 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['schema']},
12560             Parse::RecDescent::_tracefirst($text),
12561             q{sql_block},
12562             $tracelevel)
12563             if defined $::RD_TRACE;
12564 0           $lastsep = "";
12565 0           $expectation->is(q{})->at($text);
12566            
12567              
12568 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\Aschema//)
  0 0          
12569             {
12570            
12571 0           $expectation->failed();
12572 0 0         Parse::RecDescent::_trace(qq{<>},
12573             Parse::RecDescent::_tracefirst($text))
12574             if defined $::RD_TRACE;
12575 0           last;
12576             }
12577 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12578             . $& . q{])},
12579             Parse::RecDescent::_tracefirst($text))
12580             if defined $::RD_TRACE;
12581 0           push @item, $item{__STRING1__}=$&;
12582            
12583              
12584            
12585              
12586 0 0         Parse::RecDescent::_trace(q{Trying directive: []},
12587             Parse::RecDescent::_tracefirst($text),
12588             q{sql_block},
12589             $tracelevel)
12590             if defined $::RD_TRACE;
12591 0           $_tok = do { $commit = 1 };
  0            
12592 0 0         if (defined($_tok))
12593             {
12594 0 0         Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
12595             . $_tok . q{])},
12596             Parse::RecDescent::_tracefirst($text))
12597             if defined $::RD_TRACE;
12598             }
12599             else
12600             {
12601 0 0         Parse::RecDescent::_trace(q{<>},
12602             Parse::RecDescent::_tracefirst($text))
12603             if defined $::RD_TRACE;
12604             }
12605            
12606 0 0         last unless defined $_tok;
12607 0           push @item, $item{__DIRECTIVE1__}=$_tok;
12608            
12609              
12610 0 0         Parse::RecDescent::_trace(q{Trying subrule: [IDENT]},
12611             Parse::RecDescent::_tracefirst($text),
12612             q{sql_block},
12613             $tracelevel)
12614             if defined $::RD_TRACE;
12615 41     41   256 if (1) { no strict qw{refs};
  41         191  
  41         71895  
  0            
12616 0           $expectation->is(q{IDENT})->at($text);
12617 0 0   0     unless (defined ($_tok = Parse::RecDescent::Bigtop::Grammar::IDENT($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
  0            
12618             {
12619            
12620 0 0         Parse::RecDescent::_trace(q{<>},
12621             Parse::RecDescent::_tracefirst($text),
12622             q{sql_block},
12623             $tracelevel)
12624             if defined $::RD_TRACE;
12625 0           $expectation->failed();
12626 0           last;
12627             }
12628 0 0         Parse::RecDescent::_trace(q{>>Matched subrule: [IDENT]<< (return value: [}
12629             . $_tok . q{]},
12630            
12631             Parse::RecDescent::_tracefirst($text),
12632             q{sql_block},
12633             $tracelevel)
12634             if defined $::RD_TRACE;
12635 0           $item{q{IDENT}} = $_tok;
12636 0           push @item, $_tok;
12637            
12638             }
12639              
12640 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\{']},
12641             Parse::RecDescent::_tracefirst($text),
12642             q{sql_block},
12643             $tracelevel)
12644             if defined $::RD_TRACE;
12645 0           $lastsep = "";
12646 0           $expectation->is(q{'\{'})->at($text);
12647            
12648              
12649 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\{//)
  0 0          
12650             {
12651            
12652 0           $expectation->failed();
12653 0 0         Parse::RecDescent::_trace(qq{<>},
12654             Parse::RecDescent::_tracefirst($text))
12655             if defined $::RD_TRACE;
12656 0           last;
12657             }
12658 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12659             . $& . q{])},
12660             Parse::RecDescent::_tracefirst($text))
12661             if defined $::RD_TRACE;
12662 0           push @item, $item{__STRING2__}=$&;
12663            
12664              
12665 0 0         Parse::RecDescent::_trace(q{Trying terminal: ['\}']},
12666             Parse::RecDescent::_tracefirst($text),
12667             q{sql_block},
12668             $tracelevel)
12669             if defined $::RD_TRACE;
12670 0           $lastsep = "";
12671 0           $expectation->is(q{'\}'})->at($text);
12672            
12673              
12674 0 0 0       unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and $text =~ s/\A\}//)
  0 0          
12675             {
12676            
12677 0           $expectation->failed();
12678 0 0         Parse::RecDescent::_trace(qq{<>},
12679             Parse::RecDescent::_tracefirst($text))
12680             if defined $::RD_TRACE;
12681 0           last;
12682             }
12683 0 0         Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12684             . $& . q{])},
12685             Parse::RecDescent::_tracefirst($text))
12686             if defined $::RD_TRACE;
12687 0           push @item, $item{__STRING3__}=$&;
12688            
12689              
12690 0 0         Parse::RecDescent::_trace(q{Trying action},
12691             Parse::RecDescent::_tracefirst($text),
12692             q{sql_block},
12693             $tracelevel)
12694             if defined $::RD_TRACE;
12695            
12696              
12697 0 0         $_tok = ($_noactions) ? 0 : do {
12698             bless {
12699             __IDENT__ => Bigtop::Parser->get_ident(),
12700             __NAME__ => $item{ IDENT },
12701 0           }, 'schema_block'
12702             };
12703 0 0         unless (defined $_tok)
12704             {
12705 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
12706             if defined $::RD_TRACE;
12707 0           last;
12708             }
12709 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
12710             . $_tok . q{])},
12711             Parse::RecDescent::_tracefirst($text))
12712             if defined $::RD_TRACE;
12713 0           push @item, $_tok;
12714 0           $item{__ACTION1__}=$_tok;
12715            
12716              
12717              
12718 0 0         Parse::RecDescent::_trace(q{>>Matched production: ['schema' IDENT '\{' '\}']<<},
12719             Parse::RecDescent::_tracefirst($text),
12720             q{sql_block},
12721             $tracelevel)
12722             if defined $::RD_TRACE;
12723 0           $_matched = 1;
12724 0           last;
12725             }
12726              
12727              
12728 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
12729             {
12730            
12731              
12732 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
12733 0 0         Parse::RecDescent::_trace(q{<>},
12734             Parse::RecDescent::_tracefirst($_[1]),
12735             q{sql_block},
12736             $tracelevel)
12737             if defined $::RD_TRACE;
12738 0           return undef;
12739             }
12740 0 0 0       if (!defined($return) && defined($score))
12741             {
12742 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12743             q{sql_block},
12744             $tracelevel)
12745             if defined $::RD_TRACE;
12746 0           $return = $score_return;
12747             }
12748 0           splice @{$thisparser->{errors}}, $err_at;
  0            
12749 0 0         $return = $item[$#item] unless defined $return;
12750 0 0         if (defined $::RD_TRACE)
12751             {
12752 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12753             $return . q{])}, "",
12754             q{sql_block},
12755             $tracelevel);
12756 0           Parse::RecDescent::_trace(q{(consumed: [} .
12757             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12758             Parse::RecDescent::_tracefirst($text),
12759             , q{sql_block},
12760             $tracelevel)
12761             }
12762 0           $_[1] = $text;
12763 0           return $return;
12764             }
12765              
12766             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12767             sub Parse::RecDescent::Bigtop::Grammar::extra_sql_body
12768             {
12769 0     0     my $thisparser = $_[0];
12770 41     41   311 use vars q{$tracelevel};
  41         91  
  41         40851  
12771 0   0       local $tracelevel = ($tracelevel||0)+1;
12772 0           $ERRORS = 0;
12773 0           my $thisrule = $thisparser->{"rules"}{"extra_sql_body"};
12774            
12775 0 0         Parse::RecDescent::_trace(q{Trying rule: [extra_sql_body]},
12776             Parse::RecDescent::_tracefirst($_[1]),
12777             q{extra_sql_body},
12778             $tracelevel)
12779             if defined $::RD_TRACE;
12780              
12781            
12782 0           my $err_at = @{$thisparser->{errors}};
  0            
12783              
12784 0           my $score;
12785             my $score_return;
12786 0           my $_tok;
12787 0           my $return = undef;
12788 0           my $_matched=0;
12789 0           my $commit=0;
12790 0           my @item = ();
12791 0           my %item = ();
12792 0   0       my $repeating = defined($_[2]) && $_[2];
12793 0   0       my $_noactions = defined($_[3]) && $_[3];
12794 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
12795 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12796 0           my $text;
12797 0           my $lastsep="";
12798 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12799 0           $expectation->at($_[1]);
12800            
12801 0           my $thisline;
12802 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12803              
12804            
12805              
12806 0   0       while (!$_matched && !$commit)
12807             {
12808            
12809 0 0         Parse::RecDescent::_trace(q{Trying production: [extra_sql_statement]},
12810             Parse::RecDescent::_tracefirst($_[1]),
12811             q{extra_sql_body},
12812             $tracelevel)
12813             if defined $::RD_TRACE;
12814 0           my $thisprod = $thisrule->{"prods"}[0];
12815 0           $text = $_[1];
12816 0           my $_savetext;
12817 0           @item = (q{extra_sql_body});
12818 0           %item = (__RULE__ => q{extra_sql_body});
12819 0           my $repcount = 0;
12820              
12821              
12822 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [extra_sql_statement]},
12823             Parse::RecDescent::_tracefirst($text),
12824             q{extra_sql_body},
12825             $tracelevel)
12826             if defined $::RD_TRACE;
12827 0           $expectation->is(q{})->at($text);
12828            
12829 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::extra_sql_statement, 0, 100000000, $_noactions,$expectation,undef)))
12830             {
12831 0 0         Parse::RecDescent::_trace(q{<>},
12832             Parse::RecDescent::_tracefirst($text),
12833             q{extra_sql_body},
12834             $tracelevel)
12835             if defined $::RD_TRACE;
12836 0           last;
12837             }
12838 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [extra_sql_statement]<< (}
12839             . @$_tok . q{ times)},
12840            
12841             Parse::RecDescent::_tracefirst($text),
12842             q{extra_sql_body},
12843             $tracelevel)
12844             if defined $::RD_TRACE;
12845 0           $item{q{extra_sql_statement(s?)}} = $_tok;
12846 0           push @item, $_tok;
12847            
12848              
12849              
12850 0 0         Parse::RecDescent::_trace(q{Trying action},
12851             Parse::RecDescent::_tracefirst($text),
12852             q{extra_sql_body},
12853             $tracelevel)
12854             if defined $::RD_TRACE;
12855            
12856              
12857 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
12858 0 0         unless (defined $_tok)
12859             {
12860 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
12861             if defined $::RD_TRACE;
12862 0           last;
12863             }
12864 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
12865             . $_tok . q{])},
12866             Parse::RecDescent::_tracefirst($text))
12867             if defined $::RD_TRACE;
12868 0           push @item, $_tok;
12869            
12870            
12871              
12872              
12873 0 0         Parse::RecDescent::_trace(q{>>Matched production: [extra_sql_statement]<<},
12874             Parse::RecDescent::_tracefirst($text),
12875             q{extra_sql_body},
12876             $tracelevel)
12877             if defined $::RD_TRACE;
12878 0           $_matched = 1;
12879 0           last;
12880             }
12881              
12882              
12883 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
12884             {
12885            
12886              
12887 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
12888 0 0         Parse::RecDescent::_trace(q{<>},
12889             Parse::RecDescent::_tracefirst($_[1]),
12890             q{extra_sql_body},
12891             $tracelevel)
12892             if defined $::RD_TRACE;
12893 0           return undef;
12894             }
12895 0 0 0       if (!defined($return) && defined($score))
12896             {
12897 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12898             q{extra_sql_body},
12899             $tracelevel)
12900             if defined $::RD_TRACE;
12901 0           $return = $score_return;
12902             }
12903 0           splice @{$thisparser->{errors}}, $err_at;
  0            
12904 0 0         $return = $item[$#item] unless defined $return;
12905 0 0         if (defined $::RD_TRACE)
12906             {
12907 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12908             $return . q{])}, "",
12909             q{extra_sql_body},
12910             $tracelevel);
12911 0           Parse::RecDescent::_trace(q{(consumed: [} .
12912             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12913             Parse::RecDescent::_tracefirst($text),
12914             , q{extra_sql_body},
12915             $tracelevel)
12916             }
12917 0           $_[1] = $text;
12918 0           return $return;
12919             }
12920              
12921             # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12922             sub Parse::RecDescent::Bigtop::Grammar::method_body
12923             {
12924 0     0     my $thisparser = $_[0];
12925 41     41   290 use vars q{$tracelevel};
  41         112  
  41         523584  
12926 0   0       local $tracelevel = ($tracelevel||0)+1;
12927 0           $ERRORS = 0;
12928 0           my $thisrule = $thisparser->{"rules"}{"method_body"};
12929            
12930 0 0         Parse::RecDescent::_trace(q{Trying rule: [method_body]},
12931             Parse::RecDescent::_tracefirst($_[1]),
12932             q{method_body},
12933             $tracelevel)
12934             if defined $::RD_TRACE;
12935              
12936            
12937 0           my $err_at = @{$thisparser->{errors}};
  0            
12938              
12939 0           my $score;
12940             my $score_return;
12941 0           my $_tok;
12942 0           my $return = undef;
12943 0           my $_matched=0;
12944 0           my $commit=0;
12945 0           my @item = ();
12946 0           my %item = ();
12947 0   0       my $repeating = defined($_[2]) && $_[2];
12948 0   0       my $_noactions = defined($_[3]) && $_[3];
12949 0 0         my @arg = defined $_[4] ? @{ &{$_[4]} } : ();
  0            
  0            
12950 0 0         my %arg = ($#arg & 01) ? @arg : (@arg, undef);
12951 0           my $text;
12952 0           my $lastsep="";
12953 0           my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12954 0           $expectation->at($_[1]);
12955            
12956 0           my $thisline;
12957 0           tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12958              
12959            
12960              
12961 0   0       while (!$_matched && !$commit)
12962             {
12963            
12964 0 0         Parse::RecDescent::_trace(q{Trying production: [method_statement]},
12965             Parse::RecDescent::_tracefirst($_[1]),
12966             q{method_body},
12967             $tracelevel)
12968             if defined $::RD_TRACE;
12969 0           my $thisprod = $thisrule->{"prods"}[0];
12970 0           $text = $_[1];
12971 0           my $_savetext;
12972 0           @item = (q{method_body});
12973 0           %item = (__RULE__ => q{method_body});
12974 0           my $repcount = 0;
12975              
12976              
12977 0 0         Parse::RecDescent::_trace(q{Trying repeated subrule: [method_statement]},
12978             Parse::RecDescent::_tracefirst($text),
12979             q{method_body},
12980             $tracelevel)
12981             if defined $::RD_TRACE;
12982 0           $expectation->is(q{})->at($text);
12983            
12984 0 0         unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::Bigtop::Grammar::method_statement, 0, 100000000, $_noactions,$expectation,undef)))
12985             {
12986 0 0         Parse::RecDescent::_trace(q{<>},
12987             Parse::RecDescent::_tracefirst($text),
12988             q{method_body},
12989             $tracelevel)
12990             if defined $::RD_TRACE;
12991 0           last;
12992             }
12993 0 0         Parse::RecDescent::_trace(q{>>Matched repeated subrule: [method_statement]<< (}
12994             . @$_tok . q{ times)},
12995            
12996             Parse::RecDescent::_tracefirst($text),
12997             q{method_body},
12998             $tracelevel)
12999             if defined $::RD_TRACE;
13000 0           $item{q{method_statement(s?)}} = $_tok;
13001 0           push @item, $_tok;
13002            
13003              
13004              
13005 0 0         Parse::RecDescent::_trace(q{Trying action},
13006             Parse::RecDescent::_tracefirst($text),
13007             q{method_body},
13008             $tracelevel)
13009             if defined $::RD_TRACE;
13010            
13011              
13012 0 0         $_tok = ($_noactions) ? 0 : do {bless \%item, $item[0]};
  0            
13013 0 0         unless (defined $_tok)
13014             {
13015 0 0         Parse::RecDescent::_trace(q{<> (return value: [undef])})
13016             if defined $::RD_TRACE;
13017 0           last;
13018             }
13019 0 0         Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
13020             . $_tok . q{])},
13021             Parse::RecDescent::_tracefirst($text))
13022             if defined $::RD_TRACE;
13023 0           push @item, $_tok;
13024            
13025            
13026              
13027              
13028 0 0         Parse::RecDescent::_trace(q{>>Matched production: [method_statement]<<},
13029             Parse::RecDescent::_tracefirst($text),
13030             q{method_body},
13031             $tracelevel)
13032             if defined $::RD_TRACE;
13033 0           $_matched = 1;
13034 0           last;
13035             }
13036              
13037              
13038 0 0 0       unless ( $_matched || defined($return) || defined($score) )
      0        
13039             {
13040            
13041              
13042 0           $_[1] = $text; # NOT SURE THIS IS NEEDED
13043 0 0         Parse::RecDescent::_trace(q{<>},
13044             Parse::RecDescent::_tracefirst($_[1]),
13045             q{method_body},
13046             $tracelevel)
13047             if defined $::RD_TRACE;
13048 0           return undef;
13049             }
13050 0 0 0       if (!defined($return) && defined($score))
13051             {
13052 0 0         Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13053             q{method_body},
13054             $tracelevel)
13055             if defined $::RD_TRACE;
13056 0           $return = $score_return;
13057             }
13058 0           splice @{$thisparser->{errors}}, $err_at;
  0            
13059 0 0         $return = $item[$#item] unless defined $return;
13060 0 0         if (defined $::RD_TRACE)
13061             {
13062 0           Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13063             $return . q{])}, "",
13064             q{method_body},
13065             $tracelevel);
13066 0           Parse::RecDescent::_trace(q{(consumed: [} .
13067             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13068             Parse::RecDescent::_tracefirst($text),
13069             , q{method_body},
13070             $tracelevel)
13071             }
13072 0           $_[1] = $text;
13073 0           return $return;
13074             }
13075             }
13076 0     0 1   package Bigtop::Grammar; sub new { my $self = bless( {
13077             '_AUTOTREE' => {
13078             'TERMINAL' => bless( {
13079             'lookahead' => 0,
13080             'line' => -1,
13081             'code' => '{bless {__VALUE__=>$item[1]}, $item[0]}'
13082             }, 'Parse::RecDescent::Action' ),
13083             'NODE' => bless( {
13084             'lookahead' => 0,
13085             'line' => -1,
13086             'code' => '{bless \\%item, $item[0]}'
13087             }, 'Parse::RecDescent::Action' )
13088             },
13089             'localvars' => '',
13090             'startcode' => '',
13091             '_check' => {
13092             'thisoffset' => '',
13093             'itempos' => '',
13094             'prevoffset' => '',
13095             'prevline' => '',
13096             'prevcolumn' => '',
13097             'thiscolumn' => ''
13098             },
13099             'namespace' => 'Parse::RecDescent::Bigtop::Grammar',
13100             '_AUTOACTION' => undef,
13101             'rules' => {
13102             'method_type' => bless( {
13103             'impcount' => 0,
13104             'calls' => [
13105             'IDENT'
13106             ],
13107             'changed' => 0,
13108             'opcount' => 0,
13109             'prods' => [
13110             bless( {
13111             'number' => '0',
13112             'strcount' => 1,
13113             'dircount' => 0,
13114             'uncommit' => undef,
13115             'error' => undef,
13116             'patcount' => 0,
13117             'actcount' => 1,
13118             'items' => [
13119             bless( {
13120             'pattern' => 'is',
13121             'hashname' => '__STRING1__',
13122             'description' => '\'is\'',
13123             'lookahead' => 0,
13124             'line' => 200
13125             }, 'Parse::RecDescent::Literal' ),
13126             bless( {
13127             'subrule' => 'IDENT',
13128             'matchrule' => 0,
13129             'implicit' => undef,
13130             'argcode' => undef,
13131             'lookahead' => 0,
13132             'line' => 200
13133             }, 'Parse::RecDescent::Subrule' ),
13134             bless( {
13135             'hashname' => '__ACTION1__',
13136             'lookahead' => 0,
13137             'line' => 200,
13138             'code' => '{ $item{IDENT} }'
13139             }, 'Parse::RecDescent::Action' )
13140             ],
13141             'line' => undef
13142             }, 'Parse::RecDescent::Production' )
13143             ],
13144             'name' => 'method_type',
13145             'vars' => '',
13146             'line' => 200
13147             }, 'Parse::RecDescent::Rule' ),
13148             'join_table_statement' => bless( {
13149             'impcount' => 0,
13150             'calls' => [
13151             'IDENT',
13152             'field_body',
13153             'keyword',
13154             'arg_list',
13155             'SEMI_COLON'
13156             ],
13157             'changed' => 0,
13158             'opcount' => 0,
13159             'prods' => [
13160             bless( {
13161             'number' => '0',
13162             'strcount' => 3,
13163             'dircount' => 1,
13164             'uncommit' => undef,
13165             'error' => undef,
13166             'patcount' => 0,
13167             'actcount' => 1,
13168             'items' => [
13169             bless( {
13170             'pattern' => 'field',
13171             'hashname' => '__STRING1__',
13172             'description' => '\'field\'',
13173             'lookahead' => 0,
13174             'line' => 313
13175             }, 'Parse::RecDescent::Literal' ),
13176             bless( {
13177             'hashname' => '__DIRECTIVE1__',
13178             'name' => '',
13179             'lookahead' => 0,
13180             'line' => 313,
13181             'code' => '$commit = 1'
13182             }, 'Parse::RecDescent::Directive' ),
13183             bless( {
13184             'subrule' => 'IDENT',
13185             'matchrule' => 0,
13186             'implicit' => undef,
13187             'argcode' => undef,
13188             'lookahead' => 0,
13189             'line' => 313
13190             }, 'Parse::RecDescent::Subrule' ),
13191             bless( {
13192             'pattern' => '{',
13193             'hashname' => '__STRING2__',
13194             'description' => '\'\\{\'',
13195             'lookahead' => 0,
13196             'line' => 313
13197             }, 'Parse::RecDescent::Literal' ),
13198             bless( {
13199             'subrule' => 'field_body',
13200             'matchrule' => 0,
13201             'implicit' => undef,
13202             'argcode' => undef,
13203             'lookahead' => 0,
13204             'line' => 313
13205             }, 'Parse::RecDescent::Subrule' ),
13206             bless( {
13207             'pattern' => '}',
13208             'hashname' => '__STRING3__',
13209             'description' => '\'\\}\'',
13210             'lookahead' => 0,
13211             'line' => 313
13212             }, 'Parse::RecDescent::Literal' ),
13213             bless( {
13214             'hashname' => '__ACTION1__',
13215             'lookahead' => 0,
13216             'line' => 313,
13217             'code' => '{
13218             bless {
13219             __IDENT__ => Bigtop::Parser->get_ident(),
13220             __TYPE__ => \'field\',
13221             __NAME__ => $item{IDENT},
13222             __BODY__ =>
13223             $item{field_body}{\'field_statement(s?)\'},
13224             }, \'table_element_block\'
13225             }'
13226             }, 'Parse::RecDescent::Action' )
13227             ],
13228             'line' => undef
13229             }, 'Parse::RecDescent::Production' ),
13230             bless( {
13231             'number' => '1',
13232             'strcount' => 0,
13233             'dircount' => 0,
13234             'uncommit' => undef,
13235             'error' => undef,
13236             'patcount' => 0,
13237             'actcount' => 1,
13238             'items' => [
13239             bless( {
13240             'subrule' => 'keyword',
13241             'matchrule' => 0,
13242             'implicit' => undef,
13243             'argcode' => '[\'join_table\']',
13244             'lookahead' => 0,
13245             'line' => 323
13246             }, 'Parse::RecDescent::Subrule' ),
13247             bless( {
13248             'subrule' => 'arg_list',
13249             'matchrule' => 0,
13250             'implicit' => undef,
13251             'argcode' => undef,
13252             'lookahead' => 0,
13253             'line' => 323
13254             }, 'Parse::RecDescent::Subrule' ),
13255             bless( {
13256             'subrule' => 'SEMI_COLON',
13257             'matchrule' => 0,
13258             'implicit' => undef,
13259             'argcode' => undef,
13260             'lookahead' => 0,
13261             'line' => 323
13262             }, 'Parse::RecDescent::Subrule' ),
13263             bless( {
13264             'hashname' => '__ACTION1__',
13265             'lookahead' => 0,
13266             'line' => 323,
13267             'code' => '{
13268             bless {
13269             __KEYWORD__ => $item[1], __DEF__ => $item[2]
13270             }, \'join_table_statement\'
13271             }'
13272             }, 'Parse::RecDescent::Action' )
13273             ],
13274             'line' => 323
13275             }, 'Parse::RecDescent::Production' )
13276             ],
13277             'name' => 'join_table_statement',
13278             'vars' => '',
13279             'line' => 313
13280             }, 'Parse::RecDescent::Rule' ),
13281             'backend_body' => bless( {
13282             'impcount' => 0,
13283             'calls' => [
13284             'backend_statement'
13285             ],
13286             'changed' => 0,
13287             'opcount' => 0,
13288             'prods' => [
13289             bless( {
13290             'number' => '0',
13291             'strcount' => 0,
13292             'dircount' => 0,
13293             'uncommit' => undef,
13294             'error' => undef,
13295             'patcount' => 0,
13296             'actcount' => 1,
13297             'items' => [
13298             bless( {
13299             'subrule' => 'backend_statement',
13300             'expected' => undef,
13301             'min' => 0,
13302             'argcode' => undef,
13303             'max' => 100000000,
13304             'matchrule' => 0,
13305             'repspec' => 's?',
13306             'lookahead' => 0,
13307             'line' => 49
13308             }, 'Parse::RecDescent::Repetition' ),
13309             bless( {
13310             'hashname' => '__ACTION1__',
13311             'lookahead' => 0,
13312             'line' => 49,
13313             'code' => '{
13314             my %config;
13315             foreach my $statement ( @{ $item{\'backend_statement(s?)\'} } ) {
13316             $config{ $statement->[0] } = $statement->[1];
13317             }
13318             $return = \\%config;
13319             }'
13320             }, 'Parse::RecDescent::Action' )
13321             ],
13322             'line' => undef
13323             }, 'Parse::RecDescent::Production' )
13324             ],
13325             'name' => 'backend_body',
13326             'vars' => '',
13327             'line' => 49
13328             }, 'Parse::RecDescent::Rule' ),
13329             'arg' => bless( {
13330             'impcount' => 0,
13331             'calls' => [
13332             'arg_element'
13333             ],
13334             'changed' => 0,
13335             'opcount' => 0,
13336             'prods' => [
13337             bless( {
13338             'number' => '0',
13339             'strcount' => 1,
13340             'dircount' => 0,
13341             'uncommit' => undef,
13342             'error' => undef,
13343             'patcount' => 0,
13344             'actcount' => 1,
13345             'items' => [
13346             bless( {
13347             'subrule' => 'arg_element',
13348             'matchrule' => 0,
13349             'implicit' => undef,
13350             'argcode' => undef,
13351             'lookahead' => 0,
13352             'line' => 380
13353             }, 'Parse::RecDescent::Subrule' ),
13354             bless( {
13355             'pattern' => '=>',
13356             'hashname' => '__STRING1__',
13357             'description' => '\'=>\'',
13358             'lookahead' => 0,
13359             'line' => 380
13360             }, 'Parse::RecDescent::Literal' ),
13361             bless( {
13362             'subrule' => 'arg_element',
13363             'matchrule' => 0,
13364             'implicit' => undef,
13365             'argcode' => undef,
13366             'lookahead' => 0,
13367             'line' => 380
13368             }, 'Parse::RecDescent::Subrule' ),
13369             bless( {
13370             'hashname' => '__ACTION1__',
13371             'lookahead' => 0,
13372             'line' => 380,
13373             'code' => '{ $return = { $item[1] => $item[3] } }'
13374             }, 'Parse::RecDescent::Action' )
13375             ],
13376             'line' => undef
13377             }, 'Parse::RecDescent::Production' ),
13378             bless( {
13379             'number' => '1',
13380             'strcount' => 0,
13381             'dircount' => 0,
13382             'uncommit' => undef,
13383             'error' => undef,
13384             'patcount' => 0,
13385             'actcount' => 1,
13386             'items' => [
13387             bless( {
13388             'subrule' => 'arg_element',
13389             'matchrule' => 0,
13390             'implicit' => undef,
13391             'argcode' => undef,
13392             'lookahead' => 0,
13393             'line' => 381
13394             }, 'Parse::RecDescent::Subrule' ),
13395             bless( {
13396             'hashname' => '__ACTION1__',
13397             'lookahead' => 0,
13398             'line' => 381,
13399             'code' => '{ $item[1] }'
13400             }, 'Parse::RecDescent::Action' )
13401             ],
13402             'line' => 381
13403             }, 'Parse::RecDescent::Production' )
13404             ],
13405             'name' => 'arg',
13406             'vars' => '',
13407             'line' => 380
13408             }, 'Parse::RecDescent::Rule' ),
13409             'IDENT' => bless( {
13410             'impcount' => 0,
13411             'calls' => [],
13412             'changed' => 0,
13413             'opcount' => 0,
13414             'prods' => [
13415             bless( {
13416             'number' => '0',
13417             'strcount' => 0,
13418             'dircount' => 0,
13419             'uncommit' => undef,
13420             'error' => undef,
13421             'patcount' => 1,
13422             'actcount' => 1,
13423             'items' => [
13424             bless( {
13425             'pattern' => '^\\w[\\w\\d_]*',
13426             'hashname' => '__PATTERN1__',
13427             'description' => '/^\\\\w[\\\\w\\\\d_]*/',
13428             'lookahead' => 0,
13429             'rdelim' => '/',
13430             'line' => 418,
13431             'mod' => '',
13432             'ldelim' => '/'
13433             }, 'Parse::RecDescent::Token' ),
13434             bless( {
13435             'hashname' => '__ACTION1__',
13436             'lookahead' => 0,
13437             'line' => 418,
13438             'code' => '{ $item[1] }'
13439             }, 'Parse::RecDescent::Action' )
13440             ],
13441             'line' => undef
13442             }, 'Parse::RecDescent::Production' )
13443             ],
13444             'name' => 'IDENT',
13445             'vars' => '',
13446             'line' => 418
13447             }, 'Parse::RecDescent::Rule' ),
13448             'string' => bless( {
13449             'impcount' => 0,
13450             'calls' => [
13451             'BACKTICK',
13452             'text'
13453             ],
13454             'changed' => 0,
13455             'opcount' => 0,
13456             'prods' => [
13457             bless( {
13458             'number' => '0',
13459             'strcount' => 0,
13460             'dircount' => 1,
13461             'uncommit' => undef,
13462             'error' => undef,
13463             'patcount' => 0,
13464             'actcount' => 1,
13465             'items' => [
13466             bless( {
13467             'subrule' => 'BACKTICK',
13468             'matchrule' => 0,
13469             'implicit' => undef,
13470             'argcode' => undef,
13471             'lookahead' => 0,
13472             'line' => 402
13473             }, 'Parse::RecDescent::Subrule' ),
13474             bless( {
13475             'hashname' => '__DIRECTIVE1__',
13476             'name' => '',
13477             'lookahead' => 0,
13478             'line' => 402,
13479             'code' => 'my $oldskip = $skip; $skip=\'\'; $oldskip'
13480             }, 'Parse::RecDescent::Directive' ),
13481             bless( {
13482             'subrule' => 'text',
13483             'matchrule' => 0,
13484             'implicit' => undef,
13485             'argcode' => undef,
13486             'lookahead' => 0,
13487             'line' => 402
13488             }, 'Parse::RecDescent::Subrule' ),
13489             bless( {
13490             'subrule' => 'BACKTICK',
13491             'matchrule' => 0,
13492             'implicit' => undef,
13493             'argcode' => undef,
13494             'lookahead' => 0,
13495             'line' => 402
13496             }, 'Parse::RecDescent::Subrule' ),
13497             bless( {
13498             'hashname' => '__ACTION1__',
13499             'lookahead' => 0,
13500             'line' => 402,
13501             'code' => '{ $item{text} }'
13502             }, 'Parse::RecDescent::Action' )
13503             ],
13504             'line' => undef
13505             }, 'Parse::RecDescent::Production' )
13506             ],
13507             'name' => 'string',
13508             'vars' => '',
13509             'line' => 402
13510             }, 'Parse::RecDescent::Rule' ),
13511             'app_config_statement' => bless( {
13512             'impcount' => 0,
13513             'calls' => [
13514             'IDENT',
13515             'arg_list',
13516             'SEMI_COLON'
13517             ],
13518             'changed' => 0,
13519             'opcount' => 0,
13520             'prods' => [
13521             bless( {
13522             'number' => '0',
13523             'strcount' => 0,
13524             'dircount' => 0,
13525             'uncommit' => undef,
13526             'error' => undef,
13527             'patcount' => 0,
13528             'actcount' => 1,
13529             'items' => [
13530             bless( {
13531             'subrule' => 'IDENT',
13532             'matchrule' => 0,
13533             'implicit' => undef,
13534             'argcode' => undef,
13535             'lookahead' => 0,
13536             'line' => 337
13537             }, 'Parse::RecDescent::Subrule' ),
13538             bless( {
13539             'subrule' => 'arg_list',
13540             'matchrule' => 0,
13541             'implicit' => undef,
13542             'argcode' => undef,
13543             'lookahead' => 0,
13544             'line' => 337
13545             }, 'Parse::RecDescent::Subrule' ),
13546             bless( {
13547             'subrule' => 'SEMI_COLON',
13548             'matchrule' => 0,
13549             'implicit' => undef,
13550             'argcode' => undef,
13551             'lookahead' => 0,
13552             'line' => 337
13553             }, 'Parse::RecDescent::Subrule' ),
13554             bless( {
13555             'hashname' => '__ACTION1__',
13556             'lookahead' => 0,
13557             'line' => 337,
13558             'code' => '{
13559             bless {
13560             __KEYWORD__ => $item{IDENT},
13561             __ARGS__ => $item{arg_list}
13562             }, \'app_config_statement\'
13563             }'
13564             }, 'Parse::RecDescent::Action' )
13565             ],
13566             'line' => undef
13567             }, 'Parse::RecDescent::Production' ),
13568             bless( {
13569             'number' => '1',
13570             'strcount' => 0,
13571             'dircount' => 0,
13572             'uncommit' => undef,
13573             'error' => undef,
13574             'patcount' => 1,
13575             'actcount' => 1,
13576             'items' => [
13577             bless( {
13578             'pattern' => '[^\\}]',
13579             'hashname' => '__PATTERN1__',
13580             'description' => '/[^\\\\\\}]/',
13581             'lookahead' => 0,
13582             'rdelim' => '/',
13583             'line' => 343,
13584             'mod' => '',
13585             'ldelim' => '/'
13586             }, 'Parse::RecDescent::Token' ),
13587             bless( {
13588             'hashname' => '__ACTION1__',
13589             'lookahead' => 0,
13590             'line' => 343,
13591             'code' => '{
13592             my $message = "bad config statement, "
13593             . "possible extra semicolon";
13594             if ( $backtick_warning ) {
13595             $message .= " ($backtick_warning)";
13596             $backtick_warning = \'\';
13597             }
13598             my $diag_text = $item[1] . $text;
13599             Bigtop::Parser->fatal_error_two_lines(
13600             $message, $diag_text, $thisline
13601             );
13602             }'
13603             }, 'Parse::RecDescent::Action' )
13604             ],
13605             'line' => 343
13606             }, 'Parse::RecDescent::Production' )
13607             ],
13608             'name' => 'app_config_statement',
13609             'vars' => '',
13610             'line' => 337
13611             }, 'Parse::RecDescent::Rule' ),
13612             'arg_element' => bless( {
13613             'impcount' => 0,
13614             'calls' => [
13615             'module_ident',
13616             'string'
13617             ],
13618             'changed' => 0,
13619             'opcount' => 0,
13620             'prods' => [
13621             bless( {
13622             'number' => '0',
13623             'strcount' => 0,
13624             'dircount' => 0,
13625             'uncommit' => undef,
13626             'error' => undef,
13627             'patcount' => 0,
13628             'actcount' => 1,
13629             'items' => [
13630             bless( {
13631             'subrule' => 'module_ident',
13632             'matchrule' => 0,
13633             'implicit' => undef,
13634             'argcode' => undef,
13635             'lookahead' => 0,
13636             'line' => 383
13637             }, 'Parse::RecDescent::Subrule' ),
13638             bless( {
13639             'hashname' => '__ACTION1__',
13640             'lookahead' => 0,
13641             'line' => 383,
13642             'code' => '{ $item[1] }'
13643             }, 'Parse::RecDescent::Action' )
13644             ],
13645             'line' => undef
13646             }, 'Parse::RecDescent::Production' ),
13647             bless( {
13648             'number' => '1',
13649             'strcount' => 0,
13650             'dircount' => 0,
13651             'uncommit' => undef,
13652             'error' => undef,
13653             'patcount' => 0,
13654             'actcount' => 1,
13655             'items' => [
13656             bless( {
13657             'subrule' => 'string',
13658             'matchrule' => 0,
13659             'implicit' => undef,
13660             'argcode' => undef,
13661             'lookahead' => 0,
13662             'line' => 384
13663             }, 'Parse::RecDescent::Subrule' ),
13664             bless( {
13665             'hashname' => '__ACTION1__',
13666             'lookahead' => 0,
13667             'line' => 384,
13668             'code' => '{ $item[1] }'
13669             }, 'Parse::RecDescent::Action' )
13670             ],
13671             'line' => 384
13672             }, 'Parse::RecDescent::Production' ),
13673             bless( {
13674             'number' => '2',
13675             'strcount' => 0,
13676             'dircount' => 0,
13677             'uncommit' => undef,
13678             'error' => undef,
13679             'patcount' => 0,
13680             'actcount' => 1,
13681             'items' => [
13682             bless( {
13683             'hashname' => '__ACTION1__',
13684             'lookahead' => 0,
13685             'line' => 385,
13686             'code' => '{
13687             my $message = "I was expecting an argument or argument list";
13688             if ( $backtick_warning ) {
13689             $message .= " ($backtick_warning)";
13690             $backtick_warning = \'\';
13691             }
13692             Bigtop::Parser->fatal_error_two_lines(
13693             $message, $text, $thisline
13694             );
13695             }'
13696             }, 'Parse::RecDescent::Action' )
13697             ],
13698             'line' => 385
13699             }, 'Parse::RecDescent::Production' )
13700             ],
13701             'name' => 'arg_element',
13702             'vars' => '',
13703             'line' => 383
13704             }, 'Parse::RecDescent::Rule' ),
13705             'backend_statement' => bless( {
13706             'impcount' => 0,
13707             'calls' => [
13708             'IDENT',
13709             'arg_element',
13710             'SEMI_COLON'
13711             ],
13712             'changed' => 0,
13713             'opcount' => 0,
13714             'prods' => [
13715             bless( {
13716             'number' => '0',
13717             'strcount' => 0,
13718             'dircount' => 0,
13719             'uncommit' => undef,
13720             'error' => undef,
13721             'patcount' => 0,
13722             'actcount' => 1,
13723             'items' => [
13724             bless( {
13725             'subrule' => 'IDENT',
13726             'matchrule' => 0,
13727             'implicit' => undef,
13728             'argcode' => undef,
13729             'lookahead' => 0,
13730             'line' => 57
13731             }, 'Parse::RecDescent::Subrule' ),
13732             bless( {
13733             'subrule' => 'arg_element',
13734             'matchrule' => 0,
13735             'implicit' => undef,
13736             'argcode' => undef,
13737             'lookahead' => 0,
13738             'line' => 57
13739             }, 'Parse::RecDescent::Subrule' ),
13740             bless( {
13741             'subrule' => 'SEMI_COLON',
13742             'matchrule' => 0,
13743             'implicit' => undef,
13744             'argcode' => undef,
13745             'lookahead' => 0,
13746             'line' => 57
13747             }, 'Parse::RecDescent::Subrule' ),
13748             bless( {
13749             'hashname' => '__ACTION1__',
13750             'lookahead' => 0,
13751             'line' => 57,
13752             'code' => '{
13753             $return = [ $item{IDENT} => $item{arg_element} ];
13754             }'
13755             }, 'Parse::RecDescent::Action' )
13756             ],
13757             'line' => undef
13758             }, 'Parse::RecDescent::Production' )
13759             ],
13760             'name' => 'backend_statement',
13761             'vars' => '',
13762             'line' => 57
13763             }, 'Parse::RecDescent::Rule' ),
13764             'config_only' => bless( {
13765             'impcount' => 0,
13766             'calls' => [
13767             'configuration',
13768             'anything'
13769             ],
13770             'changed' => 0,
13771             'opcount' => 0,
13772             'prods' => [
13773             bless( {
13774             'number' => '0',
13775             'strcount' => 0,
13776             'dircount' => 0,
13777             'uncommit' => undef,
13778             'error' => undef,
13779             'patcount' => 0,
13780             'actcount' => 1,
13781             'items' => [
13782             bless( {
13783             'subrule' => 'configuration',
13784             'matchrule' => 0,
13785             'implicit' => undef,
13786             'argcode' => undef,
13787             'lookahead' => 0,
13788             'line' => 11
13789             }, 'Parse::RecDescent::Subrule' ),
13790             bless( {
13791             'subrule' => 'anything',
13792             'matchrule' => 0,
13793             'implicit' => undef,
13794             'argcode' => undef,
13795             'lookahead' => 0,
13796             'line' => 11
13797             }, 'Parse::RecDescent::Subrule' ),
13798             bless( {
13799             'hashname' => '__ACTION1__',
13800             'lookahead' => 0,
13801             'line' => 11,
13802             'code' => '{ $item[1] }'
13803             }, 'Parse::RecDescent::Action' )
13804             ],
13805             'line' => undef
13806             }, 'Parse::RecDescent::Production' )
13807             ],
13808             'name' => 'config_only',
13809             'vars' => '',
13810             'line' => 9
13811             }, 'Parse::RecDescent::Rule' ),
13812             'extra_sql_statement_def' => bless( {
13813             'impcount' => 0,
13814             'calls' => [
13815             'arg_list'
13816             ],
13817             'changed' => 0,
13818             'opcount' => 0,
13819             'prods' => [
13820             bless( {
13821             'number' => '0',
13822             'strcount' => 0,
13823             'dircount' => 0,
13824             'uncommit' => undef,
13825             'error' => undef,
13826             'patcount' => 0,
13827             'actcount' => 1,
13828             'items' => [
13829             bless( {
13830             'subrule' => 'arg_list',
13831             'expected' => undef,
13832             'min' => 0,
13833             'argcode' => undef,
13834             'max' => 1,
13835             'matchrule' => 0,
13836             'repspec' => '?',
13837             'lookahead' => 0,
13838             'line' => 305
13839             }, 'Parse::RecDescent::Repetition' ),
13840             bless( {
13841             'hashname' => '__ACTION1__',
13842             'lookahead' => 0,
13843             'line' => 305,
13844             'code' => '{
13845             bless {
13846             __ARGS__ => $item[1]->[0]
13847             }, \'extra_sql_statement_def\'
13848             }'
13849             }, 'Parse::RecDescent::Action' )
13850             ],
13851             'line' => undef
13852             }, 'Parse::RecDescent::Production' )
13853             ],
13854             'name' => 'extra_sql_statement_def',
13855             'vars' => '',
13856             'line' => 305
13857             }, 'Parse::RecDescent::Rule' ),
13858             'field_statement_def' => bless( {
13859             'impcount' => 0,
13860             'calls' => [
13861             'arg_list'
13862             ],
13863             'changed' => 0,
13864             'opcount' => 0,
13865             'prods' => [
13866             bless( {
13867             'number' => '0',
13868             'strcount' => 0,
13869             'dircount' => 0,
13870             'uncommit' => undef,
13871             'error' => undef,
13872             'patcount' => 0,
13873             'actcount' => 1,
13874             'items' => [
13875             bless( {
13876             'subrule' => 'arg_list',
13877             'expected' => undef,
13878             'min' => 0,
13879             'argcode' => undef,
13880             'max' => 1,
13881             'matchrule' => 0,
13882             'repspec' => '?',
13883             'lookahead' => 0,
13884             'line' => 291
13885             }, 'Parse::RecDescent::Repetition' ),
13886             bless( {
13887             'hashname' => '__ACTION1__',
13888             'lookahead' => 0,
13889             'line' => 291,
13890             'code' => '{
13891             bless {
13892             __ARGS__ => $item[1]->[0]
13893             }, \'field_statement_def\'
13894             }'
13895             }, 'Parse::RecDescent::Action' )
13896             ],
13897             'line' => undef
13898             }, 'Parse::RecDescent::Production' )
13899             ],
13900             'name' => 'field_statement_def',
13901             'vars' => '',
13902             'line' => 291
13903             }, 'Parse::RecDescent::Rule' ),
13904             'controller_statement' => bless( {
13905             'impcount' => 0,
13906             'calls' => [
13907             'IDENT',
13908             'method_type',
13909             'method_body',
13910             'CONFIG',
13911             'controller_config_statement',
13912             'keyword',
13913             'string',
13914             'SEMI_COLON',
13915             'arg_list'
13916             ],
13917             'changed' => 0,
13918             'opcount' => 0,
13919             'prods' => [
13920             bless( {
13921             'number' => '0',
13922             'strcount' => 3,
13923             'dircount' => 0,
13924             'uncommit' => undef,
13925             'error' => undef,
13926             'patcount' => 0,
13927             'actcount' => 1,
13928             'items' => [
13929             bless( {
13930             'pattern' => 'method',
13931             'hashname' => '__STRING1__',
13932             'description' => '\'method\'',
13933             'lookahead' => 0,
13934             'line' => 142
13935             }, 'Parse::RecDescent::Literal' ),
13936             bless( {
13937             'subrule' => 'IDENT',
13938             'matchrule' => 0,
13939             'implicit' => undef,
13940             'argcode' => undef,
13941             'lookahead' => 0,
13942             'line' => 142
13943             }, 'Parse::RecDescent::Subrule' ),
13944             bless( {
13945             'subrule' => 'method_type',
13946             'matchrule' => 0,
13947             'implicit' => undef,
13948             'argcode' => undef,
13949             'lookahead' => 0,
13950             'line' => 143
13951             }, 'Parse::RecDescent::Subrule' ),
13952             bless( {
13953             'pattern' => '{',
13954             'hashname' => '__STRING2__',
13955             'description' => '\'\\{\'',
13956             'lookahead' => 0,
13957             'line' => 143
13958             }, 'Parse::RecDescent::Literal' ),
13959             bless( {
13960             'subrule' => 'method_body',
13961             'matchrule' => 0,
13962             'implicit' => undef,
13963             'argcode' => undef,
13964             'lookahead' => 0,
13965             'line' => 143
13966             }, 'Parse::RecDescent::Subrule' ),
13967             bless( {
13968             'pattern' => '}',
13969             'hashname' => '__STRING3__',
13970             'description' => '\'\\}\'',
13971             'lookahead' => 0,
13972             'line' => 143
13973             }, 'Parse::RecDescent::Literal' ),
13974             bless( {
13975             'hashname' => '__ACTION1__',
13976             'lookahead' => 0,
13977             'line' => 143,
13978             'code' => '{
13979             bless {
13980             __IDENT__ => Bigtop::Parser->get_ident(),
13981             __NAME__ => $item{IDENT},
13982             __BODY__ => $item{method_body},
13983             __TYPE__ => $item{method_type},
13984             }, \'controller_method\'
13985             }'
13986             }, 'Parse::RecDescent::Action' )
13987             ],
13988             'line' => undef
13989             }, 'Parse::RecDescent::Production' ),
13990             bless( {
13991             'number' => '1',
13992             'strcount' => 2,
13993             'dircount' => 0,
13994             'uncommit' => undef,
13995             'error' => undef,
13996             'patcount' => 0,
13997             'actcount' => 1,
13998             'items' => [
13999             bless( {
14000             'pattern' => 'method',
14001             'hashname' => '__STRING1__',
14002             'description' => '\'method\'',
14003             'lookahead' => 0,
14004             'line' => 151
14005             }, 'Parse::RecDescent::Literal' ),
14006             bless( {
14007             'subrule' => 'IDENT',
14008             'matchrule' => 0,
14009             'implicit' => undef,
14010             'argcode' => undef,
14011             'lookahead' => 0,
14012             'line' => 151
14013             }, 'Parse::RecDescent::Subrule' ),
14014             bless( {
14015             'pattern' => '{',
14016             'hashname' => '__STRING2__',
14017             'description' => '\'\\{\'',
14018             'lookahead' => 0,
14019             'line' => 151
14020             }, 'Parse::RecDescent::Literal' ),
14021             bless( {
14022             'hashname' => '__ACTION1__',
14023             'lookahead' => 0,
14024             'line' => 151,
14025             'code' => '{
14026             my $diag_text = $item[1] . \' \'
14027             . $item[2] . \' {\'
14028             . $text;
14029             Bigtop::Parser->fatal_error_two_lines(
14030             \'missing method type\', $diag_text, $thisline
14031             );
14032             }'
14033             }, 'Parse::RecDescent::Action' )
14034             ],
14035             'line' => 151
14036             }, 'Parse::RecDescent::Production' ),
14037             bless( {
14038             'number' => '2',
14039             'strcount' => 2,
14040             'dircount' => 0,
14041             'uncommit' => undef,
14042             'error' => undef,
14043             'patcount' => 0,
14044             'actcount' => 1,
14045             'items' => [
14046             bless( {
14047             'subrule' => 'CONFIG',
14048             'matchrule' => 0,
14049             'implicit' => undef,
14050             'argcode' => undef,
14051             'lookahead' => 0,
14052             'line' => 159
14053             }, 'Parse::RecDescent::Subrule' ),
14054             bless( {
14055             'subrule' => 'IDENT',
14056             'expected' => undef,
14057             'min' => 0,
14058             'argcode' => undef,
14059             'max' => 1,
14060             'matchrule' => 0,
14061             'repspec' => '?',
14062             'lookahead' => 0,
14063             'line' => 159
14064             }, 'Parse::RecDescent::Repetition' ),
14065             bless( {
14066             'pattern' => '{',
14067             'hashname' => '__STRING1__',
14068             'description' => '\'\\{\'',
14069             'lookahead' => 0,
14070             'line' => 159
14071             }, 'Parse::RecDescent::Literal' ),
14072             bless( {
14073             'subrule' => 'controller_config_statement',
14074             'expected' => undef,
14075             'min' => 0,
14076             'argcode' => undef,
14077             'max' => 100000000,
14078             'matchrule' => 0,
14079             'repspec' => 's?',
14080             'lookahead' => 0,
14081             'line' => 159
14082             }, 'Parse::RecDescent::Repetition' ),
14083             bless( {
14084             'pattern' => '}',
14085             'hashname' => '__STRING2__',
14086             'description' => '\'\\}\'',
14087             'lookahead' => 0,
14088             'line' => 159
14089             }, 'Parse::RecDescent::Literal' ),
14090             bless( {
14091             'hashname' => '__ACTION1__',
14092             'lookahead' => 0,
14093             'line' => 159,
14094             'code' => '{
14095             bless {
14096             __IDENT__ => Bigtop::Parser->get_ident(),
14097             __BODY__ => $item{\'controller_config_statement(s?)\'},
14098             __TYPE__ => $item{\'IDENT(?)\'}[0],
14099             }, \'controller_config_block\'
14100             }'
14101             }, 'Parse::RecDescent::Action' )
14102             ],
14103             'line' => 159
14104             }, 'Parse::RecDescent::Production' ),
14105             bless( {
14106             'number' => '3',
14107             'strcount' => 1,
14108             'dircount' => 0,
14109             'uncommit' => undef,
14110             'error' => undef,
14111             'patcount' => 0,
14112             'actcount' => 1,
14113             'items' => [
14114             bless( {
14115             'pattern' => 'literal',
14116             'hashname' => '__STRING1__',
14117             'description' => '\'literal\'',
14118             'lookahead' => 0,
14119             'line' => 166
14120             }, 'Parse::RecDescent::Literal' ),
14121             bless( {
14122             'subrule' => 'keyword',
14123             'matchrule' => 0,
14124             'implicit' => undef,
14125             'argcode' => '[ \'controller_literal\' ]',
14126             'lookahead' => 0,
14127             'line' => 166
14128             }, 'Parse::RecDescent::Subrule' ),
14129             bless( {
14130             'subrule' => 'string',
14131             'matchrule' => 0,
14132             'implicit' => undef,
14133             'argcode' => undef,
14134             'lookahead' => 0,
14135             'line' => 167
14136             }, 'Parse::RecDescent::Subrule' ),
14137             bless( {
14138             'subrule' => 'SEMI_COLON',
14139             'matchrule' => 0,
14140             'implicit' => undef,
14141             'argcode' => undef,
14142             'lookahead' => 0,
14143             'line' => 167
14144             }, 'Parse::RecDescent::Subrule' ),
14145             bless( {
14146             'hashname' => '__ACTION1__',
14147             'lookahead' => 0,
14148             'line' => 167,
14149             'code' => '{
14150             bless {
14151             __IDENT__ => Bigtop::Parser->get_ident(),
14152             __BACKEND__ => $item{ keyword },
14153             __BODY__ => $item{ string },
14154             }, \'controller_literal_block\'
14155             }'
14156             }, 'Parse::RecDescent::Action' )
14157             ],
14158             'line' => 166
14159             }, 'Parse::RecDescent::Production' ),
14160             bless( {
14161             'number' => '4',
14162             'strcount' => 0,
14163             'dircount' => 0,
14164             'uncommit' => undef,
14165             'error' => undef,
14166             'patcount' => 0,
14167             'actcount' => 1,
14168             'items' => [
14169             bless( {
14170             'subrule' => 'keyword',
14171             'matchrule' => 0,
14172             'implicit' => undef,
14173             'argcode' => '[\'controller\']',
14174             'lookahead' => 0,
14175             'line' => 174
14176             }, 'Parse::RecDescent::Subrule' ),
14177             bless( {
14178             'subrule' => 'arg_list',
14179             'expected' => undef,
14180             'min' => 0,
14181             'argcode' => undef,
14182             'max' => 1,
14183             'matchrule' => 0,
14184             'repspec' => '?',
14185             'lookahead' => 0,
14186             'line' => 174
14187             }, 'Parse::RecDescent::Repetition' ),
14188             bless( {
14189             'subrule' => 'SEMI_COLON',
14190             'matchrule' => 0,
14191             'implicit' => undef,
14192             'argcode' => undef,
14193             'lookahead' => 0,
14194             'line' => 174
14195             }, 'Parse::RecDescent::Subrule' ),
14196             bless( {
14197             'hashname' => '__ACTION1__',
14198             'lookahead' => 0,
14199             'line' => 174,
14200             'code' => '{
14201             bless {
14202             __KEYWORD__ => $item{keyword},
14203             __ARGS__ => $item{\'arg_list(?)\'}->[0],
14204             }, \'controller_statement\'
14205             }'
14206             }, 'Parse::RecDescent::Action' )
14207             ],
14208             'line' => 174
14209             }, 'Parse::RecDescent::Production' )
14210             ],
14211             'name' => 'controller_statement',
14212             'vars' => '',
14213             'line' => 142
14214             }, 'Parse::RecDescent::Rule' ),
14215             'configuration' => bless( {
14216             'impcount' => 0,
14217             'calls' => [
14218             'config_body'
14219             ],
14220             'changed' => 0,
14221             'opcount' => 0,
14222             'prods' => [
14223             bless( {
14224             'number' => '0',
14225             'strcount' => 3,
14226             'dircount' => 0,
14227             'uncommit' => undef,
14228             'error' => undef,
14229             'patcount' => 0,
14230             'actcount' => 1,
14231             'items' => [
14232             bless( {
14233             'pattern' => 'config',
14234             'hashname' => '__STRING1__',
14235             'description' => '\'config\'',
14236             'lookahead' => 0,
14237             'line' => 17
14238             }, 'Parse::RecDescent::Literal' ),
14239             bless( {
14240             'pattern' => '{',
14241             'hashname' => '__STRING2__',
14242             'description' => '\'\\{\'',
14243             'lookahead' => 0,
14244             'line' => 17
14245             }, 'Parse::RecDescent::Literal' ),
14246             bless( {
14247             'subrule' => 'config_body',
14248             'matchrule' => 0,
14249             'implicit' => undef,
14250             'argcode' => undef,
14251             'lookahead' => 0,
14252             'line' => 17
14253             }, 'Parse::RecDescent::Subrule' ),
14254             bless( {
14255             'pattern' => '}',
14256             'hashname' => '__STRING3__',
14257             'description' => '\'\\}\'',
14258             'lookahead' => 0,
14259             'line' => 17
14260             }, 'Parse::RecDescent::Literal' ),
14261             bless( {
14262             'hashname' => '__ACTION1__',
14263             'lookahead' => 0,
14264             'line' => 17,
14265             'code' => '{ $item{config_body} }'
14266             }, 'Parse::RecDescent::Action' )
14267             ],
14268             'line' => undef
14269             }, 'Parse::RecDescent::Production' )
14270             ],
14271             'name' => 'configuration',
14272             'vars' => '',
14273             'line' => 17
14274             }, 'Parse::RecDescent::Rule' ),
14275             'config_statement' => bless( {
14276             'impcount' => 0,
14277             'calls' => [
14278             'module_ident',
14279             'IDENT',
14280             'backend_body',
14281             'keyword',
14282             'arg_element',
14283             'SEMI_COLON'
14284             ],
14285             'changed' => 0,
14286             'opcount' => 0,
14287             'prods' => [
14288             bless( {
14289             'number' => '0',
14290             'strcount' => 2,
14291             'dircount' => 0,
14292             'uncommit' => undef,
14293             'error' => undef,
14294             'patcount' => 0,
14295             'actcount' => 1,
14296             'items' => [
14297             bless( {
14298             'subrule' => 'module_ident',
14299             'matchrule' => 0,
14300             'implicit' => undef,
14301             'argcode' => undef,
14302             'lookahead' => 0,
14303             'line' => 36
14304             }, 'Parse::RecDescent::Subrule' ),
14305             bless( {
14306             'subrule' => 'IDENT',
14307             'matchrule' => 0,
14308             'implicit' => undef,
14309             'argcode' => undef,
14310             'lookahead' => 0,
14311             'line' => 36
14312             }, 'Parse::RecDescent::Subrule' ),
14313             bless( {
14314             'pattern' => '{',
14315             'hashname' => '__STRING1__',
14316             'description' => '\'\\{\'',
14317             'lookahead' => 0,
14318             'line' => 36
14319             }, 'Parse::RecDescent::Literal' ),
14320             bless( {
14321             'subrule' => 'backend_body',
14322             'matchrule' => 0,
14323             'implicit' => undef,
14324             'argcode' => undef,
14325             'lookahead' => 0,
14326             'line' => 36
14327             }, 'Parse::RecDescent::Subrule' ),
14328             bless( {
14329             'pattern' => '}',
14330             'hashname' => '__STRING2__',
14331             'description' => '\'\\}\'',
14332             'lookahead' => 0,
14333             'line' => 36
14334             }, 'Parse::RecDescent::Literal' ),
14335             bless( {
14336             'hashname' => '__ACTION1__',
14337             'lookahead' => 0,
14338             'line' => 36,
14339             'code' => '{
14340             my $backend_data = $item{backend_body};
14341             my $backend_type = $item{module_ident};
14342             my $backend_name = $item{IDENT};
14343              
14344             $backend_data->{__NAME__} = $backend_name;
14345              
14346             $return = [ $backend_type => $backend_data ];
14347             }'
14348             }, 'Parse::RecDescent::Action' )
14349             ],
14350             'line' => undef
14351             }, 'Parse::RecDescent::Production' ),
14352             bless( {
14353             'number' => '1',
14354             'strcount' => 0,
14355             'dircount' => 0,
14356             'uncommit' => undef,
14357             'error' => undef,
14358             'patcount' => 0,
14359             'actcount' => 1,
14360             'items' => [
14361             bless( {
14362             'subrule' => 'keyword',
14363             'matchrule' => 0,
14364             'implicit' => undef,
14365             'argcode' => '[ \'config\' ]',
14366             'lookahead' => 0,
14367             'line' => 45
14368             }, 'Parse::RecDescent::Subrule' ),
14369             bless( {
14370             'subrule' => 'arg_element',
14371             'matchrule' => 0,
14372             'implicit' => undef,
14373             'argcode' => undef,
14374             'lookahead' => 0,
14375             'line' => 45
14376             }, 'Parse::RecDescent::Subrule' ),
14377             bless( {
14378             'subrule' => 'SEMI_COLON',
14379             'matchrule' => 0,
14380             'implicit' => undef,
14381             'argcode' => undef,
14382             'lookahead' => 0,
14383             'line' => 45
14384             }, 'Parse::RecDescent::Subrule' ),
14385             bless( {
14386             'hashname' => '__ACTION1__',
14387             'lookahead' => 0,
14388             'line' => 45,
14389             'code' => '{
14390             $return = [ $item{keyword} => $item{arg_element} ];
14391             }'
14392             }, 'Parse::RecDescent::Action' )
14393             ],
14394             'line' => 45
14395             }, 'Parse::RecDescent::Production' )
14396             ],
14397             'name' => 'config_statement',
14398             'vars' => '',
14399             'line' => 36
14400             }, 'Parse::RecDescent::Rule' ),
14401             'table_ident' => bless( {
14402             'impcount' => 0,
14403             'calls' => [
14404             'IDENT'
14405             ],
14406             'changed' => 0,
14407             'opcount' => 0,
14408             'prods' => [
14409             bless( {
14410             'number' => '0',
14411             'strcount' => 1,
14412             'dircount' => 0,
14413             'uncommit' => undef,
14414             'error' => undef,
14415             'patcount' => 0,
14416             'actcount' => 1,
14417             'items' => [
14418             bless( {
14419             'subrule' => 'IDENT',
14420             'matchrule' => 0,
14421             'implicit' => undef,
14422             'argcode' => undef,
14423             'lookahead' => 0,
14424             'line' => 396
14425             }, 'Parse::RecDescent::Subrule' ),
14426             bless( {
14427             'pattern' => '.',
14428             'hashname' => '__STRING1__',
14429             'description' => '\'.\'',
14430             'lookahead' => 0,
14431             'line' => 396
14432             }, 'Parse::RecDescent::Literal' ),
14433             bless( {
14434             'subrule' => 'IDENT',
14435             'matchrule' => 0,
14436             'implicit' => undef,
14437             'argcode' => undef,
14438             'lookahead' => 0,
14439             'line' => 396
14440             }, 'Parse::RecDescent::Subrule' ),
14441             bless( {
14442             'hashname' => '__ACTION1__',
14443             'lookahead' => 0,
14444             'line' => 396,
14445             'code' => '{ $item[1] . \'.\' . $item[3] }'
14446             }, 'Parse::RecDescent::Action' )
14447             ],
14448             'line' => undef
14449             }, 'Parse::RecDescent::Production' ),
14450             bless( {
14451             'number' => '1',
14452             'strcount' => 0,
14453             'dircount' => 0,
14454             'uncommit' => undef,
14455             'error' => undef,
14456             'patcount' => 0,
14457             'actcount' => 1,
14458             'items' => [
14459             bless( {
14460             'subrule' => 'IDENT',
14461             'matchrule' => 0,
14462             'implicit' => undef,
14463             'argcode' => undef,
14464             'lookahead' => 0,
14465             'line' => 397
14466             }, 'Parse::RecDescent::Subrule' ),
14467             bless( {
14468             'hashname' => '__ACTION1__',
14469             'lookahead' => 0,
14470             'line' => 397,
14471             'code' => '{ $item[1] }'
14472             }, 'Parse::RecDescent::Action' )
14473             ],
14474             'line' => 397
14475             }, 'Parse::RecDescent::Production' )
14476             ],
14477             'name' => 'table_ident',
14478             'vars' => '',
14479             'line' => 396
14480             }, 'Parse::RecDescent::Rule' ),
14481             'table_body' => bless( {
14482             'impcount' => 0,
14483             'calls' => [
14484             'table_element_block'
14485             ],
14486             'changed' => 0,
14487             'opcount' => 0,
14488             'prods' => [
14489             bless( {
14490             'number' => '0',
14491             'strcount' => 0,
14492             'dircount' => 0,
14493             'uncommit' => undef,
14494             'error' => undef,
14495             'patcount' => 0,
14496             'actcount' => 0,
14497             'items' => [
14498             bless( {
14499             'subrule' => 'table_element_block',
14500             'expected' => undef,
14501             'min' => 0,
14502             'argcode' => undef,
14503             'max' => 100000000,
14504             'matchrule' => 0,
14505             'repspec' => 's?',
14506             'lookahead' => 0,
14507             'line' => 253
14508             }, 'Parse::RecDescent::Repetition' )
14509             ],
14510             'line' => undef
14511             }, 'Parse::RecDescent::Production' )
14512             ],
14513             'name' => 'table_body',
14514             'vars' => '',
14515             'line' => 253
14516             }, 'Parse::RecDescent::Rule' ),
14517             'anything' => bless( {
14518             'impcount' => 0,
14519             'calls' => [],
14520             'changed' => 0,
14521             'opcount' => 0,
14522             'prods' => [
14523             bless( {
14524             'number' => '0',
14525             'strcount' => 0,
14526             'dircount' => 0,
14527             'uncommit' => undef,
14528             'error' => undef,
14529             'patcount' => 1,
14530             'actcount' => 0,
14531             'items' => [
14532             bless( {
14533             'pattern' => '.*',
14534             'hashname' => '__PATTERN1__',
14535             'description' => '/.*/s',
14536             'lookahead' => 0,
14537             'rdelim' => '/',
14538             'line' => 13,
14539             'mod' => 's',
14540             'ldelim' => '/'
14541             }, 'Parse::RecDescent::Token' )
14542             ],
14543             'line' => undef
14544             }, 'Parse::RecDescent::Production' )
14545             ],
14546             'name' => 'anything',
14547             'vars' => '',
14548             'line' => 13
14549             }, 'Parse::RecDescent::Rule' ),
14550             'app_statement' => bless( {
14551             'impcount' => 0,
14552             'calls' => [
14553             'keyword',
14554             'arg_list',
14555             'SEMI_COLON'
14556             ],
14557             'changed' => 0,
14558             'opcount' => 0,
14559             'prods' => [
14560             bless( {
14561             'number' => '0',
14562             'strcount' => 0,
14563             'dircount' => 0,
14564             'uncommit' => undef,
14565             'error' => undef,
14566             'patcount' => 0,
14567             'actcount' => 1,
14568             'items' => [
14569             bless( {
14570             'subrule' => 'keyword',
14571             'matchrule' => 0,
14572             'implicit' => undef,
14573             'argcode' => '[ \'app\' ]',
14574             'lookahead' => 0,
14575             'line' => 87
14576             }, 'Parse::RecDescent::Subrule' ),
14577             bless( {
14578             'subrule' => 'arg_list',
14579             'expected' => undef,
14580             'min' => 0,
14581             'argcode' => undef,
14582             'max' => 1,
14583             'matchrule' => 0,
14584             'repspec' => '?',
14585             'lookahead' => 0,
14586             'line' => 87
14587             }, 'Parse::RecDescent::Repetition' ),
14588             bless( {
14589             'subrule' => 'SEMI_COLON',
14590             'matchrule' => 0,
14591             'implicit' => undef,
14592             'argcode' => undef,
14593             'lookahead' => 0,
14594             'line' => 87
14595             }, 'Parse::RecDescent::Subrule' ),
14596             bless( {
14597             'hashname' => '__ACTION1__',
14598             'lookahead' => 0,
14599             'line' => 87,
14600             'code' => '{
14601             bless {
14602             __KEYWORD__ => $item{keyword},
14603             __ARGS__ => $item{\'arg_list(?)\'}->[0],
14604             }, \'app_statement\'
14605             }'
14606             }, 'Parse::RecDescent::Action' )
14607             ],
14608             'line' => undef
14609             }, 'Parse::RecDescent::Production' )
14610             ],
14611             'name' => 'app_statement',
14612             'vars' => '',
14613             'line' => 87
14614             }, 'Parse::RecDescent::Rule' ),
14615             'BACKTICK' => bless( {
14616             'impcount' => 0,
14617             'calls' => [],
14618             'changed' => 0,
14619             'opcount' => 0,
14620             'prods' => [
14621             bless( {
14622             'number' => '0',
14623             'strcount' => 1,
14624             'dircount' => 0,
14625             'uncommit' => undef,
14626             'error' => undef,
14627             'patcount' => 0,
14628             'actcount' => 1,
14629             'items' => [
14630             bless( {
14631             'pattern' => '`',
14632             'hashname' => '__STRING1__',
14633             'description' => '\'`\'',
14634             'lookahead' => 0,
14635             'line' => 416
14636             }, 'Parse::RecDescent::InterpLit' ),
14637             bless( {
14638             'hashname' => '__ACTION1__',
14639             'lookahead' => 0,
14640             'line' => 416,
14641             'code' => '{ $backtick_line = $thisline; }'
14642             }, 'Parse::RecDescent::Action' )
14643             ],
14644             'line' => undef
14645             }, 'Parse::RecDescent::Production' )
14646             ],
14647             'name' => 'BACKTICK',
14648             'vars' => '',
14649             'line' => 416
14650             }, 'Parse::RecDescent::Rule' ),
14651             'join_table_body' => bless( {
14652             'impcount' => 0,
14653             'calls' => [
14654             'join_table_statement'
14655             ],
14656             'changed' => 0,
14657             'opcount' => 0,
14658             'prods' => [
14659             bless( {
14660             'number' => '0',
14661             'strcount' => 0,
14662             'dircount' => 0,
14663             'uncommit' => undef,
14664             'error' => undef,
14665             'patcount' => 0,
14666             'actcount' => 0,
14667             'items' => [
14668             bless( {
14669             'subrule' => 'join_table_statement',
14670             'expected' => undef,
14671             'min' => 0,
14672             'argcode' => undef,
14673             'max' => 100000000,
14674             'matchrule' => 0,
14675             'repspec' => 's?',
14676             'lookahead' => 0,
14677             'line' => 311
14678             }, 'Parse::RecDescent::Repetition' )
14679             ],
14680             'line' => undef
14681             }, 'Parse::RecDescent::Production' )
14682             ],
14683             'name' => 'join_table_body',
14684             'vars' => '',
14685             'line' => 311
14686             }, 'Parse::RecDescent::Rule' ),
14687             'literal_block' => bless( {
14688             'impcount' => 0,
14689             'calls' => [
14690             'keyword',
14691             'string',
14692             'SEMI_COLON'
14693             ],
14694             'changed' => 0,
14695             'opcount' => 0,
14696             'prods' => [
14697             bless( {
14698             'number' => '0',
14699             'strcount' => 1,
14700             'dircount' => 0,
14701             'uncommit' => undef,
14702             'error' => undef,
14703             'patcount' => 0,
14704             'actcount' => 1,
14705             'items' => [
14706             bless( {
14707             'pattern' => 'literal',
14708             'hashname' => '__STRING1__',
14709             'description' => '\'literal\'',
14710             'lookahead' => 0,
14711             'line' => 94
14712             }, 'Parse::RecDescent::Literal' ),
14713             bless( {
14714             'subrule' => 'keyword',
14715             'matchrule' => 0,
14716             'implicit' => undef,
14717             'argcode' => '[ \'app_literal\' ]',
14718             'lookahead' => 0,
14719             'line' => 94
14720             }, 'Parse::RecDescent::Subrule' ),
14721             bless( {
14722             'subrule' => 'string',
14723             'matchrule' => 0,
14724             'implicit' => undef,
14725             'argcode' => undef,
14726             'lookahead' => 0,
14727             'line' => 95
14728             }, 'Parse::RecDescent::Subrule' ),
14729             bless( {
14730             'subrule' => 'SEMI_COLON',
14731             'matchrule' => 0,
14732             'implicit' => undef,
14733             'argcode' => undef,
14734             'lookahead' => 0,
14735             'line' => 95
14736             }, 'Parse::RecDescent::Subrule' ),
14737             bless( {
14738             'hashname' => '__ACTION1__',
14739             'lookahead' => 0,
14740             'line' => 95,
14741             'code' => '{
14742             bless {
14743             __IDENT__ => Bigtop::Parser->get_ident(),
14744             __BACKEND__ => $item{ keyword },
14745             __BODY__ => $item{ string },
14746             }, \'literal_block\'
14747             }'
14748             }, 'Parse::RecDescent::Action' )
14749             ],
14750             'line' => undef
14751             }, 'Parse::RecDescent::Production' )
14752             ],
14753             'name' => 'literal_block',
14754             'vars' => '',
14755             'line' => 94
14756             }, 'Parse::RecDescent::Rule' ),
14757             'field_statement' => bless( {
14758             'impcount' => 0,
14759             'calls' => [
14760             'keyword',
14761             'field_statement_def',
14762             'SEMI_COLON'
14763             ],
14764             'changed' => 0,
14765             'opcount' => 0,
14766             'prods' => [
14767             bless( {
14768             'number' => '0',
14769             'strcount' => 0,
14770             'dircount' => 0,
14771             'uncommit' => undef,
14772             'error' => undef,
14773             'patcount' => 0,
14774             'actcount' => 1,
14775             'items' => [
14776             bless( {
14777             'subrule' => 'keyword',
14778             'matchrule' => 0,
14779             'implicit' => undef,
14780             'argcode' => '[\'field\']',
14781             'lookahead' => 0,
14782             'line' => 285
14783             }, 'Parse::RecDescent::Subrule' ),
14784             bless( {
14785             'subrule' => 'field_statement_def',
14786             'matchrule' => 0,
14787             'implicit' => undef,
14788             'argcode' => undef,
14789             'lookahead' => 0,
14790             'line' => 285
14791             }, 'Parse::RecDescent::Subrule' ),
14792             bless( {
14793             'subrule' => 'SEMI_COLON',
14794             'matchrule' => 0,
14795             'implicit' => undef,
14796             'argcode' => undef,
14797             'lookahead' => 0,
14798             'line' => 285
14799             }, 'Parse::RecDescent::Subrule' ),
14800             bless( {
14801             'hashname' => '__ACTION1__',
14802             'lookahead' => 0,
14803             'line' => 285,
14804             'code' => '{
14805             bless {
14806             __KEYWORD__ => $item[1], __DEF__ => $item[2]
14807             }, \'field_statement\'
14808             }'
14809             }, 'Parse::RecDescent::Action' )
14810             ],
14811             'line' => undef
14812             }, 'Parse::RecDescent::Production' )
14813             ],
14814             'name' => 'field_statement',
14815             'vars' => '',
14816             'line' => 285
14817             }, 'Parse::RecDescent::Rule' ),
14818             'method_statement' => bless( {
14819             'impcount' => 0,
14820             'calls' => [
14821             'keyword',
14822             'arg_list',
14823             'SEMI_COLON'
14824             ],
14825             'changed' => 0,
14826             'opcount' => 0,
14827             'prods' => [
14828             bless( {
14829             'number' => '0',
14830             'strcount' => 0,
14831             'dircount' => 0,
14832             'uncommit' => undef,
14833             'error' => undef,
14834             'patcount' => 0,
14835             'actcount' => 1,
14836             'items' => [
14837             bless( {
14838             'subrule' => 'keyword',
14839             'matchrule' => 0,
14840             'implicit' => undef,
14841             'argcode' => '[\'method\']',
14842             'lookahead' => 0,
14843             'line' => 204
14844             }, 'Parse::RecDescent::Subrule' ),
14845             bless( {
14846             'subrule' => 'arg_list',
14847             'matchrule' => 0,
14848             'implicit' => undef,
14849             'argcode' => undef,
14850             'lookahead' => 0,
14851             'line' => 204
14852             }, 'Parse::RecDescent::Subrule' ),
14853             bless( {
14854             'subrule' => 'SEMI_COLON',
14855             'matchrule' => 0,
14856             'implicit' => undef,
14857             'argcode' => undef,
14858             'lookahead' => 0,
14859             'line' => 204
14860             }, 'Parse::RecDescent::Subrule' ),
14861             bless( {
14862             'hashname' => '__ACTION1__',
14863             'lookahead' => 0,
14864             'line' => 204,
14865             'code' => '{
14866             bless {
14867             __KEYWORD__ => $item{keyword},
14868             __ARGS__ => $item{arg_list}
14869             }, \'method_statement\'
14870             }'
14871             }, 'Parse::RecDescent::Action' )
14872             ],
14873             'line' => undef
14874             }, 'Parse::RecDescent::Production' )
14875             ],
14876             'name' => 'method_statement',
14877             'vars' => '',
14878             'line' => 204
14879             }, 'Parse::RecDescent::Rule' ),
14880             'controller_body' => bless( {
14881             'impcount' => 0,
14882             'calls' => [
14883             'controller_statement'
14884             ],
14885             'changed' => 0,
14886             'opcount' => 0,
14887             'prods' => [
14888             bless( {
14889             'number' => '0',
14890             'strcount' => 0,
14891             'dircount' => 0,
14892             'uncommit' => undef,
14893             'error' => undef,
14894             'patcount' => 0,
14895             'actcount' => 0,
14896             'items' => [
14897             bless( {
14898             'subrule' => 'controller_statement',
14899             'expected' => undef,
14900             'min' => 0,
14901             'argcode' => undef,
14902             'max' => 100000000,
14903             'matchrule' => 0,
14904             'repspec' => 's?',
14905             'lookahead' => 0,
14906             'line' => 140
14907             }, 'Parse::RecDescent::Repetition' )
14908             ],
14909             'line' => undef
14910             }, 'Parse::RecDescent::Production' )
14911             ],
14912             'name' => 'controller_body',
14913             'vars' => '',
14914             'line' => 140
14915             }, 'Parse::RecDescent::Rule' ),
14916             'keyword' => bless( {
14917             'impcount' => 0,
14918             'calls' => [
14919             'IDENT'
14920             ],
14921             'changed' => 0,
14922             'opcount' => 0,
14923             'prods' => [
14924             bless( {
14925             'number' => '0',
14926             'strcount' => 0,
14927             'dircount' => 0,
14928             'uncommit' => undef,
14929             'error' => undef,
14930             'patcount' => 0,
14931             'actcount' => 1,
14932             'items' => [
14933             bless( {
14934             'subrule' => 'IDENT',
14935             'matchrule' => 0,
14936             'implicit' => undef,
14937             'argcode' => undef,
14938             'lookahead' => 0,
14939             'line' => 356
14940             }, 'Parse::RecDescent::Subrule' ),
14941             bless( {
14942             'hashname' => '__ACTION1__',
14943             'lookahead' => 0,
14944             'line' => 356,
14945             'code' => '{
14946             if ( Bigtop::Parser->is_valid_keyword( $arg[0], $item[1] ) ) {
14947             $return = $item[1];
14948             }
14949             else {
14950             my @expected = Bigtop::Parser->get_valid_keywords( $arg[0] );
14951             Bigtop::Parser->fatal_keyword_error(
14952             {
14953             bad_keyword => $item[1],
14954             diag_text => $text,
14955             input_linenum => $thisline,
14956             expected => \\@expected,
14957             type => $arg[0],
14958             }
14959             );
14960             }
14961             }'
14962             }, 'Parse::RecDescent::Action' )
14963             ],
14964             'line' => undef
14965             }, 'Parse::RecDescent::Production' )
14966             ],
14967             'name' => 'keyword',
14968             'vars' => '',
14969             'line' => 356
14970             }, 'Parse::RecDescent::Rule' ),
14971             'SEMI_COLON' => bless( {
14972             'impcount' => 0,
14973             'calls' => [],
14974             'changed' => 0,
14975             'opcount' => 0,
14976             'prods' => [
14977             bless( {
14978             'number' => '0',
14979             'strcount' => 1,
14980             'dircount' => 0,
14981             'uncommit' => undef,
14982             'error' => undef,
14983             'patcount' => 0,
14984             'actcount' => 0,
14985             'items' => [
14986             bless( {
14987             'pattern' => ';',
14988             'hashname' => '__STRING1__',
14989             'description' => '\';\'',
14990             'lookahead' => 0,
14991             'line' => 420
14992             }, 'Parse::RecDescent::Literal' )
14993             ],
14994             'line' => undef
14995             }, 'Parse::RecDescent::Production' ),
14996             bless( {
14997             'number' => '1',
14998             'strcount' => 0,
14999             'dircount' => 0,
15000             'uncommit' => undef,
15001             'error' => undef,
15002             'patcount' => 0,
15003             'actcount' => 1,
15004             'items' => [
15005             bless( {
15006             'hashname' => '__ACTION1__',
15007             'lookahead' => 0,
15008             'line' => 421,
15009             'code' => '{
15010             my $message = "missing semi-colon";
15011             if ( $backtick_warning ) {
15012             $message .= " ($backtick_warning)";
15013             $backtick_warning = \'\';
15014             }
15015             Bigtop::Parser->fatal_error_two_lines(
15016             $message, $text, $thisline
15017             );
15018             }'
15019             }, 'Parse::RecDescent::Action' )
15020             ],
15021             'line' => 421
15022             }, 'Parse::RecDescent::Production' )
15023             ],
15024             'name' => 'SEMI_COLON',
15025             'vars' => '',
15026             'line' => 420
15027             }, 'Parse::RecDescent::Rule' ),
15028             'app_config_block' => bless( {
15029             'impcount' => 0,
15030             'calls' => [
15031             'CONFIG',
15032             'IDENT',
15033             'app_config_statement'
15034             ],
15035             'changed' => 0,
15036             'opcount' => 0,
15037             'prods' => [
15038             bless( {
15039             'number' => '0',
15040             'strcount' => 2,
15041             'dircount' => 0,
15042             'uncommit' => undef,
15043             'error' => undef,
15044             'patcount' => 0,
15045             'actcount' => 1,
15046             'items' => [
15047             bless( {
15048             'subrule' => 'CONFIG',
15049             'matchrule' => 0,
15050             'implicit' => undef,
15051             'argcode' => undef,
15052             'lookahead' => 0,
15053             'line' => 329
15054             }, 'Parse::RecDescent::Subrule' ),
15055             bless( {
15056             'subrule' => 'IDENT',
15057             'expected' => undef,
15058             'min' => 0,
15059             'argcode' => undef,
15060             'max' => 1,
15061             'matchrule' => 0,
15062             'repspec' => '?',
15063             'lookahead' => 0,
15064             'line' => 329
15065             }, 'Parse::RecDescent::Repetition' ),
15066             bless( {
15067             'pattern' => '{',
15068             'hashname' => '__STRING1__',
15069             'description' => '\'\\{\'',
15070             'lookahead' => 0,
15071             'line' => 329
15072             }, 'Parse::RecDescent::Literal' ),
15073             bless( {
15074             'subrule' => 'app_config_statement',
15075             'expected' => undef,
15076             'min' => 0,
15077             'argcode' => undef,
15078             'max' => 100000000,
15079             'matchrule' => 0,
15080             'repspec' => 's?',
15081             'lookahead' => 0,
15082             'line' => 329
15083             }, 'Parse::RecDescent::Repetition' ),
15084             bless( {
15085             'pattern' => '}',
15086             'hashname' => '__STRING2__',
15087             'description' => '\'\\}\'',
15088             'lookahead' => 0,
15089             'line' => 329
15090             }, 'Parse::RecDescent::Literal' ),
15091             bless( {
15092             'hashname' => '__ACTION1__',
15093             'lookahead' => 0,
15094             'line' => 329,
15095             'code' => '{
15096             bless {
15097             __IDENT__ => Bigtop::Parser->get_ident(),
15098             __BODY__ => $item{\'app_config_statement(s?)\'},
15099             __TYPE__ => $item{\'IDENT(?)\'}[0],
15100             }, \'app_config_block\'
15101             }'
15102             }, 'Parse::RecDescent::Action' )
15103             ],
15104             'line' => undef
15105             }, 'Parse::RecDescent::Production' )
15106             ],
15107             'name' => 'app_config_block',
15108             'vars' => '',
15109             'line' => 329
15110             }, 'Parse::RecDescent::Rule' ),
15111             'controller_block' => bless( {
15112             'impcount' => 0,
15113             'calls' => [
15114             'controller_body',
15115             'module_ident',
15116             'is_type'
15117             ],
15118             'changed' => 0,
15119             'opcount' => 0,
15120             'prods' => [
15121             bless( {
15122             'number' => '0',
15123             'strcount' => 5,
15124             'dircount' => 0,
15125             'uncommit' => undef,
15126             'error' => undef,
15127             'patcount' => 0,
15128             'actcount' => 1,
15129             'items' => [
15130             bless( {
15131             'pattern' => 'controller',
15132             'hashname' => '__STRING1__',
15133             'description' => '\'controller\'',
15134             'lookahead' => 0,
15135             'line' => 103
15136             }, 'Parse::RecDescent::Literal' ),
15137             bless( {
15138             'pattern' => 'is',
15139             'hashname' => '__STRING2__',
15140             'description' => '\'is\'',
15141             'lookahead' => 0,
15142             'line' => 103
15143             }, 'Parse::RecDescent::Literal' ),
15144             bless( {
15145             'pattern' => 'base_controller',
15146             'hashname' => '__STRING3__',
15147             'description' => '\'base_controller\'',
15148             'lookahead' => 0,
15149             'line' => 103
15150             }, 'Parse::RecDescent::Literal' ),
15151             bless( {
15152             'pattern' => '{',
15153             'hashname' => '__STRING4__',
15154             'description' => '\'\\{\'',
15155             'lookahead' => 0,
15156             'line' => 103
15157             }, 'Parse::RecDescent::Literal' ),
15158             bless( {
15159             'subrule' => 'controller_body',
15160             'matchrule' => 0,
15161             'implicit' => undef,
15162             'argcode' => '[ \'base_controller\' ]',
15163             'lookahead' => 0,
15164             'line' => 104
15165             }, 'Parse::RecDescent::Subrule' ),
15166             bless( {
15167             'pattern' => '}',
15168             'hashname' => '__STRING5__',
15169             'description' => '\'\\}\'',
15170             'lookahead' => 0,
15171             'line' => 105
15172             }, 'Parse::RecDescent::Literal' ),
15173             bless( {
15174             'hashname' => '__ACTION1__',
15175             'lookahead' => 0,
15176             'line' => 105,
15177             'code' => '{
15178             bless {
15179             __IDENT__ => Bigtop::Parser->get_ident(),
15180             __BODY__ => $item{controller_body}
15181             {\'controller_statement(s?)\'},
15182             __NAME__ => \'base_controller\',
15183             __TYPE__ => \'base_controller\',
15184             }, \'controller_block\'
15185             }'
15186             }, 'Parse::RecDescent::Action' )
15187             ],
15188             'line' => undef
15189             }, 'Parse::RecDescent::Production' ),
15190             bless( {
15191             'number' => '1',
15192             'strcount' => 3,
15193             'dircount' => 0,
15194             'uncommit' => undef,
15195             'error' => undef,
15196             'patcount' => 0,
15197             'actcount' => 1,
15198             'items' => [
15199             bless( {
15200             'pattern' => 'controller',
15201             'hashname' => '__STRING1__',
15202             'description' => '\'controller\'',
15203             'lookahead' => 0,
15204             'line' => 114
15205             }, 'Parse::RecDescent::Literal' ),
15206             bless( {
15207             'subrule' => 'module_ident',
15208             'matchrule' => 0,
15209             'implicit' => undef,
15210             'argcode' => undef,
15211             'lookahead' => 0,
15212             'line' => 114
15213             }, 'Parse::RecDescent::Subrule' ),
15214             bless( {
15215             'subrule' => 'is_type',
15216             'expected' => undef,
15217             'min' => 0,
15218             'argcode' => undef,
15219             'max' => 1,
15220             'matchrule' => 0,
15221             'repspec' => '?',
15222             'lookahead' => 0,
15223             'line' => 114
15224             }, 'Parse::RecDescent::Repetition' ),
15225             bless( {
15226             'pattern' => '{',
15227             'hashname' => '__STRING2__',
15228             'description' => '\'\\{\'',
15229             'lookahead' => 0,
15230             'line' => 114
15231             }, 'Parse::RecDescent::Literal' ),
15232             bless( {
15233             'subrule' => 'controller_body',
15234             'matchrule' => 0,
15235             'implicit' => undef,
15236             'argcode' => '[ $item{module_ident} ]',
15237             'lookahead' => 0,
15238             'line' => 115
15239             }, 'Parse::RecDescent::Subrule' ),
15240             bless( {
15241             'pattern' => '}',
15242             'hashname' => '__STRING3__',
15243             'description' => '\'\\}\'',
15244             'lookahead' => 0,
15245             'line' => 116
15246             }, 'Parse::RecDescent::Literal' ),
15247             bless( {
15248             'hashname' => '__ACTION1__',
15249             'lookahead' => 0,
15250             'line' => 116,
15251             'code' => '{
15252             if ( defined $item{\'is_type(?)\'}[0]
15253             and
15254             $item{\'is_type(?)\'}[0] eq \'base_controller\'
15255             ) {
15256             my $message = "base_controller cannot have an "
15257             . "explicit name";
15258             my $diag_text = "controller $item{module_ident} "
15259             . "is base_controller";
15260             Bigtop::Parser->fatal_error_two_lines(
15261             $message, $diag_text, $thisline
15262             );
15263             }
15264             bless {
15265             __IDENT__ => Bigtop::Parser->get_ident(),
15266             __NAME__ => $item{module_ident},
15267             __BODY__ => $item{controller_body}
15268             {\'controller_statement(s?)\'},
15269             __TYPE__ => $item{\'is_type(?)\'}[0],
15270             }, \'controller_block\'
15271             }'
15272             }, 'Parse::RecDescent::Action' )
15273             ],
15274             'line' => 114
15275             }, 'Parse::RecDescent::Production' )
15276             ],
15277             'name' => 'controller_block',
15278             'vars' => '',
15279             'line' => 103
15280             }, 'Parse::RecDescent::Rule' ),
15281             'field_body' => bless( {
15282             'impcount' => 0,
15283             'calls' => [
15284             'field_statement'
15285             ],
15286             'changed' => 0,
15287             'opcount' => 0,
15288             'prods' => [
15289             bless( {
15290             'number' => '0',
15291             'strcount' => 0,
15292             'dircount' => 0,
15293             'uncommit' => undef,
15294             'error' => undef,
15295             'patcount' => 0,
15296             'actcount' => 0,
15297             'items' => [
15298             bless( {
15299             'subrule' => 'field_statement',
15300             'expected' => undef,
15301             'min' => 0,
15302             'argcode' => undef,
15303             'max' => 100000000,
15304             'matchrule' => 0,
15305             'repspec' => 's?',
15306             'lookahead' => 0,
15307             'line' => 283
15308             }, 'Parse::RecDescent::Repetition' )
15309             ],
15310             'line' => undef
15311             }, 'Parse::RecDescent::Production' )
15312             ],
15313             'name' => 'field_body',
15314             'vars' => '',
15315             'line' => 283
15316             }, 'Parse::RecDescent::Rule' ),
15317             'CONFIG' => bless( {
15318             'impcount' => 0,
15319             'calls' => [],
15320             'changed' => 0,
15321             'opcount' => 0,
15322             'prods' => [
15323             bless( {
15324             'number' => '0',
15325             'strcount' => 1,
15326             'dircount' => 0,
15327             'uncommit' => undef,
15328             'error' => undef,
15329             'patcount' => 0,
15330             'actcount' => 0,
15331             'items' => [
15332             bless( {
15333             'pattern' => 'config',
15334             'hashname' => '__STRING1__',
15335             'description' => '\'config\'',
15336             'lookahead' => 0,
15337             'line' => 414
15338             }, 'Parse::RecDescent::Literal' )
15339             ],
15340             'line' => undef
15341             }, 'Parse::RecDescent::Production' ),
15342             bless( {
15343             'number' => '1',
15344             'strcount' => 1,
15345             'dircount' => 0,
15346             'uncommit' => undef,
15347             'error' => undef,
15348             'patcount' => 0,
15349             'actcount' => 0,
15350             'items' => [
15351             bless( {
15352             'pattern' => 'set_vars',
15353             'hashname' => '__STRING1__',
15354             'description' => '\'set_vars\'',
15355             'lookahead' => 0,
15356             'line' => 414
15357             }, 'Parse::RecDescent::Literal' )
15358             ],
15359             'line' => 414
15360             }, 'Parse::RecDescent::Production' )
15361             ],
15362             'name' => 'CONFIG',
15363             'vars' => '',
15364             'line' => 414
15365             }, 'Parse::RecDescent::Rule' ),
15366             'config_body' => bless( {
15367             'impcount' => 0,
15368             'calls' => [
15369             'config_statement'
15370             ],
15371             'changed' => 0,
15372             'opcount' => 0,
15373             'prods' => [
15374             bless( {
15375             'number' => '0',
15376             'strcount' => 0,
15377             'dircount' => 0,
15378             'uncommit' => undef,
15379             'error' => undef,
15380             'patcount' => 0,
15381             'actcount' => 1,
15382             'items' => [
15383             bless( {
15384             'subrule' => 'config_statement',
15385             'expected' => undef,
15386             'min' => 0,
15387             'argcode' => undef,
15388             'max' => 100000000,
15389             'matchrule' => 0,
15390             'repspec' => 's?',
15391             'lookahead' => 0,
15392             'line' => 19
15393             }, 'Parse::RecDescent::Repetition' ),
15394             bless( {
15395             'hashname' => '__ACTION1__',
15396             'lookahead' => 0,
15397             'line' => 19,
15398             'code' => '{
15399             my %config;
15400             my %backend_lookup;
15401             my @statements;
15402             foreach my $statement ( @{ $item{\'config_statement(s?)\'} } ) {
15403             $config{ $statement->[0] } = $statement->[1];
15404             push @statements, [ $statement->[0], $statement->[1] ];
15405              
15406             if ( ref( $statement->[1] ) eq \'HASH\' ) {
15407             push @{ $backend_lookup{ $statement->[0] } }, $statement->[1];
15408             }
15409             }
15410             $config{__STATEMENTS__} = \\@statements;
15411             $config{__BACKENDS__} = \\%backend_lookup;
15412             $return = \\%config;
15413             }'
15414             }, 'Parse::RecDescent::Action' )
15415             ],
15416             'line' => undef
15417             }, 'Parse::RecDescent::Production' )
15418             ],
15419             'name' => 'config_body',
15420             'vars' => '',
15421             'line' => 17
15422             }, 'Parse::RecDescent::Rule' ),
15423             'extra_sql_statement' => bless( {
15424             'impcount' => 0,
15425             'calls' => [
15426             'keyword',
15427             'extra_sql_statement_def',
15428             'SEMI_COLON'
15429             ],
15430             'changed' => 0,
15431             'opcount' => 0,
15432             'prods' => [
15433             bless( {
15434             'number' => '0',
15435             'strcount' => 0,
15436             'dircount' => 0,
15437             'uncommit' => undef,
15438             'error' => undef,
15439             'patcount' => 0,
15440             'actcount' => 1,
15441             'items' => [
15442             bless( {
15443             'subrule' => 'keyword',
15444             'matchrule' => 0,
15445             'implicit' => undef,
15446             'argcode' => '[\'extra_sql\']',
15447             'lookahead' => 0,
15448             'line' => 299
15449             }, 'Parse::RecDescent::Subrule' ),
15450             bless( {
15451             'subrule' => 'extra_sql_statement_def',
15452             'matchrule' => 0,
15453             'implicit' => undef,
15454             'argcode' => undef,
15455             'lookahead' => 0,
15456             'line' => 299
15457             }, 'Parse::RecDescent::Subrule' ),
15458             bless( {
15459             'subrule' => 'SEMI_COLON',
15460             'matchrule' => 0,
15461             'implicit' => undef,
15462             'argcode' => undef,
15463             'lookahead' => 0,
15464             'line' => 299
15465             }, 'Parse::RecDescent::Subrule' ),
15466             bless( {
15467             'hashname' => '__ACTION1__',
15468             'lookahead' => 0,
15469             'line' => 299,
15470             'code' => '{
15471             bless {
15472             __KEYWORD__ => $item[1], __DEF__ => $item[2]
15473             }, \'extra_sql_statement\'
15474             }'
15475             }, 'Parse::RecDescent::Action' )
15476             ],
15477             'line' => undef
15478             }, 'Parse::RecDescent::Production' )
15479             ],
15480             'name' => 'extra_sql_statement',
15481             'vars' => '',
15482             'line' => 299
15483             }, 'Parse::RecDescent::Rule' ),
15484             'app_body' => bless( {
15485             'impcount' => 0,
15486             'calls' => [
15487             'block'
15488             ],
15489             'changed' => 0,
15490             'opcount' => 0,
15491             'prods' => [
15492             bless( {
15493             'number' => '0',
15494             'strcount' => 0,
15495             'dircount' => 0,
15496             'uncommit' => undef,
15497             'error' => undef,
15498             'patcount' => 0,
15499             'actcount' => 0,
15500             'items' => [
15501             bless( {
15502             'subrule' => 'block',
15503             'expected' => undef,
15504             'min' => 0,
15505             'argcode' => undef,
15506             'max' => 100000000,
15507             'matchrule' => 0,
15508             'repspec' => 's?',
15509             'lookahead' => 0,
15510             'line' => 79
15511             }, 'Parse::RecDescent::Repetition' )
15512             ],
15513             'line' => undef
15514             }, 'Parse::RecDescent::Production' )
15515             ],
15516             'name' => 'app_body',
15517             'vars' => '',
15518             'line' => 79
15519             }, 'Parse::RecDescent::Rule' ),
15520             'arg_list' => bless( {
15521             'impcount' => 0,
15522             'calls' => [
15523             'arg',
15524             'arg_list'
15525             ],
15526             'changed' => 0,
15527             'opcount' => 0,
15528             'prods' => [
15529             bless( {
15530             'number' => '0',
15531             'strcount' => 1,
15532             'dircount' => 0,
15533             'uncommit' => undef,
15534             'error' => undef,
15535             'patcount' => 0,
15536             'actcount' => 1,
15537             'items' => [
15538             bless( {
15539             'subrule' => 'arg',
15540             'matchrule' => 0,
15541             'implicit' => undef,
15542             'argcode' => undef,
15543             'lookahead' => 0,
15544             'line' => 374
15545             }, 'Parse::RecDescent::Subrule' ),
15546             bless( {
15547             'pattern' => ',',
15548             'hashname' => '__STRING1__',
15549             'description' => '\',\'',
15550             'lookahead' => 0,
15551             'line' => 374
15552             }, 'Parse::RecDescent::Literal' ),
15553             bless( {
15554             'subrule' => 'arg_list',
15555             'matchrule' => 0,
15556             'implicit' => undef,
15557             'argcode' => undef,
15558             'lookahead' => 0,
15559             'line' => 374
15560             }, 'Parse::RecDescent::Subrule' ),
15561             bless( {
15562             'hashname' => '__ACTION1__',
15563             'lookahead' => 0,
15564             'line' => 374,
15565             'code' => '{
15566             unshift @{ $item[3] }, $item[1];
15567             $return = $item[3];
15568             }'
15569             }, 'Parse::RecDescent::Action' )
15570             ],
15571             'line' => undef
15572             }, 'Parse::RecDescent::Production' ),
15573             bless( {
15574             'number' => '1',
15575             'strcount' => 0,
15576             'dircount' => 0,
15577             'uncommit' => undef,
15578             'error' => undef,
15579             'patcount' => 0,
15580             'actcount' => 1,
15581             'items' => [
15582             bless( {
15583             'subrule' => 'arg',
15584             'matchrule' => 0,
15585             'implicit' => undef,
15586             'argcode' => undef,
15587             'lookahead' => 0,
15588             'line' => 378
15589             }, 'Parse::RecDescent::Subrule' ),
15590             bless( {
15591             'hashname' => '__ACTION1__',
15592             'lookahead' => 0,
15593             'line' => 378,
15594             'code' => '{ bless [ $item[1] ], \'arg_list\' }'
15595             }, 'Parse::RecDescent::Action' )
15596             ],
15597             'line' => 378
15598             }, 'Parse::RecDescent::Production' )
15599             ],
15600             'name' => 'arg_list',
15601             'vars' => '',
15602             'line' => 374
15603             }, 'Parse::RecDescent::Rule' ),
15604             'is_type' => bless( {
15605             'impcount' => 0,
15606             'calls' => [
15607             'module_ident'
15608             ],
15609             'changed' => 0,
15610             'opcount' => 0,
15611             'prods' => [
15612             bless( {
15613             'number' => '0',
15614             'strcount' => 1,
15615             'dircount' => 0,
15616             'uncommit' => undef,
15617             'error' => undef,
15618             'patcount' => 0,
15619             'actcount' => 1,
15620             'items' => [
15621             bless( {
15622             'pattern' => 'is',
15623             'hashname' => '__STRING1__',
15624             'description' => '\'is\'',
15625             'lookahead' => 0,
15626             'line' => 138
15627             }, 'Parse::RecDescent::Literal' ),
15628             bless( {
15629             'subrule' => 'module_ident',
15630             'matchrule' => 0,
15631             'implicit' => undef,
15632             'argcode' => undef,
15633             'lookahead' => 0,
15634             'line' => 138
15635             }, 'Parse::RecDescent::Subrule' ),
15636             bless( {
15637             'hashname' => '__ACTION1__',
15638             'lookahead' => 0,
15639             'line' => 138,
15640             'code' => '{ $item{module_ident} }'
15641             }, 'Parse::RecDescent::Action' )
15642             ],
15643             'line' => undef
15644             }, 'Parse::RecDescent::Production' )
15645             ],
15646             'name' => 'is_type',
15647             'vars' => '',
15648             'line' => 138
15649             }, 'Parse::RecDescent::Rule' ),
15650             'table_element_block' => bless( {
15651             'impcount' => 0,
15652             'calls' => [
15653             'IDENT',
15654             'field_body',
15655             'extra_sql_body',
15656             'keyword',
15657             'arg_list',
15658             'SEMI_COLON'
15659             ],
15660             'changed' => 0,
15661             'opcount' => 0,
15662             'prods' => [
15663             bless( {
15664             'number' => '0',
15665             'strcount' => 3,
15666             'dircount' => 1,
15667             'uncommit' => undef,
15668             'error' => undef,
15669             'patcount' => 0,
15670             'actcount' => 1,
15671             'items' => [
15672             bless( {
15673             'pattern' => 'field',
15674             'hashname' => '__STRING1__',
15675             'description' => '\'field\'',
15676             'lookahead' => 0,
15677             'line' => 255
15678             }, 'Parse::RecDescent::Literal' ),
15679             bless( {
15680             'hashname' => '__DIRECTIVE1__',
15681             'name' => '',
15682             'lookahead' => 0,
15683             'line' => 255,
15684             'code' => '$commit = 1'
15685             }, 'Parse::RecDescent::Directive' ),
15686             bless( {
15687             'subrule' => 'IDENT',
15688             'matchrule' => 0,
15689             'implicit' => undef,
15690             'argcode' => undef,
15691             'lookahead' => 0,
15692             'line' => 255
15693             }, 'Parse::RecDescent::Subrule' ),
15694             bless( {
15695             'pattern' => '{',
15696             'hashname' => '__STRING2__',
15697             'description' => '\'\\{\'',
15698             'lookahead' => 0,
15699             'line' => 255
15700             }, 'Parse::RecDescent::Literal' ),
15701             bless( {
15702             'subrule' => 'field_body',
15703             'matchrule' => 0,
15704             'implicit' => undef,
15705             'argcode' => undef,
15706             'lookahead' => 0,
15707             'line' => 255
15708             }, 'Parse::RecDescent::Subrule' ),
15709             bless( {
15710             'pattern' => '}',
15711             'hashname' => '__STRING3__',
15712             'description' => '\'\\}\'',
15713             'lookahead' => 0,
15714             'line' => 255
15715             }, 'Parse::RecDescent::Literal' ),
15716             bless( {
15717             'hashname' => '__ACTION1__',
15718             'lookahead' => 0,
15719             'line' => 255,
15720             'code' => '{
15721             bless {
15722             __IDENT__ => Bigtop::Parser->get_ident(),
15723             __TYPE__ => \'field\',
15724             __NAME__ => $item{IDENT},
15725             __BODY__ =>
15726             $item{field_body}{\'field_statement(s?)\'},
15727             }, \'table_element_block\'
15728             }'
15729             }, 'Parse::RecDescent::Action' )
15730             ],
15731             'line' => undef
15732             }, 'Parse::RecDescent::Production' ),
15733             bless( {
15734             'number' => '1',
15735             'strcount' => 3,
15736             'dircount' => 1,
15737             'uncommit' => undef,
15738             'error' => undef,
15739             'patcount' => 0,
15740             'actcount' => 1,
15741             'items' => [
15742             bless( {
15743             'pattern' => 'extra_sql',
15744             'hashname' => '__STRING1__',
15745             'description' => '\'extra_sql\'',
15746             'lookahead' => 0,
15747             'line' => 264
15748             }, 'Parse::RecDescent::Literal' ),
15749             bless( {
15750             'hashname' => '__DIRECTIVE1__',
15751             'name' => '',
15752             'lookahead' => 0,
15753             'line' => 264,
15754             'code' => '$commit = 1'
15755             }, 'Parse::RecDescent::Directive' ),
15756             bless( {
15757             'subrule' => 'IDENT',
15758             'matchrule' => 0,
15759             'implicit' => undef,
15760             'argcode' => undef,
15761             'lookahead' => 0,
15762             'line' => 264
15763             }, 'Parse::RecDescent::Subrule' ),
15764             bless( {
15765             'pattern' => '{',
15766             'hashname' => '__STRING2__',
15767             'description' => '\'\\{\'',
15768             'lookahead' => 0,
15769             'line' => 264
15770             }, 'Parse::RecDescent::Literal' ),
15771             bless( {
15772             'subrule' => 'extra_sql_body',
15773             'matchrule' => 0,
15774             'implicit' => undef,
15775             'argcode' => undef,
15776             'lookahead' => 0,
15777             'line' => 264
15778             }, 'Parse::RecDescent::Subrule' ),
15779             bless( {
15780             'pattern' => '}',
15781             'hashname' => '__STRING3__',
15782             'description' => '\'\\}\'',
15783             'lookahead' => 0,
15784             'line' => 264
15785             }, 'Parse::RecDescent::Literal' ),
15786             bless( {
15787             'hashname' => '__ACTION1__',
15788             'lookahead' => 0,
15789             'line' => 264,
15790             'code' => '{
15791             bless {
15792             __IDENT__ => Bigtop::Parser->get_ident(),
15793             __TYPE__ => \'extra_sql\',
15794             __NAME__ => $item{IDENT},
15795             __BODY__ =>
15796             $item{extra_sql_body}
15797             {\'extra_sql_statement(s?)\'},
15798             }, \'extra_sql_block\'
15799             }'
15800             }, 'Parse::RecDescent::Action' )
15801             ],
15802             'line' => 264
15803             }, 'Parse::RecDescent::Production' ),
15804             bless( {
15805             'number' => '2',
15806             'strcount' => 0,
15807             'dircount' => 0,
15808             'uncommit' => undef,
15809             'error' => undef,
15810             'patcount' => 0,
15811             'actcount' => 1,
15812             'items' => [
15813             bless( {
15814             'subrule' => 'keyword',
15815             'matchrule' => 0,
15816             'implicit' => undef,
15817             'argcode' => '[\'table\']',
15818             'lookahead' => 0,
15819             'line' => 274
15820             }, 'Parse::RecDescent::Subrule' ),
15821             bless( {
15822             'subrule' => 'arg_list',
15823             'matchrule' => 0,
15824             'implicit' => undef,
15825             'argcode' => undef,
15826             'lookahead' => 0,
15827             'line' => 274
15828             }, 'Parse::RecDescent::Subrule' ),
15829             bless( {
15830             'subrule' => 'SEMI_COLON',
15831             'matchrule' => 0,
15832             'implicit' => undef,
15833             'argcode' => undef,
15834             'lookahead' => 0,
15835             'line' => 274
15836             }, 'Parse::RecDescent::Subrule' ),
15837             bless( {
15838             'hashname' => '__ACTION1__',
15839             'lookahead' => 0,
15840             'line' => 274,
15841             'code' => '{
15842             bless {
15843             __TYPE__ => $item[1],
15844             __ARGS__ => $item[2],
15845             __BODY__ => $item[1],
15846             }, \'table_element_block\'
15847             }'
15848             }, 'Parse::RecDescent::Action' )
15849             ],
15850             'line' => 274
15851             }, 'Parse::RecDescent::Production' ),
15852             bless( {
15853             'number' => '3',
15854             'strcount' => 0,
15855             'dircount' => 1,
15856             'uncommit' => 0,
15857             'error' => 1,
15858             'patcount' => 0,
15859             'actcount' => 0,
15860             'items' => [
15861             bless( {
15862             'msg' => '',
15863             'hashname' => '__DIRECTIVE1__',
15864             'commitonly' => '',
15865             'lookahead' => 0,
15866             'line' => 281
15867             }, 'Parse::RecDescent::Error' )
15868             ],
15869             'line' => 281
15870             }, 'Parse::RecDescent::Production' )
15871             ],
15872             'name' => 'table_element_block',
15873             'vars' => '',
15874             'line' => 255
15875             }, 'Parse::RecDescent::Rule' ),
15876             'text' => bless( {
15877             'impcount' => 0,
15878             'calls' => [],
15879             'changed' => 0,
15880             'opcount' => 0,
15881             'prods' => [
15882             bless( {
15883             'number' => '0',
15884             'strcount' => 0,
15885             'dircount' => 0,
15886             'uncommit' => undef,
15887             'error' => undef,
15888             'patcount' => 1,
15889             'actcount' => 1,
15890             'items' => [
15891             bless( {
15892             'pattern' => '[^`]*',
15893             'hashname' => '__PATTERN1__',
15894             'description' => '/[^`]*/',
15895             'lookahead' => 0,
15896             'rdelim' => '/',
15897             'line' => 404,
15898             'mod' => '',
15899             'ldelim' => '/'
15900             }, 'Parse::RecDescent::Token' ),
15901             bless( {
15902             'hashname' => '__ACTION1__',
15903             'lookahead' => 0,
15904             'line' => 404,
15905             'code' => '{
15906             my @lines = split /\\n/, $item[1];
15907             if ( @lines > 1 ) {
15908             $backtick_warning
15909             = "possible run-away string beginning on line "
15910             . "$backtick_line.";
15911             }
15912             $item[1];
15913             }'
15914             }, 'Parse::RecDescent::Action' )
15915             ],
15916             'line' => undef
15917             }, 'Parse::RecDescent::Production' )
15918             ],
15919             'name' => 'text',
15920             'vars' => '',
15921             'line' => 404
15922             }, 'Parse::RecDescent::Rule' ),
15923             'sequence_statement' => bless( {
15924             'impcount' => 0,
15925             'calls' => [
15926             'IDENT',
15927             'arg_list',
15928             'SEMI_COLON'
15929             ],
15930             'changed' => 0,
15931             'opcount' => 0,
15932             'prods' => [
15933             bless( {
15934             'number' => '0',
15935             'strcount' => 0,
15936             'dircount' => 0,
15937             'uncommit' => undef,
15938             'error' => undef,
15939             'patcount' => 0,
15940             'actcount' => 1,
15941             'items' => [
15942             bless( {
15943             'subrule' => 'IDENT',
15944             'matchrule' => 0,
15945             'implicit' => undef,
15946             'argcode' => undef,
15947             'lookahead' => 0,
15948             'line' => 247
15949             }, 'Parse::RecDescent::Subrule' ),
15950             bless( {
15951             'subrule' => 'arg_list',
15952             'matchrule' => 0,
15953             'implicit' => undef,
15954             'argcode' => undef,
15955             'lookahead' => 0,
15956             'line' => 247
15957             }, 'Parse::RecDescent::Subrule' ),
15958             bless( {
15959             'subrule' => 'SEMI_COLON',
15960             'matchrule' => 0,
15961             'implicit' => undef,
15962             'argcode' => undef,
15963             'lookahead' => 0,
15964             'line' => 247
15965             }, 'Parse::RecDescent::Subrule' ),
15966             bless( {
15967             'hashname' => '__ACTION1__',
15968             'lookahead' => 0,
15969             'line' => 247,
15970             'code' => '{
15971             bless {
15972             __NAME__ => $item[1], __ARGS__ => $item{arg_list}
15973             }, \'sequence_statement\'
15974             }'
15975             }, 'Parse::RecDescent::Action' )
15976             ],
15977             'line' => undef
15978             }, 'Parse::RecDescent::Production' )
15979             ],
15980             'name' => 'sequence_statement',
15981             'vars' => '',
15982             'line' => 246
15983             }, 'Parse::RecDescent::Rule' ),
15984             'module_ident' => bless( {
15985             'impcount' => 0,
15986             'calls' => [
15987             'IDENT',
15988             'module_ident'
15989             ],
15990             'changed' => 0,
15991             'opcount' => 0,
15992             'prods' => [
15993             bless( {
15994             'number' => '0',
15995             'strcount' => 1,
15996             'dircount' => 0,
15997             'uncommit' => undef,
15998             'error' => undef,
15999             'patcount' => 0,
16000             'actcount' => 1,
16001             'items' => [
16002             bless( {
16003             'subrule' => 'IDENT',
16004             'matchrule' => 0,
16005             'implicit' => undef,
16006             'argcode' => undef,
16007             'lookahead' => 0,
16008             'line' => 399
16009             }, 'Parse::RecDescent::Subrule' ),
16010             bless( {
16011             'pattern' => '::',
16012             'hashname' => '__STRING1__',
16013             'description' => '\'::\'',
16014             'lookahead' => 0,
16015             'line' => 399
16016             }, 'Parse::RecDescent::Literal' ),
16017             bless( {
16018             'subrule' => 'module_ident',
16019             'matchrule' => 0,
16020             'implicit' => undef,
16021             'argcode' => undef,
16022             'lookahead' => 0,
16023             'line' => 399
16024             }, 'Parse::RecDescent::Subrule' ),
16025             bless( {
16026             'hashname' => '__ACTION1__',
16027             'lookahead' => 0,
16028             'line' => 399,
16029             'code' => '{ $item[1] . \'::\' . $item[3] }'
16030             }, 'Parse::RecDescent::Action' )
16031             ],
16032             'line' => undef
16033             }, 'Parse::RecDescent::Production' ),
16034             bless( {
16035             'number' => '1',
16036             'strcount' => 0,
16037             'dircount' => 0,
16038             'uncommit' => undef,
16039             'error' => undef,
16040             'patcount' => 0,
16041             'actcount' => 1,
16042             'items' => [
16043             bless( {
16044             'subrule' => 'IDENT',
16045             'matchrule' => 0,
16046             'implicit' => undef,
16047             'argcode' => undef,
16048             'lookahead' => 0,
16049             'line' => 400
16050             }, 'Parse::RecDescent::Subrule' ),
16051             bless( {
16052             'hashname' => '__ACTION1__',
16053             'lookahead' => 0,
16054             'line' => 400,
16055             'code' => '{ $item[1] }'
16056             }, 'Parse::RecDescent::Action' )
16057             ],
16058             'line' => 400
16059             }, 'Parse::RecDescent::Production' )
16060             ],
16061             'name' => 'module_ident',
16062             'vars' => '',
16063             'line' => 399
16064             }, 'Parse::RecDescent::Rule' ),
16065             'bigtop_file' => bless( {
16066             'impcount' => 0,
16067             'calls' => [
16068             'configuration',
16069             'application'
16070             ],
16071             'changed' => 0,
16072             'opcount' => 0,
16073             'prods' => [
16074             bless( {
16075             'number' => '0',
16076             'strcount' => 0,
16077             'dircount' => 0,
16078             'uncommit' => undef,
16079             'error' => undef,
16080             'patcount' => 0,
16081             'actcount' => 0,
16082             'items' => [
16083             bless( {
16084             'subrule' => 'configuration',
16085             'matchrule' => 0,
16086             'implicit' => undef,
16087             'argcode' => undef,
16088             'lookahead' => 0,
16089             'line' => 15
16090             }, 'Parse::RecDescent::Subrule' ),
16091             bless( {
16092             'subrule' => 'application',
16093             'matchrule' => 0,
16094             'implicit' => undef,
16095             'argcode' => undef,
16096             'lookahead' => 0,
16097             'line' => 15
16098             }, 'Parse::RecDescent::Subrule' )
16099             ],
16100             'line' => undef
16101             }, 'Parse::RecDescent::Production' )
16102             ],
16103             'name' => 'bigtop_file',
16104             'vars' => '',
16105             'line' => 15
16106             }, 'Parse::RecDescent::Rule' ),
16107             'sequence_body' => bless( {
16108             'impcount' => 0,
16109             'calls' => [
16110             'sequence_statement'
16111             ],
16112             'changed' => 0,
16113             'opcount' => 0,
16114             'prods' => [
16115             bless( {
16116             'number' => '0',
16117             'strcount' => 0,
16118             'dircount' => 0,
16119             'uncommit' => undef,
16120             'error' => undef,
16121             'patcount' => 0,
16122             'actcount' => 0,
16123             'items' => [
16124             bless( {
16125             'subrule' => 'sequence_statement',
16126             'expected' => undef,
16127             'min' => 0,
16128             'argcode' => undef,
16129             'max' => 100000000,
16130             'matchrule' => 0,
16131             'repspec' => 's?',
16132             'lookahead' => 0,
16133             'line' => 244
16134             }, 'Parse::RecDescent::Repetition' )
16135             ],
16136             'line' => undef
16137             }, 'Parse::RecDescent::Production' )
16138             ],
16139             'name' => 'sequence_body',
16140             'vars' => '',
16141             'line' => 244
16142             }, 'Parse::RecDescent::Rule' ),
16143             'application' => bless( {
16144             'impcount' => 0,
16145             'calls' => [
16146             'module_ident',
16147             'app_body'
16148             ],
16149             'changed' => 0,
16150             'opcount' => 0,
16151             'prods' => [
16152             bless( {
16153             'number' => '0',
16154             'strcount' => 3,
16155             'dircount' => 0,
16156             'uncommit' => undef,
16157             'error' => undef,
16158             'patcount' => 0,
16159             'actcount' => 1,
16160             'items' => [
16161             bless( {
16162             'pattern' => 'app',
16163             'hashname' => '__STRING1__',
16164             'description' => '\'app\'',
16165             'lookahead' => 0,
16166             'line' => 61
16167             }, 'Parse::RecDescent::Literal' ),
16168             bless( {
16169             'subrule' => 'module_ident',
16170             'matchrule' => 0,
16171             'implicit' => undef,
16172             'argcode' => undef,
16173             'lookahead' => 0,
16174             'line' => 61
16175             }, 'Parse::RecDescent::Subrule' ),
16176             bless( {
16177             'pattern' => '{',
16178             'hashname' => '__STRING2__',
16179             'description' => '\'\\{\'',
16180             'lookahead' => 0,
16181             'line' => 61
16182             }, 'Parse::RecDescent::Literal' ),
16183             bless( {
16184             'subrule' => 'app_body',
16185             'matchrule' => 0,
16186             'implicit' => undef,
16187             'argcode' => undef,
16188             'lookahead' => 0,
16189             'line' => 61
16190             }, 'Parse::RecDescent::Subrule' ),
16191             bless( {
16192             'pattern' => '}',
16193             'hashname' => '__STRING3__',
16194             'description' => '\'\\}\'',
16195             'lookahead' => 0,
16196             'line' => 61
16197             }, 'Parse::RecDescent::Literal' ),
16198             bless( {
16199             'hashname' => '__ACTION1__',
16200             'lookahead' => 0,
16201             'line' => 61,
16202             'code' => '{
16203             my $retval = bless {
16204             __NAME__ => $item{module_ident},
16205             __BODY__ => $item{app_body},
16206             }, \'application\';
16207              
16208             $retval->walk_postorder( \'set_parent\' );
16209              
16210             my $lookup_hash = $retval->walk_postorder(
16211             \'build_lookup_hash\'
16212             );
16213              
16214             $retval->{lookup} = { @{ $lookup_hash } };
16215              
16216             $retval;
16217             }'
16218             }, 'Parse::RecDescent::Action' )
16219             ],
16220             'line' => undef
16221             }, 'Parse::RecDescent::Production' ),
16222             bless( {
16223             'number' => '1',
16224             'strcount' => 0,
16225             'dircount' => 1,
16226             'uncommit' => 0,
16227             'error' => 1,
16228             'patcount' => 0,
16229             'actcount' => 0,
16230             'items' => [
16231             bless( {
16232             'msg' => '',
16233             'hashname' => '__DIRECTIVE1__',
16234             'commitonly' => '',
16235             'lookahead' => 0,
16236             'line' => 77
16237             }, 'Parse::RecDescent::Error' )
16238             ],
16239             'line' => 77
16240             }, 'Parse::RecDescent::Production' )
16241             ],
16242             'name' => 'application',
16243             'vars' => '',
16244             'line' => 61
16245             }, 'Parse::RecDescent::Rule' ),
16246             'controller_config_statement' => bless( {
16247             'impcount' => 0,
16248             'calls' => [
16249             'IDENT',
16250             'arg_list',
16251             'SEMI_COLON'
16252             ],
16253             'changed' => 0,
16254             'opcount' => 0,
16255             'prods' => [
16256             bless( {
16257             'number' => '0',
16258             'strcount' => 0,
16259             'dircount' => 0,
16260             'uncommit' => undef,
16261             'error' => undef,
16262             'patcount' => 0,
16263             'actcount' => 1,
16264             'items' => [
16265             bless( {
16266             'subrule' => 'IDENT',
16267             'matchrule' => 0,
16268             'implicit' => undef,
16269             'argcode' => undef,
16270             'lookahead' => 0,
16271             'line' => 181
16272             }, 'Parse::RecDescent::Subrule' ),
16273             bless( {
16274             'subrule' => 'arg_list',
16275             'matchrule' => 0,
16276             'implicit' => undef,
16277             'argcode' => undef,
16278             'lookahead' => 0,
16279             'line' => 181
16280             }, 'Parse::RecDescent::Subrule' ),
16281             bless( {
16282             'subrule' => 'SEMI_COLON',
16283             'matchrule' => 0,
16284             'implicit' => undef,
16285             'argcode' => undef,
16286             'lookahead' => 0,
16287             'line' => 181
16288             }, 'Parse::RecDescent::Subrule' ),
16289             bless( {
16290             'hashname' => '__ACTION1__',
16291             'lookahead' => 0,
16292             'line' => 181,
16293             'code' => '{
16294             bless {
16295             __KEYWORD__ => $item{IDENT},
16296             __ARGS__ => $item{arg_list}
16297             }, \'controller_config_statement\'
16298             }'
16299             }, 'Parse::RecDescent::Action' )
16300             ],
16301             'line' => undef
16302             }, 'Parse::RecDescent::Production' ),
16303             bless( {
16304             'number' => '1',
16305             'strcount' => 0,
16306             'dircount' => 0,
16307             'uncommit' => undef,
16308             'error' => undef,
16309             'patcount' => 1,
16310             'actcount' => 1,
16311             'items' => [
16312             bless( {
16313             'pattern' => '[^\\}]',
16314             'hashname' => '__PATTERN1__',
16315             'description' => '/[^\\\\\\}]/',
16316             'lookahead' => 0,
16317             'rdelim' => '/',
16318             'line' => 187,
16319             'mod' => '',
16320             'ldelim' => '/'
16321             }, 'Parse::RecDescent::Token' ),
16322             bless( {
16323             'hashname' => '__ACTION1__',
16324             'lookahead' => 0,
16325             'line' => 187,
16326             'code' => '{
16327             my $message = "bad config statement, "
16328             . "possible extra semicolon";
16329             if ( $backtick_warning ) {
16330             $message .= " ($backtick_warning)";
16331             $backtick_warning = \'\';
16332             }
16333             my $diag_text = $item[1] . $text;
16334             Bigtop::Parser->fatal_error_two_lines(
16335             $message, $diag_text, $thisline
16336             );
16337             }'
16338             }, 'Parse::RecDescent::Action' )
16339             ],
16340             'line' => 187
16341             }, 'Parse::RecDescent::Production' )
16342             ],
16343             'name' => 'controller_config_statement',
16344             'vars' => '',
16345             'line' => 181
16346             }, 'Parse::RecDescent::Rule' ),
16347             'block' => bless( {
16348             'impcount' => 0,
16349             'calls' => [
16350             'literal_block',
16351             'controller_block',
16352             'sql_block',
16353             'app_config_block',
16354             'app_statement'
16355             ],
16356             'changed' => 0,
16357             'opcount' => 0,
16358             'prods' => [
16359             bless( {
16360             'number' => '0',
16361             'strcount' => 0,
16362             'dircount' => 0,
16363             'uncommit' => undef,
16364             'error' => undef,
16365             'patcount' => 0,
16366             'actcount' => 0,
16367             'items' => [
16368             bless( {
16369             'subrule' => 'literal_block',
16370             'matchrule' => 0,
16371             'implicit' => undef,
16372             'argcode' => undef,
16373             'lookahead' => 0,
16374             'line' => 81
16375             }, 'Parse::RecDescent::Subrule' )
16376             ],
16377             'line' => undef
16378             }, 'Parse::RecDescent::Production' ),
16379             bless( {
16380             'number' => '1',
16381             'strcount' => 0,
16382             'dircount' => 0,
16383             'uncommit' => undef,
16384             'error' => undef,
16385             'patcount' => 0,
16386             'actcount' => 0,
16387             'items' => [
16388             bless( {
16389             'subrule' => 'controller_block',
16390             'matchrule' => 0,
16391             'implicit' => undef,
16392             'argcode' => undef,
16393             'lookahead' => 0,
16394             'line' => 82
16395             }, 'Parse::RecDescent::Subrule' )
16396             ],
16397             'line' => 82
16398             }, 'Parse::RecDescent::Production' ),
16399             bless( {
16400             'number' => '2',
16401             'strcount' => 0,
16402             'dircount' => 0,
16403             'uncommit' => undef,
16404             'error' => undef,
16405             'patcount' => 0,
16406             'actcount' => 0,
16407             'items' => [
16408             bless( {
16409             'subrule' => 'sql_block',
16410             'matchrule' => 0,
16411             'implicit' => undef,
16412             'argcode' => undef,
16413             'lookahead' => 0,
16414             'line' => 83
16415             }, 'Parse::RecDescent::Subrule' )
16416             ],
16417             'line' => 83
16418             }, 'Parse::RecDescent::Production' ),
16419             bless( {
16420             'number' => '3',
16421             'strcount' => 0,
16422             'dircount' => 0,
16423             'uncommit' => undef,
16424             'error' => undef,
16425             'patcount' => 0,
16426             'actcount' => 0,
16427             'items' => [
16428             bless( {
16429             'subrule' => 'app_config_block',
16430             'matchrule' => 0,
16431             'implicit' => undef,
16432             'argcode' => undef,
16433             'lookahead' => 0,
16434             'line' => 84
16435             }, 'Parse::RecDescent::Subrule' )
16436             ],
16437             'line' => 84
16438             }, 'Parse::RecDescent::Production' ),
16439             bless( {
16440             'number' => '4',
16441             'strcount' => 0,
16442             'dircount' => 0,
16443             'uncommit' => undef,
16444             'error' => undef,
16445             'patcount' => 0,
16446             'actcount' => 0,
16447             'items' => [
16448             bless( {
16449             'subrule' => 'app_statement',
16450             'matchrule' => 0,
16451             'implicit' => undef,
16452             'argcode' => undef,
16453             'lookahead' => 0,
16454             'line' => 85
16455             }, 'Parse::RecDescent::Subrule' )
16456             ],
16457             'line' => 85
16458             }, 'Parse::RecDescent::Production' )
16459             ],
16460             'name' => 'block',
16461             'vars' => '',
16462             'line' => 81
16463             }, 'Parse::RecDescent::Rule' ),
16464             'sql_block' => bless( {
16465             'impcount' => 0,
16466             'calls' => [
16467             'table_ident',
16468             'sequence_body',
16469             'table_body',
16470             'join_table_body',
16471             'IDENT'
16472             ],
16473             'changed' => 0,
16474             'opcount' => 0,
16475             'prods' => [
16476             bless( {
16477             'number' => '0',
16478             'strcount' => 3,
16479             'dircount' => 1,
16480             'uncommit' => undef,
16481             'error' => undef,
16482             'patcount' => 0,
16483             'actcount' => 1,
16484             'items' => [
16485             bless( {
16486             'pattern' => 'sequence',
16487             'hashname' => '__STRING1__',
16488             'description' => '\'sequence\'',
16489             'lookahead' => 0,
16490             'line' => 211
16491             }, 'Parse::RecDescent::Literal' ),
16492             bless( {
16493             'hashname' => '__DIRECTIVE1__',
16494             'name' => '',
16495             'lookahead' => 0,
16496             'line' => 211,
16497             'code' => '$commit = 1'
16498             }, 'Parse::RecDescent::Directive' ),
16499             bless( {
16500             'subrule' => 'table_ident',
16501             'matchrule' => 0,
16502             'implicit' => undef,
16503             'argcode' => undef,
16504             'lookahead' => 0,
16505             'line' => 211
16506             }, 'Parse::RecDescent::Subrule' ),
16507             bless( {
16508             'pattern' => '{',
16509             'hashname' => '__STRING2__',
16510             'description' => '\'\\{\'',
16511             'lookahead' => 0,
16512             'line' => 211
16513             }, 'Parse::RecDescent::Literal' ),
16514             bless( {
16515             'subrule' => 'sequence_body',
16516             'matchrule' => 0,
16517             'implicit' => undef,
16518             'argcode' => undef,
16519             'lookahead' => 0,
16520             'line' => 211
16521             }, 'Parse::RecDescent::Subrule' ),
16522             bless( {
16523             'pattern' => '}',
16524             'hashname' => '__STRING3__',
16525             'description' => '\'\\}\'',
16526             'lookahead' => 0,
16527             'line' => 211
16528             }, 'Parse::RecDescent::Literal' ),
16529             bless( {
16530             'hashname' => '__ACTION1__',
16531             'lookahead' => 0,
16532             'line' => 211,
16533             'code' => '{
16534             bless {
16535             __IDENT__ => Bigtop::Parser->get_ident(),
16536             __NAME__ => $item{table_ident},
16537             __TYPE__ => \'sequences\',
16538             __BODY__ => $item{sequence_body}
16539             {\'sequence_statement(s?)\'},
16540             }, \'seq_block\'
16541             }'
16542             }, 'Parse::RecDescent::Action' )
16543             ],
16544             'line' => undef
16545             }, 'Parse::RecDescent::Production' ),
16546             bless( {
16547             'number' => '1',
16548             'strcount' => 3,
16549             'dircount' => 1,
16550             'uncommit' => undef,
16551             'error' => undef,
16552             'patcount' => 0,
16553             'actcount' => 1,
16554             'items' => [
16555             bless( {
16556             'pattern' => 'table',
16557             'hashname' => '__STRING1__',
16558             'description' => '\'table\'',
16559             'lookahead' => 0,
16560             'line' => 220
16561             }, 'Parse::RecDescent::Literal' ),
16562             bless( {
16563             'hashname' => '__DIRECTIVE1__',
16564             'name' => '',
16565             'lookahead' => 0,
16566             'line' => 220,
16567             'code' => '$commit = 1'
16568             }, 'Parse::RecDescent::Directive' ),
16569             bless( {
16570             'subrule' => 'table_ident',
16571             'matchrule' => 0,
16572             'implicit' => undef,
16573             'argcode' => undef,
16574             'lookahead' => 0,
16575             'line' => 220
16576             }, 'Parse::RecDescent::Subrule' ),
16577             bless( {
16578             'pattern' => '{',
16579             'hashname' => '__STRING2__',
16580             'description' => '\'\\{\'',
16581             'lookahead' => 0,
16582             'line' => 220
16583             }, 'Parse::RecDescent::Literal' ),
16584             bless( {
16585             'subrule' => 'table_body',
16586             'matchrule' => 0,
16587             'implicit' => undef,
16588             'argcode' => undef,
16589             'lookahead' => 0,
16590             'line' => 220
16591             }, 'Parse::RecDescent::Subrule' ),
16592             bless( {
16593             'pattern' => '}',
16594             'hashname' => '__STRING3__',
16595             'description' => '\'\\}\'',
16596             'lookahead' => 0,
16597             'line' => 220
16598             }, 'Parse::RecDescent::Literal' ),
16599             bless( {
16600             'hashname' => '__ACTION1__',
16601             'lookahead' => 0,
16602             'line' => 220,
16603             'code' => '{
16604             bless {
16605             __IDENT__ => Bigtop::Parser->get_ident(),
16606             __NAME__ => $item{table_ident},
16607             __TYPE__ => \'tables\',
16608             __BODY__ => $item{table_body}
16609             {\'table_element_block(s?)\'},
16610             }, \'table_block\'
16611             }'
16612             }, 'Parse::RecDescent::Action' )
16613             ],
16614             'line' => 220
16615             }, 'Parse::RecDescent::Production' ),
16616             bless( {
16617             'number' => '2',
16618             'strcount' => 3,
16619             'dircount' => 1,
16620             'uncommit' => undef,
16621             'error' => undef,
16622             'patcount' => 0,
16623             'actcount' => 1,
16624             'items' => [
16625             bless( {
16626             'pattern' => 'join_table',
16627             'hashname' => '__STRING1__',
16628             'description' => '\'join_table\'',
16629             'lookahead' => 0,
16630             'line' => 229
16631             }, 'Parse::RecDescent::Literal' ),
16632             bless( {
16633             'hashname' => '__DIRECTIVE1__',
16634             'name' => '',
16635             'lookahead' => 0,
16636             'line' => 229,
16637             'code' => '$commit = 1'
16638             }, 'Parse::RecDescent::Directive' ),
16639             bless( {
16640             'subrule' => 'table_ident',
16641             'matchrule' => 0,
16642             'implicit' => undef,
16643             'argcode' => undef,
16644             'lookahead' => 0,
16645             'line' => 229
16646             }, 'Parse::RecDescent::Subrule' ),
16647             bless( {
16648             'pattern' => '{',
16649             'hashname' => '__STRING2__',
16650             'description' => '\'\\{\'',
16651             'lookahead' => 0,
16652             'line' => 229
16653             }, 'Parse::RecDescent::Literal' ),
16654             bless( {
16655             'subrule' => 'join_table_body',
16656             'matchrule' => 0,
16657             'implicit' => undef,
16658             'argcode' => undef,
16659             'lookahead' => 0,
16660             'line' => 229
16661             }, 'Parse::RecDescent::Subrule' ),
16662             bless( {
16663             'pattern' => '}',
16664             'hashname' => '__STRING3__',
16665             'description' => '\'\\}\'',
16666             'lookahead' => 0,
16667             'line' => 229
16668             }, 'Parse::RecDescent::Literal' ),
16669             bless( {
16670             'hashname' => '__ACTION1__',
16671             'lookahead' => 0,
16672             'line' => 229,
16673             'code' => '{
16674             bless {
16675             __IDENT__ => Bigtop::Parser->get_ident(),
16676             __NAME__ => $item{table_ident},
16677             __BODY__ => $item{join_table_body}
16678             {\'join_table_statement(s?)\'},
16679             }, \'join_table\'
16680             }'
16681             }, 'Parse::RecDescent::Action' )
16682             ],
16683             'line' => 229
16684             }, 'Parse::RecDescent::Production' ),
16685             bless( {
16686             'number' => '3',
16687             'strcount' => 3,
16688             'dircount' => 1,
16689             'uncommit' => undef,
16690             'error' => undef,
16691             'patcount' => 0,
16692             'actcount' => 1,
16693             'items' => [
16694             bless( {
16695             'pattern' => 'schema',
16696             'hashname' => '__STRING1__',
16697             'description' => '\'schema\'',
16698             'lookahead' => 0,
16699             'line' => 237
16700             }, 'Parse::RecDescent::Literal' ),
16701             bless( {
16702             'hashname' => '__DIRECTIVE1__',
16703             'name' => '',
16704             'lookahead' => 0,
16705             'line' => 237,
16706             'code' => '$commit = 1'
16707             }, 'Parse::RecDescent::Directive' ),
16708             bless( {
16709             'subrule' => 'IDENT',
16710             'matchrule' => 0,
16711             'implicit' => undef,
16712             'argcode' => undef,
16713             'lookahead' => 0,
16714             'line' => 237
16715             }, 'Parse::RecDescent::Subrule' ),
16716             bless( {
16717             'pattern' => '{',
16718             'hashname' => '__STRING2__',
16719             'description' => '\'\\{\'',
16720             'lookahead' => 0,
16721             'line' => 237
16722             }, 'Parse::RecDescent::Literal' ),
16723             bless( {
16724             'pattern' => '}',
16725             'hashname' => '__STRING3__',
16726             'description' => '\'\\}\'',
16727             'lookahead' => 0,
16728             'line' => 237
16729             }, 'Parse::RecDescent::Literal' ),
16730             bless( {
16731             'hashname' => '__ACTION1__',
16732             'lookahead' => 0,
16733             'line' => 237,
16734             'code' => '{
16735             bless {
16736             __IDENT__ => Bigtop::Parser->get_ident(),
16737             __NAME__ => $item{ IDENT },
16738             }, \'schema_block\'
16739             }'
16740             }, 'Parse::RecDescent::Action' )
16741             ],
16742             'line' => 237
16743             }, 'Parse::RecDescent::Production' )
16744             ],
16745             'name' => 'sql_block',
16746             'vars' => '',
16747             'line' => 211
16748             }, 'Parse::RecDescent::Rule' ),
16749             'extra_sql_body' => bless( {
16750             'impcount' => 0,
16751             'calls' => [
16752             'extra_sql_statement'
16753             ],
16754             'changed' => 0,
16755             'opcount' => 0,
16756             'prods' => [
16757             bless( {
16758             'number' => '0',
16759             'strcount' => 0,
16760             'dircount' => 0,
16761             'uncommit' => undef,
16762             'error' => undef,
16763             'patcount' => 0,
16764             'actcount' => 0,
16765             'items' => [
16766             bless( {
16767             'subrule' => 'extra_sql_statement',
16768             'expected' => undef,
16769             'min' => 0,
16770             'argcode' => undef,
16771             'max' => 100000000,
16772             'matchrule' => 0,
16773             'repspec' => 's?',
16774             'lookahead' => 0,
16775             'line' => 297
16776             }, 'Parse::RecDescent::Repetition' )
16777             ],
16778             'line' => undef
16779             }, 'Parse::RecDescent::Production' )
16780             ],
16781             'name' => 'extra_sql_body',
16782             'vars' => '',
16783             'line' => 297
16784             }, 'Parse::RecDescent::Rule' ),
16785             'method_body' => bless( {
16786             'impcount' => 0,
16787             'calls' => [
16788             'method_statement'
16789             ],
16790             'changed' => 0,
16791             'opcount' => 0,
16792             'prods' => [
16793             bless( {
16794             'number' => '0',
16795             'strcount' => 0,
16796             'dircount' => 0,
16797             'uncommit' => undef,
16798             'error' => undef,
16799             'patcount' => 0,
16800             'actcount' => 0,
16801             'items' => [
16802             bless( {
16803             'subrule' => 'method_statement',
16804             'expected' => undef,
16805             'min' => 0,
16806             'argcode' => undef,
16807             'max' => 100000000,
16808             'matchrule' => 0,
16809             'repspec' => 's?',
16810             'lookahead' => 0,
16811             'line' => 202
16812             }, 'Parse::RecDescent::Repetition' )
16813             ],
16814             'line' => undef
16815             }, 'Parse::RecDescent::Production' )
16816             ],
16817             'name' => 'method_body',
16818             'vars' => '',
16819             'line' => 202
16820             }, 'Parse::RecDescent::Rule' )
16821             }
16822             }, 'Parse::RecDescent' );
16823             }
16824              
16825             =head1 NAME
16826              
16827             Bigtop::Grammar - generated by Parse::RecDescent from bigtop.grammar
16828              
16829             =head1 METHODS
16830              
16831             =head2 new
16832              
16833             Returns a new Parse::RecDescent grammar for bigtop.
16834              
16835             =head1 AUTHOR
16836              
16837             Generated by:
16838              
16839             perl -MParse::RecDescent - bigtop.grammar Bigtop::Grammar
16840             cat Grammar.pm grammar.pod > tmp; mv tmp Grammar.pm
16841              
16842             =cut