Release commit for 1.62
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Parser / DB2 / Grammar.pm
1 package SQL::Translator::Parser::DB2::Grammar;
2 use Parse::RecDescent;
3
4 { my $ERRORS;
5
6
7 package Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar;
8 use strict;
9 use vars qw($skip $AUTOLOAD  );
10 $skip = '\s*';
11
12     my ( %tables, $table_order, @table_comments, @views, @triggers );
13 ;
14
15
16 {
17 local $SIG{__WARN__} = sub {0};
18 # PRETEND TO BE IN Parse::RecDescent NAMESPACE
19 *Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::AUTOLOAD  = sub
20 {
21   no strict 'refs';
22   $AUTOLOAD =~ s/^Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar/Parse::RecDescent/;
23   goto &{$AUTOLOAD};
24 }
25 }
26
27 push @Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ISA, 'Parse::RecDescent';
28 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_17_of_rule_sysibm_function
30 {
31   my $thisparser = $_[0];
32   use vars q{$tracelevel};
33   local $tracelevel = ($tracelevel||0)+1;
34   $ERRORS = 0;
35   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_17_of_rule_sysibm_function"};
36
37   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
38           Parse::RecDescent::_tracefirst($_[1]),
39           q{_alternation_1_of_production_17_of_rule_sysibm_function},
40           $tracelevel)
41           if defined $::RD_TRACE;
42
43
44   my $err_at = @{$thisparser->{errors}};
45
46   my $score;
47   my $score_return;
48   my $_tok;
49   my $return = undef;
50   my $_matched=0;
51   my $commit=0;
52   my @item = ();
53   my %item = ();
54   my $repeating =  defined($_[2]) && $_[2];
55   my $_noactions = defined($_[3]) && $_[3];
56    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
57   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
58   my $text;
59   my $lastsep="";
60   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
61   $expectation->at($_[1]);
62
63   my $thisline;
64   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
65
66
67
68   while (!$_matched && !$commit)
69   {
70
71     Parse::RecDescent::_trace(q{Trying production: [/DECIMAL/i]},
72             Parse::RecDescent::_tracefirst($_[1]),
73             q{_alternation_1_of_production_17_of_rule_sysibm_function},
74             $tracelevel)
75             if defined $::RD_TRACE;
76     my $thisprod = $thisrule->{"prods"}[0];
77     $text = $_[1];
78     my $_savetext;
79     @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
80     %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
81     my $repcount = 0;
82
83
84     Parse::RecDescent::_trace(q{Trying terminal: [/DECIMAL/i]}, Parse::RecDescent::_tracefirst($text),
85             q{_alternation_1_of_production_17_of_rule_sysibm_function},
86             $tracelevel)
87             if defined $::RD_TRACE;
88     $lastsep = "";
89     $expectation->is(q{})->at($text);
90
91
92     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECIMAL)//i)
93     {
94
95       $expectation->failed();
96       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
97               Parse::RecDescent::_tracefirst($text))
98           if defined $::RD_TRACE;
99
100       last;
101     }
102     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
103             . $& . q{])},
104               Parse::RecDescent::_tracefirst($text))
105           if defined $::RD_TRACE;
106     push @item, $item{__PATTERN1__}=$&;
107
108
109
110     Parse::RecDescent::_trace(q{>>Matched production: [/DECIMAL/i]<<},
111             Parse::RecDescent::_tracefirst($text),
112             q{_alternation_1_of_production_17_of_rule_sysibm_function},
113             $tracelevel)
114             if defined $::RD_TRACE;
115     $_matched = 1;
116     last;
117   }
118
119
120   while (!$_matched && !$commit)
121   {
122
123     Parse::RecDescent::_trace(q{Trying production: [/DEC/i]},
124             Parse::RecDescent::_tracefirst($_[1]),
125             q{_alternation_1_of_production_17_of_rule_sysibm_function},
126             $tracelevel)
127             if defined $::RD_TRACE;
128     my $thisprod = $thisrule->{"prods"}[1];
129     $text = $_[1];
130     my $_savetext;
131     @item = (q{_alternation_1_of_production_17_of_rule_sysibm_function});
132     %item = (__RULE__ => q{_alternation_1_of_production_17_of_rule_sysibm_function});
133     my $repcount = 0;
134
135
136     Parse::RecDescent::_trace(q{Trying terminal: [/DEC/i]}, Parse::RecDescent::_tracefirst($text),
137             q{_alternation_1_of_production_17_of_rule_sysibm_function},
138             $tracelevel)
139             if defined $::RD_TRACE;
140     $lastsep = "";
141     $expectation->is(q{})->at($text);
142
143
144     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEC)//i)
145     {
146
147       $expectation->failed();
148       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
149               Parse::RecDescent::_tracefirst($text))
150           if defined $::RD_TRACE;
151
152       last;
153     }
154     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
155             . $& . q{])},
156               Parse::RecDescent::_tracefirst($text))
157           if defined $::RD_TRACE;
158     push @item, $item{__PATTERN1__}=$&;
159
160
161
162     Parse::RecDescent::_trace(q{>>Matched production: [/DEC/i]<<},
163             Parse::RecDescent::_tracefirst($text),
164             q{_alternation_1_of_production_17_of_rule_sysibm_function},
165             $tracelevel)
166             if defined $::RD_TRACE;
167     $_matched = 1;
168     last;
169   }
170
171
172         unless ( $_matched || defined($return) || defined($score) )
173   {
174
175
176     $_[1] = $text;  # NOT SURE THIS IS NEEDED
177     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
178            Parse::RecDescent::_tracefirst($_[1]),
179            q{_alternation_1_of_production_17_of_rule_sysibm_function},
180            $tracelevel)
181           if defined $::RD_TRACE;
182     return undef;
183   }
184   if (!defined($return) && defined($score))
185   {
186     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
187             q{_alternation_1_of_production_17_of_rule_sysibm_function},
188             $tracelevel)
189             if defined $::RD_TRACE;
190     $return = $score_return;
191   }
192   splice @{$thisparser->{errors}}, $err_at;
193   $return = $item[$#item] unless defined $return;
194   if (defined $::RD_TRACE)
195   {
196     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
197             $return . q{])}, "",
198             q{_alternation_1_of_production_17_of_rule_sysibm_function},
199             $tracelevel);
200     Parse::RecDescent::_trace(q{(consumed: [} .
201             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
202             Parse::RecDescent::_tracefirst($text),
203             , q{_alternation_1_of_production_17_of_rule_sysibm_function},
204             $tracelevel)
205   }
206   $_[1] = $text;
207   return $return;
208 }
209
210 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
211 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action
212 {
213   my $thisparser = $_[0];
214   use vars q{$tracelevel};
215   local $tracelevel = ($tracelevel||0)+1;
216   $ERRORS = 0;
217   my $thisrule = $thisparser->{"rules"}{"triggered_action"};
218
219   Parse::RecDescent::_trace(q{Trying rule: [triggered_action]},
220           Parse::RecDescent::_tracefirst($_[1]),
221           q{triggered_action},
222           $tracelevel)
223           if defined $::RD_TRACE;
224
225
226   my $err_at = @{$thisparser->{errors}};
227
228   my $score;
229   my $score_return;
230   my $_tok;
231   my $return = undef;
232   my $_matched=0;
233   my $commit=0;
234   my @item = ();
235   my %item = ();
236   my $repeating =  defined($_[2]) && $_[2];
237   my $_noactions = defined($_[3]) && $_[3];
238    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
239   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
240   my $text;
241   my $lastsep="";
242   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
243   $expectation->at($_[1]);
244
245   my $thisline;
246   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
247
248
249
250   while (!$_matched && !$commit)
251   {
252
253     Parse::RecDescent::_trace(q{Trying production: [when_clause SQL_procedure_statement]},
254             Parse::RecDescent::_tracefirst($_[1]),
255             q{triggered_action},
256             $tracelevel)
257             if defined $::RD_TRACE;
258     my $thisprod = $thisrule->{"prods"}[0];
259     $text = $_[1];
260     my $_savetext;
261     @item = (q{triggered_action});
262     %item = (__RULE__ => q{triggered_action});
263     my $repcount = 0;
264
265
266     Parse::RecDescent::_trace(q{Trying repeated subrule: [when_clause]},
267           Parse::RecDescent::_tracefirst($text),
268           q{triggered_action},
269           $tracelevel)
270           if defined $::RD_TRACE;
271     $expectation->is(q{})->at($text);
272
273     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause, 0, 1, $_noactions,$expectation,undef)))
274     {
275       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [when_clause]>>},
276               Parse::RecDescent::_tracefirst($text),
277               q{triggered_action},
278               $tracelevel)
279               if defined $::RD_TRACE;
280       last;
281     }
282     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [when_clause]<< (}
283           . @$_tok . q{ times)},
284
285             Parse::RecDescent::_tracefirst($text),
286             q{triggered_action},
287             $tracelevel)
288             if defined $::RD_TRACE;
289     $item{q{when_clause(?)}} = $_tok;
290     push @item, $_tok;
291
292
293
294     Parse::RecDescent::_trace(q{Trying subrule: [SQL_procedure_statement]},
295           Parse::RecDescent::_tracefirst($text),
296           q{triggered_action},
297           $tracelevel)
298           if defined $::RD_TRACE;
299     if (1) { no strict qw{refs};
300     $expectation->is(q{SQL_procedure_statement})->at($text);
301     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
302     {
303
304       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SQL_procedure_statement]>>},
305               Parse::RecDescent::_tracefirst($text),
306               q{triggered_action},
307               $tracelevel)
308               if defined $::RD_TRACE;
309       $expectation->failed();
310       last;
311     }
312     Parse::RecDescent::_trace(q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [}
313           . $_tok . q{]},
314
315             Parse::RecDescent::_tracefirst($text),
316             q{triggered_action},
317             $tracelevel)
318             if defined $::RD_TRACE;
319     $item{q{SQL_procedure_statement}} = $_tok;
320     push @item, $_tok;
321
322     }
323
324     Parse::RecDescent::_trace(q{Trying action},
325             Parse::RecDescent::_tracefirst($text),
326             q{triggered_action},
327             $tracelevel)
328             if defined $::RD_TRACE;
329
330
331     $_tok = ($_noactions) ? 0 : do { $return = { 'condition' => $item[1][0],
332               'statement' => $item{'SQL_procedure_statement'} };
333 };
334     unless (defined $_tok)
335     {
336       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
337           if defined $::RD_TRACE;
338       last;
339     }
340     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
341             . $_tok . q{])},
342             Parse::RecDescent::_tracefirst($text))
343             if defined $::RD_TRACE;
344     push @item, $_tok;
345     $item{__ACTION1__}=$_tok;
346
347
348
349     Parse::RecDescent::_trace(q{>>Matched production: [when_clause SQL_procedure_statement]<<},
350             Parse::RecDescent::_tracefirst($text),
351             q{triggered_action},
352             $tracelevel)
353             if defined $::RD_TRACE;
354     $_matched = 1;
355     last;
356   }
357
358
359         unless ( $_matched || defined($return) || defined($score) )
360   {
361
362
363     $_[1] = $text;  # NOT SURE THIS IS NEEDED
364     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
365            Parse::RecDescent::_tracefirst($_[1]),
366            q{triggered_action},
367            $tracelevel)
368           if defined $::RD_TRACE;
369     return undef;
370   }
371   if (!defined($return) && defined($score))
372   {
373     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
374             q{triggered_action},
375             $tracelevel)
376             if defined $::RD_TRACE;
377     $return = $score_return;
378   }
379   splice @{$thisparser->{errors}}, $err_at;
380   $return = $item[$#item] unless defined $return;
381   if (defined $::RD_TRACE)
382   {
383     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
384             $return . q{])}, "",
385             q{triggered_action},
386             $tracelevel);
387     Parse::RecDescent::_trace(q{(consumed: [} .
388             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
389             Parse::RecDescent::_tracefirst($text),
390             , q{triggered_action},
391             $tracelevel)
392   }
393   $_[1] = $text;
394   return $return;
395 }
396
397 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
398 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_search_condition
399 {
400   my $thisparser = $_[0];
401   use vars q{$tracelevel};
402   local $tracelevel = ($tracelevel||0)+1;
403   $ERRORS = 0;
404   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_search_condition"};
405
406   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_search_condition]},
407           Parse::RecDescent::_tracefirst($_[1]),
408           q{_alternation_1_of_production_2_of_rule_search_condition},
409           $tracelevel)
410           if defined $::RD_TRACE;
411
412
413   my $err_at = @{$thisparser->{errors}};
414
415   my $score;
416   my $score_return;
417   my $_tok;
418   my $return = undef;
419   my $_matched=0;
420   my $commit=0;
421   my @item = ();
422   my %item = ();
423   my $repeating =  defined($_[2]) && $_[2];
424   my $_noactions = defined($_[3]) && $_[3];
425    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
426   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
427   my $text;
428   my $lastsep="";
429   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
430   $expectation->at($_[1]);
431
432   my $thisline;
433   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
434
435
436
437   while (!$_matched && !$commit)
438   {
439
440     Parse::RecDescent::_trace(q{Trying production: [predicate /SELECTIVITY/i]},
441             Parse::RecDescent::_tracefirst($_[1]),
442             q{_alternation_1_of_production_2_of_rule_search_condition},
443             $tracelevel)
444             if defined $::RD_TRACE;
445     my $thisprod = $thisrule->{"prods"}[0];
446     $text = $_[1];
447     my $_savetext;
448     @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
449     %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
450     my $repcount = 0;
451
452
453     Parse::RecDescent::_trace(q{Trying subrule: [predicate]},
454           Parse::RecDescent::_tracefirst($text),
455           q{_alternation_1_of_production_2_of_rule_search_condition},
456           $tracelevel)
457           if defined $::RD_TRACE;
458     if (1) { no strict qw{refs};
459     $expectation->is(q{})->at($text);
460     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
461     {
462
463       Parse::RecDescent::_trace(q{<<Didn't match subrule: [predicate]>>},
464               Parse::RecDescent::_tracefirst($text),
465               q{_alternation_1_of_production_2_of_rule_search_condition},
466               $tracelevel)
467               if defined $::RD_TRACE;
468       $expectation->failed();
469       last;
470     }
471     Parse::RecDescent::_trace(q{>>Matched subrule: [predicate]<< (return value: [}
472           . $_tok . q{]},
473
474             Parse::RecDescent::_tracefirst($text),
475             q{_alternation_1_of_production_2_of_rule_search_condition},
476             $tracelevel)
477             if defined $::RD_TRACE;
478     $item{q{predicate}} = $_tok;
479     push @item, $_tok;
480
481     }
482
483     Parse::RecDescent::_trace(q{Trying repeated subrule: [/SELECTIVITY/i]},
484           Parse::RecDescent::_tracefirst($text),
485           q{_alternation_1_of_production_2_of_rule_search_condition},
486           $tracelevel)
487           if defined $::RD_TRACE;
488     $expectation->is(q{/SELECTIVITY/i})->at($text);
489
490     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition, 0, 1, $_noactions,$expectation,undef)))
491     {
492       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SELECTIVITY/i]>>},
493               Parse::RecDescent::_tracefirst($text),
494               q{_alternation_1_of_production_2_of_rule_search_condition},
495               $tracelevel)
496               if defined $::RD_TRACE;
497       last;
498     }
499     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]<< (}
500           . @$_tok . q{ times)},
501
502             Parse::RecDescent::_tracefirst($text),
503             q{_alternation_1_of_production_2_of_rule_search_condition},
504             $tracelevel)
505             if defined $::RD_TRACE;
506     $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition(?)}} = $_tok;
507     push @item, $_tok;
508
509
510
511
512     Parse::RecDescent::_trace(q{>>Matched production: [predicate /SELECTIVITY/i]<<},
513             Parse::RecDescent::_tracefirst($text),
514             q{_alternation_1_of_production_2_of_rule_search_condition},
515             $tracelevel)
516             if defined $::RD_TRACE;
517     $_matched = 1;
518     last;
519   }
520
521
522   while (!$_matched && !$commit)
523   {
524
525     Parse::RecDescent::_trace(q{Trying production: ['(' search_condition ')']},
526             Parse::RecDescent::_tracefirst($_[1]),
527             q{_alternation_1_of_production_2_of_rule_search_condition},
528             $tracelevel)
529             if defined $::RD_TRACE;
530     my $thisprod = $thisrule->{"prods"}[1];
531     $text = $_[1];
532     my $_savetext;
533     @item = (q{_alternation_1_of_production_2_of_rule_search_condition});
534     %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_search_condition});
535     my $repcount = 0;
536
537
538     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
539             Parse::RecDescent::_tracefirst($text),
540             q{_alternation_1_of_production_2_of_rule_search_condition},
541             $tracelevel)
542             if defined $::RD_TRACE;
543     $lastsep = "";
544     $expectation->is(q{})->at($text);
545
546
547     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
548     {
549
550       $expectation->failed();
551       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
552               Parse::RecDescent::_tracefirst($text))
553               if defined $::RD_TRACE;
554       last;
555     }
556     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
557             . $& . q{])},
558               Parse::RecDescent::_tracefirst($text))
559               if defined $::RD_TRACE;
560     push @item, $item{__STRING1__}=$&;
561
562
563     Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
564           Parse::RecDescent::_tracefirst($text),
565           q{_alternation_1_of_production_2_of_rule_search_condition},
566           $tracelevel)
567           if defined $::RD_TRACE;
568     if (1) { no strict qw{refs};
569     $expectation->is(q{search_condition})->at($text);
570     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
571     {
572
573       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
574               Parse::RecDescent::_tracefirst($text),
575               q{_alternation_1_of_production_2_of_rule_search_condition},
576               $tracelevel)
577               if defined $::RD_TRACE;
578       $expectation->failed();
579       last;
580     }
581     Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
582           . $_tok . q{]},
583
584             Parse::RecDescent::_tracefirst($text),
585             q{_alternation_1_of_production_2_of_rule_search_condition},
586             $tracelevel)
587             if defined $::RD_TRACE;
588     $item{q{search_condition}} = $_tok;
589     push @item, $_tok;
590
591     }
592
593     Parse::RecDescent::_trace(q{Trying terminal: [')']},
594             Parse::RecDescent::_tracefirst($text),
595             q{_alternation_1_of_production_2_of_rule_search_condition},
596             $tracelevel)
597             if defined $::RD_TRACE;
598     $lastsep = "";
599     $expectation->is(q{')'})->at($text);
600
601
602     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
603     {
604
605       $expectation->failed();
606       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
607               Parse::RecDescent::_tracefirst($text))
608               if defined $::RD_TRACE;
609       last;
610     }
611     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
612             . $& . q{])},
613               Parse::RecDescent::_tracefirst($text))
614               if defined $::RD_TRACE;
615     push @item, $item{__STRING2__}=$&;
616
617
618
619     Parse::RecDescent::_trace(q{>>Matched production: ['(' search_condition ')']<<},
620             Parse::RecDescent::_tracefirst($text),
621             q{_alternation_1_of_production_2_of_rule_search_condition},
622             $tracelevel)
623             if defined $::RD_TRACE;
624     $_matched = 1;
625     last;
626   }
627
628
629         unless ( $_matched || defined($return) || defined($score) )
630   {
631
632
633     $_[1] = $text;  # NOT SURE THIS IS NEEDED
634     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
635            Parse::RecDescent::_tracefirst($_[1]),
636            q{_alternation_1_of_production_2_of_rule_search_condition},
637            $tracelevel)
638           if defined $::RD_TRACE;
639     return undef;
640   }
641   if (!defined($return) && defined($score))
642   {
643     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
644             q{_alternation_1_of_production_2_of_rule_search_condition},
645             $tracelevel)
646             if defined $::RD_TRACE;
647     $return = $score_return;
648   }
649   splice @{$thisparser->{errors}}, $err_at;
650   $return = $item[$#item] unless defined $return;
651   if (defined $::RD_TRACE)
652   {
653     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
654             $return . q{])}, "",
655             q{_alternation_1_of_production_2_of_rule_search_condition},
656             $tracelevel);
657     Parse::RecDescent::_trace(q{(consumed: [} .
658             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
659             Parse::RecDescent::_tracefirst($text),
660             , q{_alternation_1_of_production_2_of_rule_search_condition},
661             $tracelevel)
662   }
663   $_[1] = $text;
664   return $return;
665 }
666
667 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
668 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1
669 {
670   my $thisparser = $_[0];
671   use vars q{$tracelevel};
672   local $tracelevel = ($tracelevel||0)+1;
673   $ERRORS = 0;
674   my $thisrule = $thisparser->{"rules"}{"name1"};
675
676   Parse::RecDescent::_trace(q{Trying rule: [name1]},
677           Parse::RecDescent::_tracefirst($_[1]),
678           q{name1},
679           $tracelevel)
680           if defined $::RD_TRACE;
681
682
683   my $err_at = @{$thisparser->{errors}};
684
685   my $score;
686   my $score_return;
687   my $_tok;
688   my $return = undef;
689   my $_matched=0;
690   my $commit=0;
691   my @item = ();
692   my %item = ();
693   my $repeating =  defined($_[2]) && $_[2];
694   my $_noactions = defined($_[3]) && $_[3];
695    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
696   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
697   my $text;
698   my $lastsep="";
699   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
700   $expectation->at($_[1]);
701
702   my $thisline;
703   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
704
705
706
707   while (!$_matched && !$commit)
708   {
709
710     Parse::RecDescent::_trace(q{Trying production: [NAME]},
711             Parse::RecDescent::_tracefirst($_[1]),
712             q{name1},
713             $tracelevel)
714             if defined $::RD_TRACE;
715     my $thisprod = $thisrule->{"prods"}[0];
716     $text = $_[1];
717     my $_savetext;
718     @item = (q{name1});
719     %item = (__RULE__ => q{name1});
720     my $repcount = 0;
721
722
723     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
724           Parse::RecDescent::_tracefirst($text),
725           q{name1},
726           $tracelevel)
727           if defined $::RD_TRACE;
728     if (1) { no strict qw{refs};
729     $expectation->is(q{})->at($text);
730     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
731     {
732
733       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
734               Parse::RecDescent::_tracefirst($text),
735               q{name1},
736               $tracelevel)
737               if defined $::RD_TRACE;
738       $expectation->failed();
739       last;
740     }
741     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
742           . $_tok . q{]},
743
744             Parse::RecDescent::_tracefirst($text),
745             q{name1},
746             $tracelevel)
747             if defined $::RD_TRACE;
748     $item{q{NAME}} = $_tok;
749     push @item, $_tok;
750
751     }
752
753
754     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
755             Parse::RecDescent::_tracefirst($text),
756             q{name1},
757             $tracelevel)
758             if defined $::RD_TRACE;
759     $_matched = 1;
760     last;
761   }
762
763
764         unless ( $_matched || defined($return) || defined($score) )
765   {
766
767
768     $_[1] = $text;  # NOT SURE THIS IS NEEDED
769     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
770            Parse::RecDescent::_tracefirst($_[1]),
771            q{name1},
772            $tracelevel)
773           if defined $::RD_TRACE;
774     return undef;
775   }
776   if (!defined($return) && defined($score))
777   {
778     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
779             q{name1},
780             $tracelevel)
781             if defined $::RD_TRACE;
782     $return = $score_return;
783   }
784   splice @{$thisparser->{errors}}, $err_at;
785   $return = $item[$#item] unless defined $return;
786   if (defined $::RD_TRACE)
787   {
788     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
789             $return . q{])}, "",
790             q{name1},
791             $tracelevel);
792     Parse::RecDescent::_trace(q{(consumed: [} .
793             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
794             Parse::RecDescent::_tracefirst($text),
795             , q{name1},
796             $tracelevel)
797   }
798   $_[1] = $text;
799   return $return;
800 }
801
802 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
803 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond
804 {
805   my $thisparser = $_[0];
806   use vars q{$tracelevel};
807   local $tracelevel = ($tracelevel||0)+1;
808   $ERRORS = 0;
809   my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cond"};
810
811   Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_cond]},
812           Parse::RecDescent::_tracefirst($_[1]),
813           q{_alternation_2_of_production_1_of_rule_cond},
814           $tracelevel)
815           if defined $::RD_TRACE;
816
817
818   my $err_at = @{$thisparser->{errors}};
819
820   my $score;
821   my $score_return;
822   my $_tok;
823   my $return = undef;
824   my $_matched=0;
825   my $commit=0;
826   my @item = ();
827   my %item = ();
828   my $repeating =  defined($_[2]) && $_[2];
829   my $_noactions = defined($_[3]) && $_[3];
830    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
831   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
832   my $text;
833   my $lastsep="";
834   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
835   $expectation->at($_[1]);
836
837   my $thisline;
838   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
839
840
841
842   while (!$_matched && !$commit)
843   {
844
845     Parse::RecDescent::_trace(q{Trying production: [predicate /SELECTIVITY/i]},
846             Parse::RecDescent::_tracefirst($_[1]),
847             q{_alternation_2_of_production_1_of_rule_cond},
848             $tracelevel)
849             if defined $::RD_TRACE;
850     my $thisprod = $thisrule->{"prods"}[0];
851     $text = $_[1];
852     my $_savetext;
853     @item = (q{_alternation_2_of_production_1_of_rule_cond});
854     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
855     my $repcount = 0;
856
857
858     Parse::RecDescent::_trace(q{Trying subrule: [predicate]},
859           Parse::RecDescent::_tracefirst($text),
860           q{_alternation_2_of_production_1_of_rule_cond},
861           $tracelevel)
862           if defined $::RD_TRACE;
863     if (1) { no strict qw{refs};
864     $expectation->is(q{})->at($text);
865     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
866     {
867
868       Parse::RecDescent::_trace(q{<<Didn't match subrule: [predicate]>>},
869               Parse::RecDescent::_tracefirst($text),
870               q{_alternation_2_of_production_1_of_rule_cond},
871               $tracelevel)
872               if defined $::RD_TRACE;
873       $expectation->failed();
874       last;
875     }
876     Parse::RecDescent::_trace(q{>>Matched subrule: [predicate]<< (return value: [}
877           . $_tok . q{]},
878
879             Parse::RecDescent::_tracefirst($text),
880             q{_alternation_2_of_production_1_of_rule_cond},
881             $tracelevel)
882             if defined $::RD_TRACE;
883     $item{q{predicate}} = $_tok;
884     push @item, $_tok;
885
886     }
887
888     Parse::RecDescent::_trace(q{Trying repeated subrule: [/SELECTIVITY/i]},
889           Parse::RecDescent::_tracefirst($text),
890           q{_alternation_2_of_production_1_of_rule_cond},
891           $tracelevel)
892           if defined $::RD_TRACE;
893     $expectation->is(q{/SELECTIVITY/i})->at($text);
894
895     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond, 0, 1, $_noactions,$expectation,undef)))
896     {
897       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SELECTIVITY/i]>>},
898               Parse::RecDescent::_tracefirst($text),
899               q{_alternation_2_of_production_1_of_rule_cond},
900               $tracelevel)
901               if defined $::RD_TRACE;
902       last;
903     }
904     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]<< (}
905           . @$_tok . q{ times)},
906
907             Parse::RecDescent::_tracefirst($text),
908             q{_alternation_2_of_production_1_of_rule_cond},
909             $tracelevel)
910             if defined $::RD_TRACE;
911     $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond(?)}} = $_tok;
912     push @item, $_tok;
913
914
915
916
917     Parse::RecDescent::_trace(q{>>Matched production: [predicate /SELECTIVITY/i]<<},
918             Parse::RecDescent::_tracefirst($text),
919             q{_alternation_2_of_production_1_of_rule_cond},
920             $tracelevel)
921             if defined $::RD_TRACE;
922     $_matched = 1;
923     last;
924   }
925
926
927   while (!$_matched && !$commit)
928   {
929
930     Parse::RecDescent::_trace(q{Trying production: ['(' search_condition ')']},
931             Parse::RecDescent::_tracefirst($_[1]),
932             q{_alternation_2_of_production_1_of_rule_cond},
933             $tracelevel)
934             if defined $::RD_TRACE;
935     my $thisprod = $thisrule->{"prods"}[1];
936     $text = $_[1];
937     my $_savetext;
938     @item = (q{_alternation_2_of_production_1_of_rule_cond});
939     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cond});
940     my $repcount = 0;
941
942
943     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
944             Parse::RecDescent::_tracefirst($text),
945             q{_alternation_2_of_production_1_of_rule_cond},
946             $tracelevel)
947             if defined $::RD_TRACE;
948     $lastsep = "";
949     $expectation->is(q{})->at($text);
950
951
952     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
953     {
954
955       $expectation->failed();
956       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
957               Parse::RecDescent::_tracefirst($text))
958               if defined $::RD_TRACE;
959       last;
960     }
961     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
962             . $& . q{])},
963               Parse::RecDescent::_tracefirst($text))
964               if defined $::RD_TRACE;
965     push @item, $item{__STRING1__}=$&;
966
967
968     Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
969           Parse::RecDescent::_tracefirst($text),
970           q{_alternation_2_of_production_1_of_rule_cond},
971           $tracelevel)
972           if defined $::RD_TRACE;
973     if (1) { no strict qw{refs};
974     $expectation->is(q{search_condition})->at($text);
975     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
976     {
977
978       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
979               Parse::RecDescent::_tracefirst($text),
980               q{_alternation_2_of_production_1_of_rule_cond},
981               $tracelevel)
982               if defined $::RD_TRACE;
983       $expectation->failed();
984       last;
985     }
986     Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
987           . $_tok . q{]},
988
989             Parse::RecDescent::_tracefirst($text),
990             q{_alternation_2_of_production_1_of_rule_cond},
991             $tracelevel)
992             if defined $::RD_TRACE;
993     $item{q{search_condition}} = $_tok;
994     push @item, $_tok;
995
996     }
997
998     Parse::RecDescent::_trace(q{Trying terminal: [')']},
999             Parse::RecDescent::_tracefirst($text),
1000             q{_alternation_2_of_production_1_of_rule_cond},
1001             $tracelevel)
1002             if defined $::RD_TRACE;
1003     $lastsep = "";
1004     $expectation->is(q{')'})->at($text);
1005
1006
1007     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
1008     {
1009
1010       $expectation->failed();
1011       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
1012               Parse::RecDescent::_tracefirst($text))
1013               if defined $::RD_TRACE;
1014       last;
1015     }
1016     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1017             . $& . q{])},
1018               Parse::RecDescent::_tracefirst($text))
1019               if defined $::RD_TRACE;
1020     push @item, $item{__STRING2__}=$&;
1021
1022
1023
1024     Parse::RecDescent::_trace(q{>>Matched production: ['(' search_condition ')']<<},
1025             Parse::RecDescent::_tracefirst($text),
1026             q{_alternation_2_of_production_1_of_rule_cond},
1027             $tracelevel)
1028             if defined $::RD_TRACE;
1029     $_matched = 1;
1030     last;
1031   }
1032
1033
1034         unless ( $_matched || defined($return) || defined($score) )
1035   {
1036
1037
1038     $_[1] = $text;  # NOT SURE THIS IS NEEDED
1039     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1040            Parse::RecDescent::_tracefirst($_[1]),
1041            q{_alternation_2_of_production_1_of_rule_cond},
1042            $tracelevel)
1043           if defined $::RD_TRACE;
1044     return undef;
1045   }
1046   if (!defined($return) && defined($score))
1047   {
1048     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1049             q{_alternation_2_of_production_1_of_rule_cond},
1050             $tracelevel)
1051             if defined $::RD_TRACE;
1052     $return = $score_return;
1053   }
1054   splice @{$thisparser->{errors}}, $err_at;
1055   $return = $item[$#item] unless defined $return;
1056   if (defined $::RD_TRACE)
1057   {
1058     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1059             $return . q{])}, "",
1060             q{_alternation_2_of_production_1_of_rule_cond},
1061             $tracelevel);
1062     Parse::RecDescent::_trace(q{(consumed: [} .
1063             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1064             Parse::RecDescent::_tracefirst($text),
1065             , q{_alternation_2_of_production_1_of_rule_cond},
1066             $tracelevel)
1067   }
1068   $_[1] = $text;
1069   return $return;
1070 }
1071
1072 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1073 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression
1074 {
1075   my $thisparser = $_[0];
1076   use vars q{$tracelevel};
1077   local $tracelevel = ($tracelevel||0)+1;
1078   $ERRORS = 0;
1079   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_expression"};
1080
1081   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_expression]},
1082           Parse::RecDescent::_tracefirst($_[1]),
1083           q{_alternation_1_of_production_1_of_rule_expression},
1084           $tracelevel)
1085           if defined $::RD_TRACE;
1086
1087
1088   my $err_at = @{$thisparser->{errors}};
1089
1090   my $score;
1091   my $score_return;
1092   my $_tok;
1093   my $return = undef;
1094   my $_matched=0;
1095   my $commit=0;
1096   my @item = ();
1097   my %item = ();
1098   my $repeating =  defined($_[2]) && $_[2];
1099   my $_noactions = defined($_[3]) && $_[3];
1100    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1101   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1102   my $text;
1103   my $lastsep="";
1104   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1105   $expectation->at($_[1]);
1106
1107   my $thisline;
1108   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1109
1110
1111
1112   while (!$_matched && !$commit)
1113   {
1114
1115     Parse::RecDescent::_trace(q{Trying production: ['+', or '-' function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference]},
1116             Parse::RecDescent::_tracefirst($_[1]),
1117             q{_alternation_1_of_production_1_of_rule_expression},
1118             $tracelevel)
1119             if defined $::RD_TRACE;
1120     my $thisprod = $thisrule->{"prods"}[0];
1121     $text = $_[1];
1122     my $_savetext;
1123     @item = (q{_alternation_1_of_production_1_of_rule_expression});
1124     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_expression});
1125     my $repcount = 0;
1126
1127
1128     Parse::RecDescent::_trace(q{Trying repeated subrule: ['+', or '-']},
1129           Parse::RecDescent::_tracefirst($text),
1130           q{_alternation_1_of_production_1_of_rule_expression},
1131           $tracelevel)
1132           if defined $::RD_TRACE;
1133     $expectation->is(q{})->at($text);
1134
1135     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression, 0, 1, $_noactions,$expectation,undef)))
1136     {
1137       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['+', or '-']>>},
1138               Parse::RecDescent::_tracefirst($text),
1139               q{_alternation_1_of_production_1_of_rule_expression},
1140               $tracelevel)
1141               if defined $::RD_TRACE;
1142       last;
1143     }
1144     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (}
1145           . @$_tok . q{ times)},
1146
1147             Parse::RecDescent::_tracefirst($text),
1148             q{_alternation_1_of_production_1_of_rule_expression},
1149             $tracelevel)
1150             if defined $::RD_TRACE;
1151     $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression(?)}} = $_tok;
1152     push @item, $_tok;
1153
1154
1155
1156     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
1157           Parse::RecDescent::_tracefirst($text),
1158           q{_alternation_1_of_production_1_of_rule_expression},
1159           $tracelevel)
1160           if defined $::RD_TRACE;
1161     if (1) { no strict qw{refs};
1162     $expectation->is(q{function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference})->at($text);
1163     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
1164     {
1165
1166       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]>>},
1167               Parse::RecDescent::_tracefirst($text),
1168               q{_alternation_1_of_production_1_of_rule_expression},
1169               $tracelevel)
1170               if defined $::RD_TRACE;
1171       $expectation->failed();
1172       last;
1173     }
1174     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]<< (return value: [}
1175           . $_tok . q{]},
1176
1177             Parse::RecDescent::_tracefirst($text),
1178             q{_alternation_1_of_production_1_of_rule_expression},
1179             $tracelevel)
1180             if defined $::RD_TRACE;
1181     $item{q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression}} = $_tok;
1182     push @item, $_tok;
1183
1184     }
1185
1186
1187     Parse::RecDescent::_trace(q{>>Matched production: ['+', or '-' function, or '(', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference]<<},
1188             Parse::RecDescent::_tracefirst($text),
1189             q{_alternation_1_of_production_1_of_rule_expression},
1190             $tracelevel)
1191             if defined $::RD_TRACE;
1192     $_matched = 1;
1193     last;
1194   }
1195
1196
1197         unless ( $_matched || defined($return) || defined($score) )
1198   {
1199
1200
1201     $_[1] = $text;  # NOT SURE THIS IS NEEDED
1202     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1203            Parse::RecDescent::_tracefirst($_[1]),
1204            q{_alternation_1_of_production_1_of_rule_expression},
1205            $tracelevel)
1206           if defined $::RD_TRACE;
1207     return undef;
1208   }
1209   if (!defined($return) && defined($score))
1210   {
1211     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1212             q{_alternation_1_of_production_1_of_rule_expression},
1213             $tracelevel)
1214             if defined $::RD_TRACE;
1215     $return = $score_return;
1216   }
1217   splice @{$thisparser->{errors}}, $err_at;
1218   $return = $item[$#item] unless defined $return;
1219   if (defined $::RD_TRACE)
1220   {
1221     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1222             $return . q{])}, "",
1223             q{_alternation_1_of_production_1_of_rule_expression},
1224             $tracelevel);
1225     Parse::RecDescent::_trace(q{(consumed: [} .
1226             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1227             Parse::RecDescent::_tracefirst($text),
1228             , q{_alternation_1_of_production_1_of_rule_expression},
1229             $tracelevel)
1230   }
1231   $_[1] = $text;
1232   return $return;
1233 }
1234
1235 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1236 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA
1237 {
1238   my $thisparser = $_[0];
1239   use vars q{$tracelevel};
1240   local $tracelevel = ($tracelevel||0)+1;
1241   $ERRORS = 0;
1242   my $thisrule = $thisparser->{"rules"}{"SCHEMA"};
1243
1244   Parse::RecDescent::_trace(q{Trying rule: [SCHEMA]},
1245           Parse::RecDescent::_tracefirst($_[1]),
1246           q{SCHEMA},
1247           $tracelevel)
1248           if defined $::RD_TRACE;
1249
1250
1251   my $err_at = @{$thisparser->{errors}};
1252
1253   my $score;
1254   my $score_return;
1255   my $_tok;
1256   my $return = undef;
1257   my $_matched=0;
1258   my $commit=0;
1259   my @item = ();
1260   my %item = ();
1261   my $repeating =  defined($_[2]) && $_[2];
1262   my $_noactions = defined($_[3]) && $_[3];
1263    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1264   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1265   my $text;
1266   my $lastsep="";
1267   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1268   $expectation->at($_[1]);
1269
1270   my $thisline;
1271   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1272
1273
1274
1275   while (!$_matched && !$commit)
1276   {
1277
1278     Parse::RecDescent::_trace(q{Trying production: [/\\w+/]},
1279             Parse::RecDescent::_tracefirst($_[1]),
1280             q{SCHEMA},
1281             $tracelevel)
1282             if defined $::RD_TRACE;
1283     my $thisprod = $thisrule->{"prods"}[0];
1284     $text = $_[1];
1285     my $_savetext;
1286     @item = (q{SCHEMA});
1287     %item = (__RULE__ => q{SCHEMA});
1288     my $repcount = 0;
1289
1290
1291     Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text),
1292             q{SCHEMA},
1293             $tracelevel)
1294             if defined $::RD_TRACE;
1295     $lastsep = "";
1296     $expectation->is(q{})->at($text);
1297
1298
1299     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w+)//)
1300     {
1301
1302       $expectation->failed();
1303       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1304               Parse::RecDescent::_tracefirst($text))
1305           if defined $::RD_TRACE;
1306
1307       last;
1308     }
1309     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1310             . $& . q{])},
1311               Parse::RecDescent::_tracefirst($text))
1312           if defined $::RD_TRACE;
1313     push @item, $item{__PATTERN1__}=$&;
1314
1315
1316
1317     Parse::RecDescent::_trace(q{>>Matched production: [/\\w+/]<<},
1318             Parse::RecDescent::_tracefirst($text),
1319             q{SCHEMA},
1320             $tracelevel)
1321             if defined $::RD_TRACE;
1322     $_matched = 1;
1323     last;
1324   }
1325
1326
1327   while (!$_matched && !$commit)
1328   {
1329
1330     Parse::RecDescent::_trace(q{Trying production: [/\\w\{1,128\}/]},
1331             Parse::RecDescent::_tracefirst($_[1]),
1332             q{SCHEMA},
1333             $tracelevel)
1334             if defined $::RD_TRACE;
1335     my $thisprod = $thisrule->{"prods"}[1];
1336     $text = $_[1];
1337     my $_savetext;
1338     @item = (q{SCHEMA});
1339     %item = (__RULE__ => q{SCHEMA});
1340     my $repcount = 0;
1341
1342
1343     Parse::RecDescent::_trace(q{Trying terminal: [/\\w\{1,128\}/]}, Parse::RecDescent::_tracefirst($text),
1344             q{SCHEMA},
1345             $tracelevel)
1346             if defined $::RD_TRACE;
1347     $lastsep = "";
1348     $expectation->is(q{})->at($text);
1349
1350
1351     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w{1,128})//)
1352     {
1353
1354       $expectation->failed();
1355       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1356               Parse::RecDescent::_tracefirst($text))
1357           if defined $::RD_TRACE;
1358
1359       last;
1360     }
1361     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1362             . $& . q{])},
1363               Parse::RecDescent::_tracefirst($text))
1364           if defined $::RD_TRACE;
1365     push @item, $item{__PATTERN1__}=$&;
1366
1367
1368
1369     Parse::RecDescent::_trace(q{>>Matched production: [/\\w\{1,128\}/]<<},
1370             Parse::RecDescent::_tracefirst($text),
1371             q{SCHEMA},
1372             $tracelevel)
1373             if defined $::RD_TRACE;
1374     $_matched = 1;
1375     last;
1376   }
1377
1378
1379         unless ( $_matched || defined($return) || defined($score) )
1380   {
1381
1382
1383     $_[1] = $text;  # NOT SURE THIS IS NEEDED
1384     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1385            Parse::RecDescent::_tracefirst($_[1]),
1386            q{SCHEMA},
1387            $tracelevel)
1388           if defined $::RD_TRACE;
1389     return undef;
1390   }
1391   if (!defined($return) && defined($score))
1392   {
1393     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1394             q{SCHEMA},
1395             $tracelevel)
1396             if defined $::RD_TRACE;
1397     $return = $score_return;
1398   }
1399   splice @{$thisparser->{errors}}, $err_at;
1400   $return = $item[$#item] unless defined $return;
1401   if (defined $::RD_TRACE)
1402   {
1403     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1404             $return . q{])}, "",
1405             q{SCHEMA},
1406             $tracelevel);
1407     Parse::RecDescent::_trace(q{(consumed: [} .
1408             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1409             Parse::RecDescent::_tracefirst($text),
1410             , q{SCHEMA},
1411             $tracelevel)
1412   }
1413   $_[1] = $text;
1414   return $return;
1415 }
1416
1417 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1418 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_87_of_rule_sysibm_function
1419 {
1420   my $thisparser = $_[0];
1421   use vars q{$tracelevel};
1422   local $tracelevel = ($tracelevel||0)+1;
1423   $ERRORS = 0;
1424   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_87_of_rule_sysibm_function"};
1425
1426   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
1427           Parse::RecDescent::_tracefirst($_[1]),
1428           q{_alternation_1_of_production_87_of_rule_sysibm_function},
1429           $tracelevel)
1430           if defined $::RD_TRACE;
1431
1432
1433   my $err_at = @{$thisparser->{errors}};
1434
1435   my $score;
1436   my $score_return;
1437   my $_tok;
1438   my $return = undef;
1439   my $_matched=0;
1440   my $commit=0;
1441   my @item = ();
1442   my %item = ();
1443   my $repeating =  defined($_[2]) && $_[2];
1444   my $_noactions = defined($_[3]) && $_[3];
1445    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1446   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1447   my $text;
1448   my $lastsep="";
1449   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1450   $expectation->at($_[1]);
1451
1452   my $thisline;
1453   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1454
1455
1456
1457   while (!$_matched && !$commit)
1458   {
1459
1460     Parse::RecDescent::_trace(q{Trying production: [/VARIANCE/i]},
1461             Parse::RecDescent::_tracefirst($_[1]),
1462             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1463             $tracelevel)
1464             if defined $::RD_TRACE;
1465     my $thisprod = $thisrule->{"prods"}[0];
1466     $text = $_[1];
1467     my $_savetext;
1468     @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
1469     %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
1470     my $repcount = 0;
1471
1472
1473     Parse::RecDescent::_trace(q{Trying terminal: [/VARIANCE/i]}, Parse::RecDescent::_tracefirst($text),
1474             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1475             $tracelevel)
1476             if defined $::RD_TRACE;
1477     $lastsep = "";
1478     $expectation->is(q{})->at($text);
1479
1480
1481     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARIANCE)//i)
1482     {
1483
1484       $expectation->failed();
1485       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1486               Parse::RecDescent::_tracefirst($text))
1487           if defined $::RD_TRACE;
1488
1489       last;
1490     }
1491     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1492             . $& . q{])},
1493               Parse::RecDescent::_tracefirst($text))
1494           if defined $::RD_TRACE;
1495     push @item, $item{__PATTERN1__}=$&;
1496
1497
1498
1499     Parse::RecDescent::_trace(q{>>Matched production: [/VARIANCE/i]<<},
1500             Parse::RecDescent::_tracefirst($text),
1501             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1502             $tracelevel)
1503             if defined $::RD_TRACE;
1504     $_matched = 1;
1505     last;
1506   }
1507
1508
1509   while (!$_matched && !$commit)
1510   {
1511
1512     Parse::RecDescent::_trace(q{Trying production: [/VAR/i]},
1513             Parse::RecDescent::_tracefirst($_[1]),
1514             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1515             $tracelevel)
1516             if defined $::RD_TRACE;
1517     my $thisprod = $thisrule->{"prods"}[1];
1518     $text = $_[1];
1519     my $_savetext;
1520     @item = (q{_alternation_1_of_production_87_of_rule_sysibm_function});
1521     %item = (__RULE__ => q{_alternation_1_of_production_87_of_rule_sysibm_function});
1522     my $repcount = 0;
1523
1524
1525     Parse::RecDescent::_trace(q{Trying terminal: [/VAR/i]}, Parse::RecDescent::_tracefirst($text),
1526             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1527             $tracelevel)
1528             if defined $::RD_TRACE;
1529     $lastsep = "";
1530     $expectation->is(q{})->at($text);
1531
1532
1533     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VAR)//i)
1534     {
1535
1536       $expectation->failed();
1537       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
1538               Parse::RecDescent::_tracefirst($text))
1539           if defined $::RD_TRACE;
1540
1541       last;
1542     }
1543     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1544             . $& . q{])},
1545               Parse::RecDescent::_tracefirst($text))
1546           if defined $::RD_TRACE;
1547     push @item, $item{__PATTERN1__}=$&;
1548
1549
1550
1551     Parse::RecDescent::_trace(q{>>Matched production: [/VAR/i]<<},
1552             Parse::RecDescent::_tracefirst($text),
1553             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1554             $tracelevel)
1555             if defined $::RD_TRACE;
1556     $_matched = 1;
1557     last;
1558   }
1559
1560
1561         unless ( $_matched || defined($return) || defined($score) )
1562   {
1563
1564
1565     $_[1] = $text;  # NOT SURE THIS IS NEEDED
1566     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1567            Parse::RecDescent::_tracefirst($_[1]),
1568            q{_alternation_1_of_production_87_of_rule_sysibm_function},
1569            $tracelevel)
1570           if defined $::RD_TRACE;
1571     return undef;
1572   }
1573   if (!defined($return) && defined($score))
1574   {
1575     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1576             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1577             $tracelevel)
1578             if defined $::RD_TRACE;
1579     $return = $score_return;
1580   }
1581   splice @{$thisparser->{errors}}, $err_at;
1582   $return = $item[$#item] unless defined $return;
1583   if (defined $::RD_TRACE)
1584   {
1585     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1586             $return . q{])}, "",
1587             q{_alternation_1_of_production_87_of_rule_sysibm_function},
1588             $tracelevel);
1589     Parse::RecDescent::_trace(q{(consumed: [} .
1590             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1591             Parse::RecDescent::_tracefirst($text),
1592             , q{_alternation_1_of_production_87_of_rule_sysibm_function},
1593             $tracelevel)
1594   }
1595   $_[1] = $text;
1596   return $return;
1597 }
1598
1599 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1600 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
1601 {
1602   my $thisparser = $_[0];
1603   use vars q{$tracelevel};
1604   local $tracelevel = ($tracelevel||0)+1;
1605   $ERRORS = 0;
1606   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
1607
1608   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
1609           Parse::RecDescent::_tracefirst($_[1]),
1610           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1611           $tracelevel)
1612           if defined $::RD_TRACE;
1613
1614
1615   my $err_at = @{$thisparser->{errors}};
1616
1617   my $score;
1618   my $score_return;
1619   my $_tok;
1620   my $return = undef;
1621   my $_matched=0;
1622   my $commit=0;
1623   my @item = ();
1624   my %item = ();
1625   my $repeating =  defined($_[2]) && $_[2];
1626   my $_noactions = defined($_[3]) && $_[3];
1627    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1628   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1629   my $text;
1630   my $lastsep="";
1631   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1632   $expectation->at($_[1]);
1633
1634   my $thisline;
1635   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1636
1637
1638
1639   while (!$_matched && !$commit)
1640   {
1641
1642     Parse::RecDescent::_trace(q{Trying production: ['+']},
1643             Parse::RecDescent::_tracefirst($_[1]),
1644             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1645             $tracelevel)
1646             if defined $::RD_TRACE;
1647     my $thisprod = $thisrule->{"prods"}[0];
1648     $text = $_[1];
1649     my $_savetext;
1650     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1651     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1652     my $repcount = 0;
1653
1654
1655     Parse::RecDescent::_trace(q{Trying terminal: ['+']},
1656             Parse::RecDescent::_tracefirst($text),
1657             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1658             $tracelevel)
1659             if defined $::RD_TRACE;
1660     $lastsep = "";
1661     $expectation->is(q{})->at($text);
1662
1663
1664     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\+//)
1665     {
1666
1667       $expectation->failed();
1668       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
1669               Parse::RecDescent::_tracefirst($text))
1670               if defined $::RD_TRACE;
1671       last;
1672     }
1673     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1674             . $& . q{])},
1675               Parse::RecDescent::_tracefirst($text))
1676               if defined $::RD_TRACE;
1677     push @item, $item{__STRING1__}=$&;
1678
1679
1680
1681     Parse::RecDescent::_trace(q{>>Matched production: ['+']<<},
1682             Parse::RecDescent::_tracefirst($text),
1683             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1684             $tracelevel)
1685             if defined $::RD_TRACE;
1686     $_matched = 1;
1687     last;
1688   }
1689
1690
1691   while (!$_matched && !$commit)
1692   {
1693
1694     Parse::RecDescent::_trace(q{Trying production: ['-']},
1695             Parse::RecDescent::_tracefirst($_[1]),
1696             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1697             $tracelevel)
1698             if defined $::RD_TRACE;
1699     my $thisprod = $thisrule->{"prods"}[1];
1700     $text = $_[1];
1701     my $_savetext;
1702     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1703     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
1704     my $repcount = 0;
1705
1706
1707     Parse::RecDescent::_trace(q{Trying terminal: ['-']},
1708             Parse::RecDescent::_tracefirst($text),
1709             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1710             $tracelevel)
1711             if defined $::RD_TRACE;
1712     $lastsep = "";
1713     $expectation->is(q{})->at($text);
1714
1715
1716     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\-//)
1717     {
1718
1719       $expectation->failed();
1720       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
1721               Parse::RecDescent::_tracefirst($text))
1722               if defined $::RD_TRACE;
1723       last;
1724     }
1725     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
1726             . $& . q{])},
1727               Parse::RecDescent::_tracefirst($text))
1728               if defined $::RD_TRACE;
1729     push @item, $item{__STRING1__}=$&;
1730
1731
1732
1733     Parse::RecDescent::_trace(q{>>Matched production: ['-']<<},
1734             Parse::RecDescent::_tracefirst($text),
1735             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1736             $tracelevel)
1737             if defined $::RD_TRACE;
1738     $_matched = 1;
1739     last;
1740   }
1741
1742
1743         unless ( $_matched || defined($return) || defined($score) )
1744   {
1745
1746
1747     $_[1] = $text;  # NOT SURE THIS IS NEEDED
1748     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1749            Parse::RecDescent::_tracefirst($_[1]),
1750            q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1751            $tracelevel)
1752           if defined $::RD_TRACE;
1753     return undef;
1754   }
1755   if (!defined($return) && defined($score))
1756   {
1757     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1758             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1759             $tracelevel)
1760             if defined $::RD_TRACE;
1761     $return = $score_return;
1762   }
1763   splice @{$thisparser->{errors}}, $err_at;
1764   $return = $item[$#item] unless defined $return;
1765   if (defined $::RD_TRACE)
1766   {
1767     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1768             $return . q{])}, "",
1769             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1770             $tracelevel);
1771     Parse::RecDescent::_trace(q{(consumed: [} .
1772             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1773             Parse::RecDescent::_tracefirst($text),
1774             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
1775             $tracelevel)
1776   }
1777   $_[1] = $text;
1778   return $return;
1779 }
1780
1781 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1782 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed
1783 {
1784   my $thisparser = $_[0];
1785   use vars q{$tracelevel};
1786   local $tracelevel = ($tracelevel||0)+1;
1787   $ERRORS = 0;
1788   my $thisrule = $thisparser->{"rules"}{"get_bracketed"};
1789
1790   Parse::RecDescent::_trace(q{Trying rule: [get_bracketed]},
1791           Parse::RecDescent::_tracefirst($_[1]),
1792           q{get_bracketed},
1793           $tracelevel)
1794           if defined $::RD_TRACE;
1795
1796
1797   my $err_at = @{$thisparser->{errors}};
1798
1799   my $score;
1800   my $score_return;
1801   my $_tok;
1802   my $return = undef;
1803   my $_matched=0;
1804   my $commit=0;
1805   my @item = ();
1806   my %item = ();
1807   my $repeating =  defined($_[2]) && $_[2];
1808   my $_noactions = defined($_[3]) && $_[3];
1809    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1810   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1811   my $text;
1812   my $lastsep="";
1813   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1814   $expectation->at($_[1]);
1815
1816   my $thisline;
1817   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1818
1819
1820
1821   while (!$_matched && !$commit)
1822   {
1823
1824     Parse::RecDescent::_trace(q{Trying production: []},
1825             Parse::RecDescent::_tracefirst($_[1]),
1826             q{get_bracketed},
1827             $tracelevel)
1828             if defined $::RD_TRACE;
1829     my $thisprod = $thisrule->{"prods"}[0];
1830     $text = $_[1];
1831     my $_savetext;
1832     @item = (q{get_bracketed});
1833     %item = (__RULE__ => q{get_bracketed});
1834     my $repcount = 0;
1835
1836
1837     Parse::RecDescent::_trace(q{Trying action},
1838             Parse::RecDescent::_tracefirst($text),
1839             q{get_bracketed},
1840             $tracelevel)
1841             if defined $::RD_TRACE;
1842
1843
1844     $_tok = ($_noactions) ? 0 : do {
1845     extract_bracketed($text, '(');
1846 };
1847     unless (defined $_tok)
1848     {
1849       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
1850           if defined $::RD_TRACE;
1851       last;
1852     }
1853     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
1854             . $_tok . q{])},
1855             Parse::RecDescent::_tracefirst($text))
1856             if defined $::RD_TRACE;
1857     push @item, $_tok;
1858     $item{__ACTION1__}=$_tok;
1859
1860
1861
1862     Parse::RecDescent::_trace(q{>>Matched production: []<<},
1863             Parse::RecDescent::_tracefirst($text),
1864             q{get_bracketed},
1865             $tracelevel)
1866             if defined $::RD_TRACE;
1867     $_matched = 1;
1868     last;
1869   }
1870
1871
1872         unless ( $_matched || defined($return) || defined($score) )
1873   {
1874
1875
1876     $_[1] = $text;  # NOT SURE THIS IS NEEDED
1877     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
1878            Parse::RecDescent::_tracefirst($_[1]),
1879            q{get_bracketed},
1880            $tracelevel)
1881           if defined $::RD_TRACE;
1882     return undef;
1883   }
1884   if (!defined($return) && defined($score))
1885   {
1886     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
1887             q{get_bracketed},
1888             $tracelevel)
1889             if defined $::RD_TRACE;
1890     $return = $score_return;
1891   }
1892   splice @{$thisparser->{errors}}, $err_at;
1893   $return = $item[$#item] unless defined $return;
1894   if (defined $::RD_TRACE)
1895   {
1896     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
1897             $return . q{])}, "",
1898             q{get_bracketed},
1899             $tracelevel);
1900     Parse::RecDescent::_trace(q{(consumed: [} .
1901             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
1902             Parse::RecDescent::_tracefirst($text),
1903             , q{get_bracketed},
1904             $tracelevel)
1905   }
1906   $_[1] = $text;
1907   return $return;
1908 }
1909
1910 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
1911 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration
1912 {
1913   my $thisparser = $_[0];
1914   use vars q{$tracelevel};
1915   local $tracelevel = ($tracelevel||0)+1;
1916   $ERRORS = 0;
1917   my $thisrule = $thisparser->{"rules"}{"labeled_duration"};
1918
1919   Parse::RecDescent::_trace(q{Trying rule: [labeled_duration]},
1920           Parse::RecDescent::_tracefirst($_[1]),
1921           q{labeled_duration},
1922           $tracelevel)
1923           if defined $::RD_TRACE;
1924
1925
1926   my $err_at = @{$thisparser->{errors}};
1927
1928   my $score;
1929   my $score_return;
1930   my $_tok;
1931   my $return = undef;
1932   my $_matched=0;
1933   my $commit=0;
1934   my @item = ();
1935   my %item = ();
1936   my $repeating =  defined($_[2]) && $_[2];
1937   my $_noactions = defined($_[3]) && $_[3];
1938    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
1939   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
1940   my $text;
1941   my $lastsep="";
1942   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
1943   $expectation->at($_[1]);
1944
1945   my $thisline;
1946   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
1947
1948
1949
1950   while (!$_matched && !$commit)
1951   {
1952
1953     Parse::RecDescent::_trace(q{Trying production: [ld_type ld_duration]},
1954             Parse::RecDescent::_tracefirst($_[1]),
1955             q{labeled_duration},
1956             $tracelevel)
1957             if defined $::RD_TRACE;
1958     my $thisprod = $thisrule->{"prods"}[0];
1959     $text = $_[1];
1960     my $_savetext;
1961     @item = (q{labeled_duration});
1962     %item = (__RULE__ => q{labeled_duration});
1963     my $repcount = 0;
1964
1965
1966     Parse::RecDescent::_trace(q{Trying subrule: [ld_type]},
1967           Parse::RecDescent::_tracefirst($text),
1968           q{labeled_duration},
1969           $tracelevel)
1970           if defined $::RD_TRACE;
1971     if (1) { no strict qw{refs};
1972     $expectation->is(q{})->at($text);
1973     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
1974     {
1975
1976       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ld_type]>>},
1977               Parse::RecDescent::_tracefirst($text),
1978               q{labeled_duration},
1979               $tracelevel)
1980               if defined $::RD_TRACE;
1981       $expectation->failed();
1982       last;
1983     }
1984     Parse::RecDescent::_trace(q{>>Matched subrule: [ld_type]<< (return value: [}
1985           . $_tok . q{]},
1986
1987             Parse::RecDescent::_tracefirst($text),
1988             q{labeled_duration},
1989             $tracelevel)
1990             if defined $::RD_TRACE;
1991     $item{q{ld_type}} = $_tok;
1992     push @item, $_tok;
1993
1994     }
1995
1996     Parse::RecDescent::_trace(q{Trying subrule: [ld_duration]},
1997           Parse::RecDescent::_tracefirst($text),
1998           q{labeled_duration},
1999           $tracelevel)
2000           if defined $::RD_TRACE;
2001     if (1) { no strict qw{refs};
2002     $expectation->is(q{ld_duration})->at($text);
2003     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2004     {
2005
2006       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ld_duration]>>},
2007               Parse::RecDescent::_tracefirst($text),
2008               q{labeled_duration},
2009               $tracelevel)
2010               if defined $::RD_TRACE;
2011       $expectation->failed();
2012       last;
2013     }
2014     Parse::RecDescent::_trace(q{>>Matched subrule: [ld_duration]<< (return value: [}
2015           . $_tok . q{]},
2016
2017             Parse::RecDescent::_tracefirst($text),
2018             q{labeled_duration},
2019             $tracelevel)
2020             if defined $::RD_TRACE;
2021     $item{q{ld_duration}} = $_tok;
2022     push @item, $_tok;
2023
2024     }
2025
2026
2027     Parse::RecDescent::_trace(q{>>Matched production: [ld_type ld_duration]<<},
2028             Parse::RecDescent::_tracefirst($text),
2029             q{labeled_duration},
2030             $tracelevel)
2031             if defined $::RD_TRACE;
2032     $_matched = 1;
2033     last;
2034   }
2035
2036
2037         unless ( $_matched || defined($return) || defined($score) )
2038   {
2039
2040
2041     $_[1] = $text;  # NOT SURE THIS IS NEEDED
2042     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2043            Parse::RecDescent::_tracefirst($_[1]),
2044            q{labeled_duration},
2045            $tracelevel)
2046           if defined $::RD_TRACE;
2047     return undef;
2048   }
2049   if (!defined($return) && defined($score))
2050   {
2051     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2052             q{labeled_duration},
2053             $tracelevel)
2054             if defined $::RD_TRACE;
2055     $return = $score_return;
2056   }
2057   splice @{$thisparser->{errors}}, $err_at;
2058   $return = $item[$#item] unless defined $return;
2059   if (defined $::RD_TRACE)
2060   {
2061     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2062             $return . q{])}, "",
2063             q{labeled_duration},
2064             $tracelevel);
2065     Parse::RecDescent::_trace(q{(consumed: [} .
2066             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2067             Parse::RecDescent::_tracefirst($text),
2068             , q{labeled_duration},
2069             $tracelevel)
2070   }
2071   $_[1] = $text;
2072   return $return;
2073 }
2074
2075 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2076 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end
2077 {
2078   my $thisparser = $_[0];
2079   use vars q{$tracelevel};
2080   local $tracelevel = ($tracelevel||0)+1;
2081   $ERRORS = 0;
2082   my $thisrule = $thisparser->{"rules"}{"group_end"};
2083
2084   Parse::RecDescent::_trace(q{Trying rule: [group_end]},
2085           Parse::RecDescent::_tracefirst($_[1]),
2086           q{group_end},
2087           $tracelevel)
2088           if defined $::RD_TRACE;
2089
2090
2091   my $err_at = @{$thisparser->{errors}};
2092
2093   my $score;
2094   my $score_return;
2095   my $_tok;
2096   my $return = undef;
2097   my $_matched=0;
2098   my $commit=0;
2099   my @item = ();
2100   my %item = ();
2101   my $repeating =  defined($_[2]) && $_[2];
2102   my $_noactions = defined($_[3]) && $_[3];
2103    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2104   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2105   my $text;
2106   my $lastsep="";
2107   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2108   $expectation->at($_[1]);
2109
2110   my $thisline;
2111   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2112
2113
2114
2115   while (!$_matched && !$commit)
2116   {
2117
2118     Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
2119             Parse::RecDescent::_tracefirst($_[1]),
2120             q{group_end},
2121             $tracelevel)
2122             if defined $::RD_TRACE;
2123     my $thisprod = $thisrule->{"prods"}[0];
2124     $text = $_[1];
2125     my $_savetext;
2126     @item = (q{group_end});
2127     %item = (__RULE__ => q{group_end});
2128     my $repcount = 0;
2129
2130
2131     Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
2132             q{group_end},
2133             $tracelevel)
2134             if defined $::RD_TRACE;
2135     $lastsep = "";
2136     $expectation->is(q{})->at($text);
2137
2138
2139     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
2140     {
2141
2142       $expectation->failed();
2143       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2144               Parse::RecDescent::_tracefirst($text))
2145           if defined $::RD_TRACE;
2146
2147       last;
2148     }
2149     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2150             . $& . q{])},
2151               Parse::RecDescent::_tracefirst($text))
2152           if defined $::RD_TRACE;
2153     push @item, $item{__PATTERN1__}=$&;
2154
2155
2156
2157     Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
2158             Parse::RecDescent::_tracefirst($text),
2159             q{group_end},
2160             $tracelevel)
2161             if defined $::RD_TRACE;
2162     $_matched = 1;
2163     last;
2164   }
2165
2166
2167   while (!$_matched && !$commit)
2168   {
2169
2170     Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
2171             Parse::RecDescent::_tracefirst($_[1]),
2172             q{group_end},
2173             $tracelevel)
2174             if defined $::RD_TRACE;
2175     my $thisprod = $thisrule->{"prods"}[1];
2176     $text = $_[1];
2177     my $_savetext;
2178     @item = (q{group_end});
2179     %item = (__RULE__ => q{group_end});
2180     my $repcount = 0;
2181
2182
2183     Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
2184           Parse::RecDescent::_tracefirst($text),
2185           q{group_end},
2186           $tracelevel)
2187           if defined $::RD_TRACE;
2188     if (1) { no strict qw{refs};
2189     $expectation->is(q{})->at($text);
2190     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2191     {
2192
2193       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
2194               Parse::RecDescent::_tracefirst($text),
2195               q{group_end},
2196               $tracelevel)
2197               if defined $::RD_TRACE;
2198       $expectation->failed();
2199       last;
2200     }
2201     Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
2202           . $_tok . q{]},
2203
2204             Parse::RecDescent::_tracefirst($text),
2205             q{group_end},
2206             $tracelevel)
2207             if defined $::RD_TRACE;
2208     $item{q{unsigned_constant}} = $_tok;
2209     push @item, $_tok;
2210
2211     }
2212
2213     Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
2214             q{group_end},
2215             $tracelevel)
2216             if defined $::RD_TRACE;
2217     $lastsep = "";
2218     $expectation->is(q{/FOLLOWING/i})->at($text);
2219
2220
2221     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//i)
2222     {
2223
2224       $expectation->failed();
2225       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2226               Parse::RecDescent::_tracefirst($text))
2227           if defined $::RD_TRACE;
2228
2229       last;
2230     }
2231     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2232             . $& . q{])},
2233               Parse::RecDescent::_tracefirst($text))
2234           if defined $::RD_TRACE;
2235     push @item, $item{__PATTERN1__}=$&;
2236
2237
2238
2239     Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
2240             Parse::RecDescent::_tracefirst($text),
2241             q{group_end},
2242             $tracelevel)
2243             if defined $::RD_TRACE;
2244     $_matched = 1;
2245     last;
2246   }
2247
2248
2249         unless ( $_matched || defined($return) || defined($score) )
2250   {
2251
2252
2253     $_[1] = $text;  # NOT SURE THIS IS NEEDED
2254     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2255            Parse::RecDescent::_tracefirst($_[1]),
2256            q{group_end},
2257            $tracelevel)
2258           if defined $::RD_TRACE;
2259     return undef;
2260   }
2261   if (!defined($return) && defined($score))
2262   {
2263     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2264             q{group_end},
2265             $tracelevel)
2266             if defined $::RD_TRACE;
2267     $return = $score_return;
2268   }
2269   splice @{$thisparser->{errors}}, $err_at;
2270   $return = $item[$#item] unless defined $return;
2271   if (defined $::RD_TRACE)
2272   {
2273     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2274             $return . q{])}, "",
2275             q{group_end},
2276             $tracelevel);
2277     Parse::RecDescent::_trace(q{(consumed: [} .
2278             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2279             Parse::RecDescent::_tracefirst($text),
2280             , q{group_end},
2281             $tracelevel)
2282   }
2283   $_[1] = $text;
2284   return $return;
2285 }
2286
2287 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2288 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::statement
2289 {
2290   my $thisparser = $_[0];
2291   use vars q{$tracelevel};
2292   local $tracelevel = ($tracelevel||0)+1;
2293   $ERRORS = 0;
2294   my $thisrule = $thisparser->{"rules"}{"statement"};
2295
2296   Parse::RecDescent::_trace(q{Trying rule: [statement]},
2297           Parse::RecDescent::_tracefirst($_[1]),
2298           q{statement},
2299           $tracelevel)
2300           if defined $::RD_TRACE;
2301
2302
2303   my $err_at = @{$thisparser->{errors}};
2304
2305   my $score;
2306   my $score_return;
2307   my $_tok;
2308   my $return = undef;
2309   my $_matched=0;
2310   my $commit=0;
2311   my @item = ();
2312   my %item = ();
2313   my $repeating =  defined($_[2]) && $_[2];
2314   my $_noactions = defined($_[3]) && $_[3];
2315    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2316   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2317   my $text;
2318   my $lastsep="";
2319   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2320   $expectation->at($_[1]);
2321
2322   my $thisline;
2323   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2324
2325
2326
2327   while (!$_matched && !$commit)
2328   {
2329
2330     Parse::RecDescent::_trace(q{Trying production: [comment]},
2331             Parse::RecDescent::_tracefirst($_[1]),
2332             q{statement},
2333             $tracelevel)
2334             if defined $::RD_TRACE;
2335     my $thisprod = $thisrule->{"prods"}[0];
2336     $text = $_[1];
2337     my $_savetext;
2338     @item = (q{statement});
2339     %item = (__RULE__ => q{statement});
2340     my $repcount = 0;
2341
2342
2343     Parse::RecDescent::_trace(q{Trying subrule: [comment]},
2344           Parse::RecDescent::_tracefirst($text),
2345           q{statement},
2346           $tracelevel)
2347           if defined $::RD_TRACE;
2348     if (1) { no strict qw{refs};
2349     $expectation->is(q{})->at($text);
2350     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::comment($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2351     {
2352
2353       Parse::RecDescent::_trace(q{<<Didn't match subrule: [comment]>>},
2354               Parse::RecDescent::_tracefirst($text),
2355               q{statement},
2356               $tracelevel)
2357               if defined $::RD_TRACE;
2358       $expectation->failed();
2359       last;
2360     }
2361     Parse::RecDescent::_trace(q{>>Matched subrule: [comment]<< (return value: [}
2362           . $_tok . q{]},
2363
2364             Parse::RecDescent::_tracefirst($text),
2365             q{statement},
2366             $tracelevel)
2367             if defined $::RD_TRACE;
2368     $item{q{comment}} = $_tok;
2369     push @item, $_tok;
2370
2371     }
2372
2373
2374     Parse::RecDescent::_trace(q{>>Matched production: [comment]<<},
2375             Parse::RecDescent::_tracefirst($text),
2376             q{statement},
2377             $tracelevel)
2378             if defined $::RD_TRACE;
2379     $_matched = 1;
2380     last;
2381   }
2382
2383
2384   while (!$_matched && !$commit)
2385   {
2386
2387     Parse::RecDescent::_trace(q{Trying production: [create]},
2388             Parse::RecDescent::_tracefirst($_[1]),
2389             q{statement},
2390             $tracelevel)
2391             if defined $::RD_TRACE;
2392     my $thisprod = $thisrule->{"prods"}[1];
2393     $text = $_[1];
2394     my $_savetext;
2395     @item = (q{statement});
2396     %item = (__RULE__ => q{statement});
2397     my $repcount = 0;
2398
2399
2400     Parse::RecDescent::_trace(q{Trying subrule: [create]},
2401           Parse::RecDescent::_tracefirst($text),
2402           q{statement},
2403           $tracelevel)
2404           if defined $::RD_TRACE;
2405     if (1) { no strict qw{refs};
2406     $expectation->is(q{})->at($text);
2407     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::create($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2408     {
2409
2410       Parse::RecDescent::_trace(q{<<Didn't match subrule: [create]>>},
2411               Parse::RecDescent::_tracefirst($text),
2412               q{statement},
2413               $tracelevel)
2414               if defined $::RD_TRACE;
2415       $expectation->failed();
2416       last;
2417     }
2418     Parse::RecDescent::_trace(q{>>Matched subrule: [create]<< (return value: [}
2419           . $_tok . q{]},
2420
2421             Parse::RecDescent::_tracefirst($text),
2422             q{statement},
2423             $tracelevel)
2424             if defined $::RD_TRACE;
2425     $item{q{create}} = $_tok;
2426     push @item, $_tok;
2427
2428     }
2429
2430
2431     Parse::RecDescent::_trace(q{>>Matched production: [create]<<},
2432             Parse::RecDescent::_tracefirst($text),
2433             q{statement},
2434             $tracelevel)
2435             if defined $::RD_TRACE;
2436     $_matched = 1;
2437     last;
2438   }
2439
2440
2441   while (!$_matched)
2442   {
2443
2444     Parse::RecDescent::_trace(q{Trying production: [<error...>]},
2445             Parse::RecDescent::_tracefirst($_[1]),
2446             q{statement},
2447             $tracelevel)
2448             if defined $::RD_TRACE;
2449     my $thisprod = $thisrule->{"prods"}[2];
2450
2451     my $_savetext;
2452     @item = (q{statement});
2453     %item = (__RULE__ => q{statement});
2454     my $repcount = 0;
2455
2456
2457
2458
2459     Parse::RecDescent::_trace(q{Trying directive: [<error...>]},
2460           Parse::RecDescent::_tracefirst($text),
2461             q{statement},
2462             $tracelevel)
2463             if defined $::RD_TRACE;
2464     $_tok = do { if (1) { do {
2465     my $rule = $item[0];
2466        $rule =~ s/_/ /g;
2467     #WAS: Parse::RecDescent::_error("Invalid $rule: " . $expectation->message() ,$thisline);
2468     push @{$thisparser->{errors}}, ["Invalid $rule: " . $expectation->message() ,$thisline];
2469     } unless  $_noactions; undef } else {0} };
2470     if (defined($_tok))
2471     {
2472       Parse::RecDescent::_trace(q{>>Matched directive<< (return value: [}
2473             . $_tok . q{])},
2474             Parse::RecDescent::_tracefirst($text))
2475               if defined $::RD_TRACE;
2476     }
2477     else
2478     {
2479       Parse::RecDescent::_trace(q{<<Didn't match directive>>},
2480             Parse::RecDescent::_tracefirst($text))
2481               if defined $::RD_TRACE;
2482     }
2483
2484     last unless defined $_tok;
2485     push @item, $item{__DIRECTIVE1__}=$_tok;
2486
2487
2488
2489     Parse::RecDescent::_trace(q{>>Matched production: [<error...>]<<},
2490             Parse::RecDescent::_tracefirst($text),
2491             q{statement},
2492             $tracelevel)
2493             if defined $::RD_TRACE;
2494     $_matched = 1;
2495     last;
2496   }
2497
2498
2499         unless ( $_matched || defined($return) || defined($score) )
2500   {
2501
2502
2503     $_[1] = $text;  # NOT SURE THIS IS NEEDED
2504     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2505            Parse::RecDescent::_tracefirst($_[1]),
2506            q{statement},
2507            $tracelevel)
2508           if defined $::RD_TRACE;
2509     return undef;
2510   }
2511   if (!defined($return) && defined($score))
2512   {
2513     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2514             q{statement},
2515             $tracelevel)
2516             if defined $::RD_TRACE;
2517     $return = $score_return;
2518   }
2519   splice @{$thisparser->{errors}}, $err_at;
2520   $return = $item[$#item] unless defined $return;
2521   if (defined $::RD_TRACE)
2522   {
2523     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2524             $return . q{])}, "",
2525             q{statement},
2526             $tracelevel);
2527     Parse::RecDescent::_trace(q{(consumed: [} .
2528             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2529             Parse::RecDescent::_tracefirst($text),
2530             , q{statement},
2531             $tracelevel)
2532   }
2533   $_[1] = $text;
2534   return $return;
2535 }
2536
2537 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2538 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause
2539 {
2540   my $thisparser = $_[0];
2541   use vars q{$tracelevel};
2542   local $tracelevel = ($tracelevel||0)+1;
2543   $ERRORS = 0;
2544   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause"};
2545
2546   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
2547           Parse::RecDescent::_tracefirst($_[1]),
2548           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2549           $tracelevel)
2550           if defined $::RD_TRACE;
2551
2552
2553   my $err_at = @{$thisparser->{errors}};
2554
2555   my $score;
2556   my $score_return;
2557   my $_tok;
2558   my $return = undef;
2559   my $_matched=0;
2560   my $commit=0;
2561   my @item = ();
2562   my %item = ();
2563   my $repeating =  defined($_[2]) && $_[2];
2564   my $_noactions = defined($_[3]) && $_[3];
2565    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2566   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2567   my $text;
2568   my $lastsep="";
2569   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2570   $expectation->at($_[1]);
2571
2572   my $thisline;
2573   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2574
2575
2576
2577   while (!$_matched && !$commit)
2578   {
2579
2580     Parse::RecDescent::_trace(q{Trying production: [result_expression]},
2581             Parse::RecDescent::_tracefirst($_[1]),
2582             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2583             $tracelevel)
2584             if defined $::RD_TRACE;
2585     my $thisprod = $thisrule->{"prods"}[0];
2586     $text = $_[1];
2587     my $_savetext;
2588     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2589     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2590     my $repcount = 0;
2591
2592
2593     Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
2594           Parse::RecDescent::_tracefirst($text),
2595           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2596           $tracelevel)
2597           if defined $::RD_TRACE;
2598     if (1) { no strict qw{refs};
2599     $expectation->is(q{})->at($text);
2600     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2601     {
2602
2603       Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
2604               Parse::RecDescent::_tracefirst($text),
2605               q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2606               $tracelevel)
2607               if defined $::RD_TRACE;
2608       $expectation->failed();
2609       last;
2610     }
2611     Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
2612           . $_tok . q{]},
2613
2614             Parse::RecDescent::_tracefirst($text),
2615             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2616             $tracelevel)
2617             if defined $::RD_TRACE;
2618     $item{q{result_expression}} = $_tok;
2619     push @item, $_tok;
2620
2621     }
2622
2623
2624     Parse::RecDescent::_trace(q{>>Matched production: [result_expression]<<},
2625             Parse::RecDescent::_tracefirst($text),
2626             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2627             $tracelevel)
2628             if defined $::RD_TRACE;
2629     $_matched = 1;
2630     last;
2631   }
2632
2633
2634   while (!$_matched && !$commit)
2635   {
2636
2637     Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
2638             Parse::RecDescent::_tracefirst($_[1]),
2639             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2640             $tracelevel)
2641             if defined $::RD_TRACE;
2642     my $thisprod = $thisrule->{"prods"}[1];
2643     $text = $_[1];
2644     my $_savetext;
2645     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2646     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause});
2647     my $repcount = 0;
2648
2649
2650     Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
2651             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2652             $tracelevel)
2653             if defined $::RD_TRACE;
2654     $lastsep = "";
2655     $expectation->is(q{})->at($text);
2656
2657
2658     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULL)//i)
2659     {
2660
2661       $expectation->failed();
2662       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2663               Parse::RecDescent::_tracefirst($text))
2664           if defined $::RD_TRACE;
2665
2666       last;
2667     }
2668     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2669             . $& . q{])},
2670               Parse::RecDescent::_tracefirst($text))
2671           if defined $::RD_TRACE;
2672     push @item, $item{__PATTERN1__}=$&;
2673
2674
2675
2676     Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
2677             Parse::RecDescent::_tracefirst($text),
2678             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2679             $tracelevel)
2680             if defined $::RD_TRACE;
2681     $_matched = 1;
2682     last;
2683   }
2684
2685
2686         unless ( $_matched || defined($return) || defined($score) )
2687   {
2688
2689
2690     $_[1] = $text;  # NOT SURE THIS IS NEEDED
2691     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2692            Parse::RecDescent::_tracefirst($_[1]),
2693            q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2694            $tracelevel)
2695           if defined $::RD_TRACE;
2696     return undef;
2697   }
2698   if (!defined($return) && defined($score))
2699   {
2700     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2701             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2702             $tracelevel)
2703             if defined $::RD_TRACE;
2704     $return = $score_return;
2705   }
2706   splice @{$thisparser->{errors}}, $err_at;
2707   $return = $item[$#item] unless defined $return;
2708   if (defined $::RD_TRACE)
2709   {
2710     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2711             $return . q{])}, "",
2712             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2713             $tracelevel);
2714     Parse::RecDescent::_trace(q{(consumed: [} .
2715             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2716             Parse::RecDescent::_tracefirst($text),
2717             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause},
2718             $tracelevel)
2719   }
2720   $_[1] = $text;
2721   return $return;
2722 }
2723
2724 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2725 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression
2726 {
2727   my $thisparser = $_[0];
2728   use vars q{$tracelevel};
2729   local $tracelevel = ($tracelevel||0)+1;
2730   $ERRORS = 0;
2731   my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_case_expression"};
2732
2733   Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_case_expression]},
2734           Parse::RecDescent::_tracefirst($_[1]),
2735           q{_alternation_2_of_production_1_of_rule_case_expression},
2736           $tracelevel)
2737           if defined $::RD_TRACE;
2738
2739
2740   my $err_at = @{$thisparser->{errors}};
2741
2742   my $score;
2743   my $score_return;
2744   my $_tok;
2745   my $return = undef;
2746   my $_matched=0;
2747   my $commit=0;
2748   my @item = ();
2749   my %item = ();
2750   my $repeating =  defined($_[2]) && $_[2];
2751   my $_noactions = defined($_[3]) && $_[3];
2752    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2753   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2754   my $text;
2755   my $lastsep="";
2756   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2757   $expectation->at($_[1]);
2758
2759   my $thisline;
2760   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2761
2762
2763
2764   while (!$_matched && !$commit)
2765   {
2766
2767     Parse::RecDescent::_trace(q{Trying production: [/ELSE\\s+NULL/i]},
2768             Parse::RecDescent::_tracefirst($_[1]),
2769             q{_alternation_2_of_production_1_of_rule_case_expression},
2770             $tracelevel)
2771             if defined $::RD_TRACE;
2772     my $thisprod = $thisrule->{"prods"}[0];
2773     $text = $_[1];
2774     my $_savetext;
2775     @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
2776     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
2777     my $repcount = 0;
2778
2779
2780     Parse::RecDescent::_trace(q{Trying terminal: [/ELSE\\s+NULL/i]}, Parse::RecDescent::_tracefirst($text),
2781             q{_alternation_2_of_production_1_of_rule_case_expression},
2782             $tracelevel)
2783             if defined $::RD_TRACE;
2784     $lastsep = "";
2785     $expectation->is(q{})->at($text);
2786
2787
2788     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ELSE\s+NULL)//i)
2789     {
2790
2791       $expectation->failed();
2792       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2793               Parse::RecDescent::_tracefirst($text))
2794           if defined $::RD_TRACE;
2795
2796       last;
2797     }
2798     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2799             . $& . q{])},
2800               Parse::RecDescent::_tracefirst($text))
2801           if defined $::RD_TRACE;
2802     push @item, $item{__PATTERN1__}=$&;
2803
2804
2805
2806     Parse::RecDescent::_trace(q{>>Matched production: [/ELSE\\s+NULL/i]<<},
2807             Parse::RecDescent::_tracefirst($text),
2808             q{_alternation_2_of_production_1_of_rule_case_expression},
2809             $tracelevel)
2810             if defined $::RD_TRACE;
2811     $_matched = 1;
2812     last;
2813   }
2814
2815
2816   while (!$_matched && !$commit)
2817   {
2818
2819     Parse::RecDescent::_trace(q{Trying production: [/ELSE/i result_expression]},
2820             Parse::RecDescent::_tracefirst($_[1]),
2821             q{_alternation_2_of_production_1_of_rule_case_expression},
2822             $tracelevel)
2823             if defined $::RD_TRACE;
2824     my $thisprod = $thisrule->{"prods"}[1];
2825     $text = $_[1];
2826     my $_savetext;
2827     @item = (q{_alternation_2_of_production_1_of_rule_case_expression});
2828     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_case_expression});
2829     my $repcount = 0;
2830
2831
2832     Parse::RecDescent::_trace(q{Trying terminal: [/ELSE/i]}, Parse::RecDescent::_tracefirst($text),
2833             q{_alternation_2_of_production_1_of_rule_case_expression},
2834             $tracelevel)
2835             if defined $::RD_TRACE;
2836     $lastsep = "";
2837     $expectation->is(q{})->at($text);
2838
2839
2840     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ELSE)//i)
2841     {
2842
2843       $expectation->failed();
2844       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
2845               Parse::RecDescent::_tracefirst($text))
2846           if defined $::RD_TRACE;
2847
2848       last;
2849     }
2850     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
2851             . $& . q{])},
2852               Parse::RecDescent::_tracefirst($text))
2853           if defined $::RD_TRACE;
2854     push @item, $item{__PATTERN1__}=$&;
2855
2856
2857     Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
2858           Parse::RecDescent::_tracefirst($text),
2859           q{_alternation_2_of_production_1_of_rule_case_expression},
2860           $tracelevel)
2861           if defined $::RD_TRACE;
2862     if (1) { no strict qw{refs};
2863     $expectation->is(q{result_expression})->at($text);
2864     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
2865     {
2866
2867       Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
2868               Parse::RecDescent::_tracefirst($text),
2869               q{_alternation_2_of_production_1_of_rule_case_expression},
2870               $tracelevel)
2871               if defined $::RD_TRACE;
2872       $expectation->failed();
2873       last;
2874     }
2875     Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
2876           . $_tok . q{]},
2877
2878             Parse::RecDescent::_tracefirst($text),
2879             q{_alternation_2_of_production_1_of_rule_case_expression},
2880             $tracelevel)
2881             if defined $::RD_TRACE;
2882     $item{q{result_expression}} = $_tok;
2883     push @item, $_tok;
2884
2885     }
2886
2887
2888     Parse::RecDescent::_trace(q{>>Matched production: [/ELSE/i result_expression]<<},
2889             Parse::RecDescent::_tracefirst($text),
2890             q{_alternation_2_of_production_1_of_rule_case_expression},
2891             $tracelevel)
2892             if defined $::RD_TRACE;
2893     $_matched = 1;
2894     last;
2895   }
2896
2897
2898         unless ( $_matched || defined($return) || defined($score) )
2899   {
2900
2901
2902     $_[1] = $text;  # NOT SURE THIS IS NEEDED
2903     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
2904            Parse::RecDescent::_tracefirst($_[1]),
2905            q{_alternation_2_of_production_1_of_rule_case_expression},
2906            $tracelevel)
2907           if defined $::RD_TRACE;
2908     return undef;
2909   }
2910   if (!defined($return) && defined($score))
2911   {
2912     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
2913             q{_alternation_2_of_production_1_of_rule_case_expression},
2914             $tracelevel)
2915             if defined $::RD_TRACE;
2916     $return = $score_return;
2917   }
2918   splice @{$thisparser->{errors}}, $err_at;
2919   $return = $item[$#item] unless defined $return;
2920   if (defined $::RD_TRACE)
2921   {
2922     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
2923             $return . q{])}, "",
2924             q{_alternation_2_of_production_1_of_rule_case_expression},
2925             $tracelevel);
2926     Parse::RecDescent::_trace(q{(consumed: [} .
2927             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
2928             Parse::RecDescent::_tracefirst($text),
2929             , q{_alternation_2_of_production_1_of_rule_case_expression},
2930             $tracelevel)
2931   }
2932   $_[1] = $text;
2933   return $return;
2934 }
2935
2936 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
2937 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression
2938 {
2939   my $thisparser = $_[0];
2940   use vars q{$tracelevel};
2941   local $tracelevel = ($tracelevel||0)+1;
2942   $ERRORS = 0;
2943   my $thisrule = $thisparser->{"rules"}{"subject_expression"};
2944
2945   Parse::RecDescent::_trace(q{Trying rule: [subject_expression]},
2946           Parse::RecDescent::_tracefirst($_[1]),
2947           q{subject_expression},
2948           $tracelevel)
2949           if defined $::RD_TRACE;
2950
2951
2952   my $err_at = @{$thisparser->{errors}};
2953
2954   my $score;
2955   my $score_return;
2956   my $_tok;
2957   my $return = undef;
2958   my $_matched=0;
2959   my $commit=0;
2960   my @item = ();
2961   my %item = ();
2962   my $repeating =  defined($_[2]) && $_[2];
2963   my $_noactions = defined($_[3]) && $_[3];
2964    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
2965   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
2966   my $text;
2967   my $lastsep="";
2968   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
2969   $expectation->at($_[1]);
2970
2971   my $thisline;
2972   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
2973
2974
2975
2976   while (!$_matched && !$commit)
2977   {
2978
2979     Parse::RecDescent::_trace(q{Trying production: [expression]},
2980             Parse::RecDescent::_tracefirst($_[1]),
2981             q{subject_expression},
2982             $tracelevel)
2983             if defined $::RD_TRACE;
2984     my $thisprod = $thisrule->{"prods"}[0];
2985     $text = $_[1];
2986     my $_savetext;
2987     @item = (q{subject_expression});
2988     %item = (__RULE__ => q{subject_expression});
2989     my $repcount = 0;
2990
2991
2992     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
2993           Parse::RecDescent::_tracefirst($text),
2994           q{subject_expression},
2995           $tracelevel)
2996           if defined $::RD_TRACE;
2997     if (1) { no strict qw{refs};
2998     $expectation->is(q{})->at($text);
2999     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
3000     {
3001
3002       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
3003               Parse::RecDescent::_tracefirst($text),
3004               q{subject_expression},
3005               $tracelevel)
3006               if defined $::RD_TRACE;
3007       $expectation->failed();
3008       last;
3009     }
3010     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
3011           . $_tok . q{]},
3012
3013             Parse::RecDescent::_tracefirst($text),
3014             q{subject_expression},
3015             $tracelevel)
3016             if defined $::RD_TRACE;
3017     $item{q{expression}} = $_tok;
3018     push @item, $_tok;
3019
3020     }
3021
3022     Parse::RecDescent::_trace(q{Trying action},
3023             Parse::RecDescent::_tracefirst($text),
3024             q{subject_expression},
3025             $tracelevel)
3026             if defined $::RD_TRACE;
3027
3028
3029     $_tok = ($_noactions) ? 0 : do { # with static result type that is a used-defined struct type
3030 };
3031     unless (defined $_tok)
3032     {
3033       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3034           if defined $::RD_TRACE;
3035       last;
3036     }
3037     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3038             . $_tok . q{])},
3039             Parse::RecDescent::_tracefirst($text))
3040             if defined $::RD_TRACE;
3041     push @item, $_tok;
3042     $item{__ACTION1__}=$_tok;
3043
3044
3045
3046     Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
3047             Parse::RecDescent::_tracefirst($text),
3048             q{subject_expression},
3049             $tracelevel)
3050             if defined $::RD_TRACE;
3051     $_matched = 1;
3052     last;
3053   }
3054
3055
3056         unless ( $_matched || defined($return) || defined($score) )
3057   {
3058
3059
3060     $_[1] = $text;  # NOT SURE THIS IS NEEDED
3061     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3062            Parse::RecDescent::_tracefirst($_[1]),
3063            q{subject_expression},
3064            $tracelevel)
3065           if defined $::RD_TRACE;
3066     return undef;
3067   }
3068   if (!defined($return) && defined($score))
3069   {
3070     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3071             q{subject_expression},
3072             $tracelevel)
3073             if defined $::RD_TRACE;
3074     $return = $score_return;
3075   }
3076   splice @{$thisparser->{errors}}, $err_at;
3077   $return = $item[$#item] unless defined $return;
3078   if (defined $::RD_TRACE)
3079   {
3080     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3081             $return . q{])}, "",
3082             q{subject_expression},
3083             $tracelevel);
3084     Parse::RecDescent::_trace(q{(consumed: [} .
3085             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3086             Parse::RecDescent::_tracefirst($text),
3087             , q{subject_expression},
3088             $tracelevel)
3089   }
3090   $_[1] = $text;
3091   return $return;
3092 }
3093
3094 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3095 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option
3096 {
3097   my $thisparser = $_[0];
3098   use vars q{$tracelevel};
3099   local $tracelevel = ($tracelevel||0)+1;
3100   $ERRORS = 0;
3101   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_desc_option"};
3102
3103   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_desc_option]},
3104           Parse::RecDescent::_tracefirst($_[1]),
3105           q{_alternation_1_of_production_1_of_rule_desc_option},
3106           $tracelevel)
3107           if defined $::RD_TRACE;
3108
3109
3110   my $err_at = @{$thisparser->{errors}};
3111
3112   my $score;
3113   my $score_return;
3114   my $_tok;
3115   my $return = undef;
3116   my $_matched=0;
3117   my $commit=0;
3118   my @item = ();
3119   my %item = ();
3120   my $repeating =  defined($_[2]) && $_[2];
3121   my $_noactions = defined($_[3]) && $_[3];
3122    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
3123   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
3124   my $text;
3125   my $lastsep="";
3126   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3127   $expectation->at($_[1]);
3128
3129   my $thisline;
3130   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3131
3132
3133
3134   while (!$_matched && !$commit)
3135   {
3136
3137     Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+FIRST/i]},
3138             Parse::RecDescent::_tracefirst($_[1]),
3139             q{_alternation_1_of_production_1_of_rule_desc_option},
3140             $tracelevel)
3141             if defined $::RD_TRACE;
3142     my $thisprod = $thisrule->{"prods"}[0];
3143     $text = $_[1];
3144     my $_savetext;
3145     @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
3146     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
3147     my $repcount = 0;
3148
3149
3150     Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+FIRST/i]}, Parse::RecDescent::_tracefirst($text),
3151             q{_alternation_1_of_production_1_of_rule_desc_option},
3152             $tracelevel)
3153             if defined $::RD_TRACE;
3154     $lastsep = "";
3155     $expectation->is(q{})->at($text);
3156
3157
3158     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+FIRST)//i)
3159     {
3160
3161       $expectation->failed();
3162       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3163               Parse::RecDescent::_tracefirst($text))
3164           if defined $::RD_TRACE;
3165
3166       last;
3167     }
3168     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3169             . $& . q{])},
3170               Parse::RecDescent::_tracefirst($text))
3171           if defined $::RD_TRACE;
3172     push @item, $item{__PATTERN1__}=$&;
3173
3174
3175
3176     Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+FIRST/i]<<},
3177             Parse::RecDescent::_tracefirst($text),
3178             q{_alternation_1_of_production_1_of_rule_desc_option},
3179             $tracelevel)
3180             if defined $::RD_TRACE;
3181     $_matched = 1;
3182     last;
3183   }
3184
3185
3186   while (!$_matched && !$commit)
3187   {
3188
3189     Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+LAST/i]},
3190             Parse::RecDescent::_tracefirst($_[1]),
3191             q{_alternation_1_of_production_1_of_rule_desc_option},
3192             $tracelevel)
3193             if defined $::RD_TRACE;
3194     my $thisprod = $thisrule->{"prods"}[1];
3195     $text = $_[1];
3196     my $_savetext;
3197     @item = (q{_alternation_1_of_production_1_of_rule_desc_option});
3198     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_desc_option});
3199     my $repcount = 0;
3200
3201
3202     Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+LAST/i]}, Parse::RecDescent::_tracefirst($text),
3203             q{_alternation_1_of_production_1_of_rule_desc_option},
3204             $tracelevel)
3205             if defined $::RD_TRACE;
3206     $lastsep = "";
3207     $expectation->is(q{})->at($text);
3208
3209
3210     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+LAST)//i)
3211     {
3212
3213       $expectation->failed();
3214       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3215               Parse::RecDescent::_tracefirst($text))
3216           if defined $::RD_TRACE;
3217
3218       last;
3219     }
3220     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3221             . $& . q{])},
3222               Parse::RecDescent::_tracefirst($text))
3223           if defined $::RD_TRACE;
3224     push @item, $item{__PATTERN1__}=$&;
3225
3226
3227
3228     Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+LAST/i]<<},
3229             Parse::RecDescent::_tracefirst($text),
3230             q{_alternation_1_of_production_1_of_rule_desc_option},
3231             $tracelevel)
3232             if defined $::RD_TRACE;
3233     $_matched = 1;
3234     last;
3235   }
3236
3237
3238         unless ( $_matched || defined($return) || defined($score) )
3239   {
3240
3241
3242     $_[1] = $text;  # NOT SURE THIS IS NEEDED
3243     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3244            Parse::RecDescent::_tracefirst($_[1]),
3245            q{_alternation_1_of_production_1_of_rule_desc_option},
3246            $tracelevel)
3247           if defined $::RD_TRACE;
3248     return undef;
3249   }
3250   if (!defined($return) && defined($score))
3251   {
3252     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3253             q{_alternation_1_of_production_1_of_rule_desc_option},
3254             $tracelevel)
3255             if defined $::RD_TRACE;
3256     $return = $score_return;
3257   }
3258   splice @{$thisparser->{errors}}, $err_at;
3259   $return = $item[$#item] unless defined $return;
3260   if (defined $::RD_TRACE)
3261   {
3262     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3263             $return . q{])}, "",
3264             q{_alternation_1_of_production_1_of_rule_desc_option},
3265             $tracelevel);
3266     Parse::RecDescent::_trace(q{(consumed: [} .
3267             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3268             Parse::RecDescent::_tracefirst($text),
3269             , q{_alternation_1_of_production_1_of_rule_desc_option},
3270             $tracelevel)
3271   }
3272   $_[1] = $text;
3273   return $return;
3274 }
3275
3276 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3277 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::view_name
3278 {
3279   my $thisparser = $_[0];
3280   use vars q{$tracelevel};
3281   local $tracelevel = ($tracelevel||0)+1;
3282   $ERRORS = 0;
3283   my $thisrule = $thisparser->{"rules"}{"view_name"};
3284
3285   Parse::RecDescent::_trace(q{Trying rule: [view_name]},
3286           Parse::RecDescent::_tracefirst($_[1]),
3287           q{view_name},
3288           $tracelevel)
3289           if defined $::RD_TRACE;
3290
3291
3292   my $err_at = @{$thisparser->{errors}};
3293
3294   my $score;
3295   my $score_return;
3296   my $_tok;
3297   my $return = undef;
3298   my $_matched=0;
3299   my $commit=0;
3300   my @item = ();
3301   my %item = ();
3302   my $repeating =  defined($_[2]) && $_[2];
3303   my $_noactions = defined($_[3]) && $_[3];
3304    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
3305   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
3306   my $text;
3307   my $lastsep="";
3308   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3309   $expectation->at($_[1]);
3310
3311   my $thisline;
3312   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3313
3314
3315
3316   while (!$_matched && !$commit)
3317   {
3318
3319     Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
3320             Parse::RecDescent::_tracefirst($_[1]),
3321             q{view_name},
3322             $tracelevel)
3323             if defined $::RD_TRACE;
3324     my $thisprod = $thisrule->{"prods"}[0];
3325     $text = $_[1];
3326     my $_savetext;
3327     @item = (q{view_name});
3328     %item = (__RULE__ => q{view_name});
3329     my $repcount = 0;
3330
3331
3332     Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
3333           Parse::RecDescent::_tracefirst($text),
3334           q{view_name},
3335           $tracelevel)
3336           if defined $::RD_TRACE;
3337     if (1) { no strict qw{refs};
3338     $expectation->is(q{})->at($text);
3339     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
3340     {
3341
3342       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
3343               Parse::RecDescent::_tracefirst($text),
3344               q{view_name},
3345               $tracelevel)
3346               if defined $::RD_TRACE;
3347       $expectation->failed();
3348       last;
3349     }
3350     Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
3351           . $_tok . q{]},
3352
3353             Parse::RecDescent::_tracefirst($text),
3354             q{view_name},
3355             $tracelevel)
3356             if defined $::RD_TRACE;
3357     $item{q{SCHEMA}} = $_tok;
3358     push @item, $_tok;
3359
3360     }
3361
3362     Parse::RecDescent::_trace(q{Trying terminal: ['.']},
3363             Parse::RecDescent::_tracefirst($text),
3364             q{view_name},
3365             $tracelevel)
3366             if defined $::RD_TRACE;
3367     $lastsep = "";
3368     $expectation->is(q{'.'})->at($text);
3369
3370
3371     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\.//)
3372     {
3373
3374       $expectation->failed();
3375       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3376               Parse::RecDescent::_tracefirst($text))
3377               if defined $::RD_TRACE;
3378       last;
3379     }
3380     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3381             . $& . q{])},
3382               Parse::RecDescent::_tracefirst($text))
3383               if defined $::RD_TRACE;
3384     push @item, $item{__STRING1__}=$&;
3385
3386
3387     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
3388           Parse::RecDescent::_tracefirst($text),
3389           q{view_name},
3390           $tracelevel)
3391           if defined $::RD_TRACE;
3392     if (1) { no strict qw{refs};
3393     $expectation->is(q{NAME})->at($text);
3394     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
3395     {
3396
3397       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
3398               Parse::RecDescent::_tracefirst($text),
3399               q{view_name},
3400               $tracelevel)
3401               if defined $::RD_TRACE;
3402       $expectation->failed();
3403       last;
3404     }
3405     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
3406           . $_tok . q{]},
3407
3408             Parse::RecDescent::_tracefirst($text),
3409             q{view_name},
3410             $tracelevel)
3411             if defined $::RD_TRACE;
3412     $item{q{NAME}} = $_tok;
3413     push @item, $_tok;
3414
3415     }
3416
3417     Parse::RecDescent::_trace(q{Trying action},
3418             Parse::RecDescent::_tracefirst($text),
3419             q{view_name},
3420             $tracelevel)
3421             if defined $::RD_TRACE;
3422
3423
3424     $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
3425     unless (defined $_tok)
3426     {
3427       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3428           if defined $::RD_TRACE;
3429       last;
3430     }
3431     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3432             . $_tok . q{])},
3433             Parse::RecDescent::_tracefirst($text))
3434             if defined $::RD_TRACE;
3435     push @item, $_tok;
3436     $item{__ACTION1__}=$_tok;
3437
3438
3439
3440     Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
3441             Parse::RecDescent::_tracefirst($text),
3442             q{view_name},
3443             $tracelevel)
3444             if defined $::RD_TRACE;
3445     $_matched = 1;
3446     last;
3447   }
3448
3449
3450   while (!$_matched && !$commit)
3451   {
3452
3453     Parse::RecDescent::_trace(q{Trying production: [NAME]},
3454             Parse::RecDescent::_tracefirst($_[1]),
3455             q{view_name},
3456             $tracelevel)
3457             if defined $::RD_TRACE;
3458     my $thisprod = $thisrule->{"prods"}[1];
3459     $text = $_[1];
3460     my $_savetext;
3461     @item = (q{view_name});
3462     %item = (__RULE__ => q{view_name});
3463     my $repcount = 0;
3464
3465
3466     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
3467           Parse::RecDescent::_tracefirst($text),
3468           q{view_name},
3469           $tracelevel)
3470           if defined $::RD_TRACE;
3471     if (1) { no strict qw{refs};
3472     $expectation->is(q{})->at($text);
3473     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
3474     {
3475
3476       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
3477               Parse::RecDescent::_tracefirst($text),
3478               q{view_name},
3479               $tracelevel)
3480               if defined $::RD_TRACE;
3481       $expectation->failed();
3482       last;
3483     }
3484     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
3485           . $_tok . q{]},
3486
3487             Parse::RecDescent::_tracefirst($text),
3488             q{view_name},
3489             $tracelevel)
3490             if defined $::RD_TRACE;
3491     $item{q{NAME}} = $_tok;
3492     push @item, $_tok;
3493
3494     }
3495
3496     Parse::RecDescent::_trace(q{Trying action},
3497             Parse::RecDescent::_tracefirst($text),
3498             q{view_name},
3499             $tracelevel)
3500             if defined $::RD_TRACE;
3501
3502
3503     $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
3504     unless (defined $_tok)
3505     {
3506       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
3507           if defined $::RD_TRACE;
3508       last;
3509     }
3510     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
3511             . $_tok . q{])},
3512             Parse::RecDescent::_tracefirst($text))
3513             if defined $::RD_TRACE;
3514     push @item, $_tok;
3515     $item{__ACTION1__}=$_tok;
3516
3517
3518
3519     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
3520             Parse::RecDescent::_tracefirst($text),
3521             q{view_name},
3522             $tracelevel)
3523             if defined $::RD_TRACE;
3524     $_matched = 1;
3525     last;
3526   }
3527
3528
3529         unless ( $_matched || defined($return) || defined($score) )
3530   {
3531
3532
3533     $_[1] = $text;  # NOT SURE THIS IS NEEDED
3534     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3535            Parse::RecDescent::_tracefirst($_[1]),
3536            q{view_name},
3537            $tracelevel)
3538           if defined $::RD_TRACE;
3539     return undef;
3540   }
3541   if (!defined($return) && defined($score))
3542   {
3543     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3544             q{view_name},
3545             $tracelevel)
3546             if defined $::RD_TRACE;
3547     $return = $score_return;
3548   }
3549   splice @{$thisparser->{errors}}, $err_at;
3550   $return = $item[$#item] unless defined $return;
3551   if (defined $::RD_TRACE)
3552   {
3553     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3554             $return . q{])}, "",
3555             q{view_name},
3556             $tracelevel);
3557     Parse::RecDescent::_trace(q{(consumed: [} .
3558             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3559             Parse::RecDescent::_tracefirst($text),
3560             , q{view_name},
3561             $tracelevel)
3562   }
3563   $_[1] = $text;
3564   return $return;
3565 }
3566
3567 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3568 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond
3569 {
3570   my $thisparser = $_[0];
3571   use vars q{$tracelevel};
3572   local $tracelevel = ($tracelevel||0)+1;
3573   $ERRORS = 0;
3574   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_cond"};
3575
3576   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_cond]},
3577           Parse::RecDescent::_tracefirst($_[1]),
3578           q{_alternation_1_of_production_1_of_rule_cond},
3579           $tracelevel)
3580           if defined $::RD_TRACE;
3581
3582
3583   my $err_at = @{$thisparser->{errors}};
3584
3585   my $score;
3586   my $score_return;
3587   my $_tok;
3588   my $return = undef;
3589   my $_matched=0;
3590   my $commit=0;
3591   my @item = ();
3592   my %item = ();
3593   my $repeating =  defined($_[2]) && $_[2];
3594   my $_noactions = defined($_[3]) && $_[3];
3595    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
3596   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
3597   my $text;
3598   my $lastsep="";
3599   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3600   $expectation->at($_[1]);
3601
3602   my $thisline;
3603   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3604
3605
3606
3607   while (!$_matched && !$commit)
3608   {
3609
3610     Parse::RecDescent::_trace(q{Trying production: [/AND/i]},
3611             Parse::RecDescent::_tracefirst($_[1]),
3612             q{_alternation_1_of_production_1_of_rule_cond},
3613             $tracelevel)
3614             if defined $::RD_TRACE;
3615     my $thisprod = $thisrule->{"prods"}[0];
3616     $text = $_[1];
3617     my $_savetext;
3618     @item = (q{_alternation_1_of_production_1_of_rule_cond});
3619     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
3620     my $repcount = 0;
3621
3622
3623     Parse::RecDescent::_trace(q{Trying terminal: [/AND/i]}, Parse::RecDescent::_tracefirst($text),
3624             q{_alternation_1_of_production_1_of_rule_cond},
3625             $tracelevel)
3626             if defined $::RD_TRACE;
3627     $lastsep = "";
3628     $expectation->is(q{})->at($text);
3629
3630
3631     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AND)//i)
3632     {
3633
3634       $expectation->failed();
3635       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3636               Parse::RecDescent::_tracefirst($text))
3637           if defined $::RD_TRACE;
3638
3639       last;
3640     }
3641     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3642             . $& . q{])},
3643               Parse::RecDescent::_tracefirst($text))
3644           if defined $::RD_TRACE;
3645     push @item, $item{__PATTERN1__}=$&;
3646
3647
3648
3649     Parse::RecDescent::_trace(q{>>Matched production: [/AND/i]<<},
3650             Parse::RecDescent::_tracefirst($text),
3651             q{_alternation_1_of_production_1_of_rule_cond},
3652             $tracelevel)
3653             if defined $::RD_TRACE;
3654     $_matched = 1;
3655     last;
3656   }
3657
3658
3659   while (!$_matched && !$commit)
3660   {
3661
3662     Parse::RecDescent::_trace(q{Trying production: [/OR/i]},
3663             Parse::RecDescent::_tracefirst($_[1]),
3664             q{_alternation_1_of_production_1_of_rule_cond},
3665             $tracelevel)
3666             if defined $::RD_TRACE;
3667     my $thisprod = $thisrule->{"prods"}[1];
3668     $text = $_[1];
3669     my $_savetext;
3670     @item = (q{_alternation_1_of_production_1_of_rule_cond});
3671     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cond});
3672     my $repcount = 0;
3673
3674
3675     Parse::RecDescent::_trace(q{Trying terminal: [/OR/i]}, Parse::RecDescent::_tracefirst($text),
3676             q{_alternation_1_of_production_1_of_rule_cond},
3677             $tracelevel)
3678             if defined $::RD_TRACE;
3679     $lastsep = "";
3680     $expectation->is(q{})->at($text);
3681
3682
3683     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OR)//i)
3684     {
3685
3686       $expectation->failed();
3687       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3688               Parse::RecDescent::_tracefirst($text))
3689           if defined $::RD_TRACE;
3690
3691       last;
3692     }
3693     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3694             . $& . q{])},
3695               Parse::RecDescent::_tracefirst($text))
3696           if defined $::RD_TRACE;
3697     push @item, $item{__PATTERN1__}=$&;
3698
3699
3700
3701     Parse::RecDescent::_trace(q{>>Matched production: [/OR/i]<<},
3702             Parse::RecDescent::_tracefirst($text),
3703             q{_alternation_1_of_production_1_of_rule_cond},
3704             $tracelevel)
3705             if defined $::RD_TRACE;
3706     $_matched = 1;
3707     last;
3708   }
3709
3710
3711         unless ( $_matched || defined($return) || defined($score) )
3712   {
3713
3714
3715     $_[1] = $text;  # NOT SURE THIS IS NEEDED
3716     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
3717            Parse::RecDescent::_tracefirst($_[1]),
3718            q{_alternation_1_of_production_1_of_rule_cond},
3719            $tracelevel)
3720           if defined $::RD_TRACE;
3721     return undef;
3722   }
3723   if (!defined($return) && defined($score))
3724   {
3725     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
3726             q{_alternation_1_of_production_1_of_rule_cond},
3727             $tracelevel)
3728             if defined $::RD_TRACE;
3729     $return = $score_return;
3730   }
3731   splice @{$thisparser->{errors}}, $err_at;
3732   $return = $item[$#item] unless defined $return;
3733   if (defined $::RD_TRACE)
3734   {
3735     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
3736             $return . q{])}, "",
3737             q{_alternation_1_of_production_1_of_rule_cond},
3738             $tracelevel);
3739     Parse::RecDescent::_trace(q{(consumed: [} .
3740             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
3741             Parse::RecDescent::_tracefirst($text),
3742             , q{_alternation_1_of_production_1_of_rule_cond},
3743             $tracelevel)
3744   }
3745   $_[1] = $text;
3746   return $return;
3747 }
3748
3749 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
3750 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function
3751 {
3752   my $thisparser = $_[0];
3753   use vars q{$tracelevel};
3754   local $tracelevel = ($tracelevel||0)+1;
3755   $ERRORS = 0;
3756   my $thisrule = $thisparser->{"rules"}{"numbering_function"};
3757
3758   Parse::RecDescent::_trace(q{Trying rule: [numbering_function]},
3759           Parse::RecDescent::_tracefirst($_[1]),
3760           q{numbering_function},
3761           $tracelevel)
3762           if defined $::RD_TRACE;
3763
3764
3765   my $err_at = @{$thisparser->{errors}};
3766
3767   my $score;
3768   my $score_return;
3769   my $_tok;
3770   my $return = undef;
3771   my $_matched=0;
3772   my $commit=0;
3773   my @item = ();
3774   my %item = ();
3775   my $repeating =  defined($_[2]) && $_[2];
3776   my $_noactions = defined($_[3]) && $_[3];
3777    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
3778   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
3779   my $text;
3780   my $lastsep="";
3781   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
3782   $expectation->at($_[1]);
3783
3784   my $thisline;
3785   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
3786
3787
3788
3789   while (!$_matched && !$commit)
3790   {
3791
3792     Parse::RecDescent::_trace(q{Trying production: [/ROW_NUMBER|ROWNUMBER/i '()' /OVER/i '(' window_partition_clause window_order_clause /RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause ')']},
3793             Parse::RecDescent::_tracefirst($_[1]),
3794             q{numbering_function},
3795             $tracelevel)
3796             if defined $::RD_TRACE;
3797     my $thisprod = $thisrule->{"prods"}[0];
3798     $text = $_[1];
3799     my $_savetext;
3800     @item = (q{numbering_function});
3801     %item = (__RULE__ => q{numbering_function});
3802     my $repcount = 0;
3803
3804
3805     Parse::RecDescent::_trace(q{Trying terminal: [/ROW_NUMBER|ROWNUMBER/i]}, Parse::RecDescent::_tracefirst($text),
3806             q{numbering_function},
3807             $tracelevel)
3808             if defined $::RD_TRACE;
3809     $lastsep = "";
3810     $expectation->is(q{})->at($text);
3811
3812
3813     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ROW_NUMBER|ROWNUMBER)//i)
3814     {
3815
3816       $expectation->failed();
3817       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3818               Parse::RecDescent::_tracefirst($text))
3819           if defined $::RD_TRACE;
3820
3821       last;
3822     }
3823     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3824             . $& . q{])},
3825               Parse::RecDescent::_tracefirst($text))
3826           if defined $::RD_TRACE;
3827     push @item, $item{__PATTERN1__}=$&;
3828
3829
3830     Parse::RecDescent::_trace(q{Trying terminal: ['()']},
3831             Parse::RecDescent::_tracefirst($text),
3832             q{numbering_function},
3833             $tracelevel)
3834             if defined $::RD_TRACE;
3835     $lastsep = "";
3836     $expectation->is(q{'()'})->at($text);
3837
3838
3839     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(\)//)
3840     {
3841
3842       $expectation->failed();
3843       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3844               Parse::RecDescent::_tracefirst($text))
3845               if defined $::RD_TRACE;
3846       last;
3847     }
3848     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3849             . $& . q{])},
3850               Parse::RecDescent::_tracefirst($text))
3851               if defined $::RD_TRACE;
3852     push @item, $item{__STRING1__}=$&;
3853
3854
3855     Parse::RecDescent::_trace(q{Trying terminal: [/OVER/i]}, Parse::RecDescent::_tracefirst($text),
3856             q{numbering_function},
3857             $tracelevel)
3858             if defined $::RD_TRACE;
3859     $lastsep = "";
3860     $expectation->is(q{/OVER/i})->at($text);
3861
3862
3863     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OVER)//i)
3864     {
3865
3866       $expectation->failed();
3867       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
3868               Parse::RecDescent::_tracefirst($text))
3869           if defined $::RD_TRACE;
3870
3871       last;
3872     }
3873     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3874             . $& . q{])},
3875               Parse::RecDescent::_tracefirst($text))
3876           if defined $::RD_TRACE;
3877     push @item, $item{__PATTERN2__}=$&;
3878
3879
3880     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
3881             Parse::RecDescent::_tracefirst($text),
3882             q{numbering_function},
3883             $tracelevel)
3884             if defined $::RD_TRACE;
3885     $lastsep = "";
3886     $expectation->is(q{'('})->at($text);
3887
3888
3889     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
3890     {
3891
3892       $expectation->failed();
3893       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
3894               Parse::RecDescent::_tracefirst($text))
3895               if defined $::RD_TRACE;
3896       last;
3897     }
3898     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
3899             . $& . q{])},
3900               Parse::RecDescent::_tracefirst($text))
3901               if defined $::RD_TRACE;
3902     push @item, $item{__STRING2__}=$&;
3903
3904
3905     Parse::RecDescent::_trace(q{Trying repeated subrule: [window_partition_clause]},
3906           Parse::RecDescent::_tracefirst($text),
3907           q{numbering_function},
3908           $tracelevel)
3909           if defined $::RD_TRACE;
3910     $expectation->is(q{window_partition_clause})->at($text);
3911
3912     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause, 0, 1, $_noactions,$expectation,undef)))
3913     {
3914       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_partition_clause]>>},
3915               Parse::RecDescent::_tracefirst($text),
3916               q{numbering_function},
3917               $tracelevel)
3918               if defined $::RD_TRACE;
3919       last;
3920     }
3921     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_partition_clause]<< (}
3922           . @$_tok . q{ times)},
3923
3924             Parse::RecDescent::_tracefirst($text),
3925             q{numbering_function},
3926             $tracelevel)
3927             if defined $::RD_TRACE;
3928     $item{q{window_partition_clause(?)}} = $_tok;
3929     push @item, $_tok;
3930
3931
3932
3933     Parse::RecDescent::_trace(q{Trying repeated subrule: [window_order_clause]},
3934           Parse::RecDescent::_tracefirst($text),
3935           q{numbering_function},
3936           $tracelevel)
3937           if defined $::RD_TRACE;
3938     $expectation->is(q{window_order_clause})->at($text);
3939
3940     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function, 0, 1, $_noactions,$expectation,undef)))
3941     {
3942       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_order_clause]>>},
3943               Parse::RecDescent::_tracefirst($text),
3944               q{numbering_function},
3945               $tracelevel)
3946               if defined $::RD_TRACE;
3947       last;
3948     }
3949     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_numbering_function]<< (}
3950           . @$_tok . q{ times)},
3951
3952             Parse::RecDescent::_tracefirst($text),
3953             q{numbering_function},
3954             $tracelevel)
3955             if defined $::RD_TRACE;
3956     $item{q{_alternation_1_of_production_1_of_rule_numbering_function(?)}} = $_tok;
3957     push @item, $_tok;
3958
3959
3960
3961     Parse::RecDescent::_trace(q{Trying repeated subrule: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause]},
3962           Parse::RecDescent::_tracefirst($text),
3963           q{numbering_function},
3964           $tracelevel)
3965           if defined $::RD_TRACE;
3966     $expectation->is(q{/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause})->at($text);
3967
3968     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function, 0, 1, $_noactions,$expectation,undef)))
3969     {
3970       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause]>>},
3971               Parse::RecDescent::_tracefirst($text),
3972               q{numbering_function},
3973               $tracelevel)
3974               if defined $::RD_TRACE;
3975       last;
3976     }
3977     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_numbering_function]<< (}
3978           . @$_tok . q{ times)},
3979
3980             Parse::RecDescent::_tracefirst($text),
3981             q{numbering_function},
3982             $tracelevel)
3983             if defined $::RD_TRACE;
3984     $item{q{_alternation_2_of_production_1_of_rule_numbering_function(?)}} = $_tok;
3985     push @item, $_tok;
3986
3987
3988
3989     Parse::RecDescent::_trace(q{Trying terminal: [')']},
3990             Parse::RecDescent::_tracefirst($text),
3991             q{numbering_function},
3992             $tracelevel)
3993             if defined $::RD_TRACE;
3994     $lastsep = "";
3995     $expectation->is(q{')'})->at($text);
3996
3997
3998     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
3999     {
4000
4001       $expectation->failed();
4002       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
4003               Parse::RecDescent::_tracefirst($text))
4004               if defined $::RD_TRACE;
4005       last;
4006     }
4007     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4008             . $& . q{])},
4009               Parse::RecDescent::_tracefirst($text))
4010               if defined $::RD_TRACE;
4011     push @item, $item{__STRING3__}=$&;
4012
4013
4014
4015     Parse::RecDescent::_trace(q{>>Matched production: [/ROW_NUMBER|ROWNUMBER/i '()' /OVER/i '(' window_partition_clause window_order_clause /RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i, or window_aggregation_group_clause ')']<<},
4016             Parse::RecDescent::_tracefirst($text),
4017             q{numbering_function},
4018             $tracelevel)
4019             if defined $::RD_TRACE;
4020     $_matched = 1;
4021     last;
4022   }
4023
4024
4025         unless ( $_matched || defined($return) || defined($score) )
4026   {
4027
4028
4029     $_[1] = $text;  # NOT SURE THIS IS NEEDED
4030     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4031            Parse::RecDescent::_tracefirst($_[1]),
4032            q{numbering_function},
4033            $tracelevel)
4034           if defined $::RD_TRACE;
4035     return undef;
4036   }
4037   if (!defined($return) && defined($score))
4038   {
4039     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4040             q{numbering_function},
4041             $tracelevel)
4042             if defined $::RD_TRACE;
4043     $return = $score_return;
4044   }
4045   splice @{$thisparser->{errors}}, $err_at;
4046   $return = $item[$#item] unless defined $return;
4047   if (defined $::RD_TRACE)
4048   {
4049     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4050             $return . q{])}, "",
4051             q{numbering_function},
4052             $tracelevel);
4053     Parse::RecDescent::_trace(q{(consumed: [} .
4054             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4055             Parse::RecDescent::_tracefirst($text),
4056             , q{numbering_function},
4057             $tracelevel)
4058   }
4059   $_[1] = $text;
4060   return $return;
4061 }
4062
4063 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4064 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_aggregation_group_clause
4065 {
4066   my $thisparser = $_[0];
4067   use vars q{$tracelevel};
4068   local $tracelevel = ($tracelevel||0)+1;
4069   $ERRORS = 0;
4070   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_window_aggregation_group_clause"};
4071
4072   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
4073           Parse::RecDescent::_tracefirst($_[1]),
4074           q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4075           $tracelevel)
4076           if defined $::RD_TRACE;
4077
4078
4079   my $err_at = @{$thisparser->{errors}};
4080
4081   my $score;
4082   my $score_return;
4083   my $_tok;
4084   my $return = undef;
4085   my $_matched=0;
4086   my $commit=0;
4087   my @item = ();
4088   my %item = ();
4089   my $repeating =  defined($_[2]) && $_[2];
4090   my $_noactions = defined($_[3]) && $_[3];
4091    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
4092   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
4093   my $text;
4094   my $lastsep="";
4095   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4096   $expectation->at($_[1]);
4097
4098   my $thisline;
4099   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4100
4101
4102
4103   while (!$_matched && !$commit)
4104   {
4105
4106     Parse::RecDescent::_trace(q{Trying production: [/ROWS/i]},
4107             Parse::RecDescent::_tracefirst($_[1]),
4108             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4109             $tracelevel)
4110             if defined $::RD_TRACE;
4111     my $thisprod = $thisrule->{"prods"}[0];
4112     $text = $_[1];
4113     my $_savetext;
4114     @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4115     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4116     my $repcount = 0;
4117
4118
4119     Parse::RecDescent::_trace(q{Trying terminal: [/ROWS/i]}, Parse::RecDescent::_tracefirst($text),
4120             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4121             $tracelevel)
4122             if defined $::RD_TRACE;
4123     $lastsep = "";
4124     $expectation->is(q{})->at($text);
4125
4126
4127     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ROWS)//i)
4128     {
4129
4130       $expectation->failed();
4131       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4132               Parse::RecDescent::_tracefirst($text))
4133           if defined $::RD_TRACE;
4134
4135       last;
4136     }
4137     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4138             . $& . q{])},
4139               Parse::RecDescent::_tracefirst($text))
4140           if defined $::RD_TRACE;
4141     push @item, $item{__PATTERN1__}=$&;
4142
4143
4144
4145     Parse::RecDescent::_trace(q{>>Matched production: [/ROWS/i]<<},
4146             Parse::RecDescent::_tracefirst($text),
4147             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4148             $tracelevel)
4149             if defined $::RD_TRACE;
4150     $_matched = 1;
4151     last;
4152   }
4153
4154
4155   while (!$_matched && !$commit)
4156   {
4157
4158     Parse::RecDescent::_trace(q{Trying production: [/RANGE/i]},
4159             Parse::RecDescent::_tracefirst($_[1]),
4160             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4161             $tracelevel)
4162             if defined $::RD_TRACE;
4163     my $thisprod = $thisrule->{"prods"}[1];
4164     $text = $_[1];
4165     my $_savetext;
4166     @item = (q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4167     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause});
4168     my $repcount = 0;
4169
4170
4171     Parse::RecDescent::_trace(q{Trying terminal: [/RANGE/i]}, Parse::RecDescent::_tracefirst($text),
4172             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4173             $tracelevel)
4174             if defined $::RD_TRACE;
4175     $lastsep = "";
4176     $expectation->is(q{})->at($text);
4177
4178
4179     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RANGE)//i)
4180     {
4181
4182       $expectation->failed();
4183       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4184               Parse::RecDescent::_tracefirst($text))
4185           if defined $::RD_TRACE;
4186
4187       last;
4188     }
4189     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4190             . $& . q{])},
4191               Parse::RecDescent::_tracefirst($text))
4192           if defined $::RD_TRACE;
4193     push @item, $item{__PATTERN1__}=$&;
4194
4195
4196
4197     Parse::RecDescent::_trace(q{>>Matched production: [/RANGE/i]<<},
4198             Parse::RecDescent::_tracefirst($text),
4199             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4200             $tracelevel)
4201             if defined $::RD_TRACE;
4202     $_matched = 1;
4203     last;
4204   }
4205
4206
4207         unless ( $_matched || defined($return) || defined($score) )
4208   {
4209
4210
4211     $_[1] = $text;  # NOT SURE THIS IS NEEDED
4212     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4213            Parse::RecDescent::_tracefirst($_[1]),
4214            q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4215            $tracelevel)
4216           if defined $::RD_TRACE;
4217     return undef;
4218   }
4219   if (!defined($return) && defined($score))
4220   {
4221     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4222             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4223             $tracelevel)
4224             if defined $::RD_TRACE;
4225     $return = $score_return;
4226   }
4227   splice @{$thisparser->{errors}}, $err_at;
4228   $return = $item[$#item] unless defined $return;
4229   if (defined $::RD_TRACE)
4230   {
4231     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4232             $return . q{])}, "",
4233             q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4234             $tracelevel);
4235     Parse::RecDescent::_trace(q{(consumed: [} .
4236             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4237             Parse::RecDescent::_tracefirst($text),
4238             , q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause},
4239             $tracelevel)
4240   }
4241   $_[1] = $text;
4242   return $return;
4243 }
4244
4245 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4246 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1
4247 {
4248   my $thisparser = $_[0];
4249   use vars q{$tracelevel};
4250   local $tracelevel = ($tracelevel||0)+1;
4251   $ERRORS = 0;
4252   my $thisrule = $thisparser->{"rules"}{"group_bound1"};
4253
4254   Parse::RecDescent::_trace(q{Trying rule: [group_bound1]},
4255           Parse::RecDescent::_tracefirst($_[1]),
4256           q{group_bound1},
4257           $tracelevel)
4258           if defined $::RD_TRACE;
4259
4260
4261   my $err_at = @{$thisparser->{errors}};
4262
4263   my $score;
4264   my $score_return;
4265   my $_tok;
4266   my $return = undef;
4267   my $_matched=0;
4268   my $commit=0;
4269   my @item = ();
4270   my %item = ();
4271   my $repeating =  defined($_[2]) && $_[2];
4272   my $_noactions = defined($_[3]) && $_[3];
4273    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
4274   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
4275   my $text;
4276   my $lastsep="";
4277   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4278   $expectation->at($_[1]);
4279
4280   my $thisline;
4281   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4282
4283
4284
4285   while (!$_matched && !$commit)
4286   {
4287
4288     Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
4289             Parse::RecDescent::_tracefirst($_[1]),
4290             q{group_bound1},
4291             $tracelevel)
4292             if defined $::RD_TRACE;
4293     my $thisprod = $thisrule->{"prods"}[0];
4294     $text = $_[1];
4295     my $_savetext;
4296     @item = (q{group_bound1});
4297     %item = (__RULE__ => q{group_bound1});
4298     my $repcount = 0;
4299
4300
4301     Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
4302             q{group_bound1},
4303             $tracelevel)
4304             if defined $::RD_TRACE;
4305     $lastsep = "";
4306     $expectation->is(q{})->at($text);
4307
4308
4309     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
4310     {
4311
4312       $expectation->failed();
4313       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4314               Parse::RecDescent::_tracefirst($text))
4315           if defined $::RD_TRACE;
4316
4317       last;
4318     }
4319     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4320             . $& . q{])},
4321               Parse::RecDescent::_tracefirst($text))
4322           if defined $::RD_TRACE;
4323     push @item, $item{__PATTERN1__}=$&;
4324
4325
4326
4327     Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
4328             Parse::RecDescent::_tracefirst($text),
4329             q{group_bound1},
4330             $tracelevel)
4331             if defined $::RD_TRACE;
4332     $_matched = 1;
4333     last;
4334   }
4335
4336
4337   while (!$_matched && !$commit)
4338   {
4339
4340     Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
4341             Parse::RecDescent::_tracefirst($_[1]),
4342             q{group_bound1},
4343             $tracelevel)
4344             if defined $::RD_TRACE;
4345     my $thisprod = $thisrule->{"prods"}[1];
4346     $text = $_[1];
4347     my $_savetext;
4348     @item = (q{group_bound1});
4349     %item = (__RULE__ => q{group_bound1});
4350     my $repcount = 0;
4351
4352
4353     Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
4354           Parse::RecDescent::_tracefirst($text),
4355           q{group_bound1},
4356           $tracelevel)
4357           if defined $::RD_TRACE;
4358     if (1) { no strict qw{refs};
4359     $expectation->is(q{})->at($text);
4360     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4361     {
4362
4363       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
4364               Parse::RecDescent::_tracefirst($text),
4365               q{group_bound1},
4366               $tracelevel)
4367               if defined $::RD_TRACE;
4368       $expectation->failed();
4369       last;
4370     }
4371     Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
4372           . $_tok . q{]},
4373
4374             Parse::RecDescent::_tracefirst($text),
4375             q{group_bound1},
4376             $tracelevel)
4377             if defined $::RD_TRACE;
4378     $item{q{unsigned_constant}} = $_tok;
4379     push @item, $_tok;
4380
4381     }
4382
4383     Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
4384             q{group_bound1},
4385             $tracelevel)
4386             if defined $::RD_TRACE;
4387     $lastsep = "";
4388     $expectation->is(q{/PRECEDING/i})->at($text);
4389
4390
4391     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//i)
4392     {
4393
4394       $expectation->failed();
4395       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4396               Parse::RecDescent::_tracefirst($text))
4397           if defined $::RD_TRACE;
4398
4399       last;
4400     }
4401     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4402             . $& . q{])},
4403               Parse::RecDescent::_tracefirst($text))
4404           if defined $::RD_TRACE;
4405     push @item, $item{__PATTERN1__}=$&;
4406
4407
4408
4409     Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
4410             Parse::RecDescent::_tracefirst($text),
4411             q{group_bound1},
4412             $tracelevel)
4413             if defined $::RD_TRACE;
4414     $_matched = 1;
4415     last;
4416   }
4417
4418
4419   while (!$_matched && !$commit)
4420   {
4421
4422     Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
4423             Parse::RecDescent::_tracefirst($_[1]),
4424             q{group_bound1},
4425             $tracelevel)
4426             if defined $::RD_TRACE;
4427     my $thisprod = $thisrule->{"prods"}[2];
4428     $text = $_[1];
4429     my $_savetext;
4430     @item = (q{group_bound1});
4431     %item = (__RULE__ => q{group_bound1});
4432     my $repcount = 0;
4433
4434
4435     Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
4436           Parse::RecDescent::_tracefirst($text),
4437           q{group_bound1},
4438           $tracelevel)
4439           if defined $::RD_TRACE;
4440     if (1) { no strict qw{refs};
4441     $expectation->is(q{})->at($text);
4442     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4443     {
4444
4445       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
4446               Parse::RecDescent::_tracefirst($text),
4447               q{group_bound1},
4448               $tracelevel)
4449               if defined $::RD_TRACE;
4450       $expectation->failed();
4451       last;
4452     }
4453     Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
4454           . $_tok . q{]},
4455
4456             Parse::RecDescent::_tracefirst($text),
4457             q{group_bound1},
4458             $tracelevel)
4459             if defined $::RD_TRACE;
4460     $item{q{unsigned_constant}} = $_tok;
4461     push @item, $_tok;
4462
4463     }
4464
4465     Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
4466             q{group_bound1},
4467             $tracelevel)
4468             if defined $::RD_TRACE;
4469     $lastsep = "";
4470     $expectation->is(q{/FOLLOWING/i})->at($text);
4471
4472
4473     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//i)
4474     {
4475
4476       $expectation->failed();
4477       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4478               Parse::RecDescent::_tracefirst($text))
4479           if defined $::RD_TRACE;
4480
4481       last;
4482     }
4483     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4484             . $& . q{])},
4485               Parse::RecDescent::_tracefirst($text))
4486           if defined $::RD_TRACE;
4487     push @item, $item{__PATTERN1__}=$&;
4488
4489
4490
4491     Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
4492             Parse::RecDescent::_tracefirst($text),
4493             q{group_bound1},
4494             $tracelevel)
4495             if defined $::RD_TRACE;
4496     $_matched = 1;
4497     last;
4498   }
4499
4500
4501   while (!$_matched && !$commit)
4502   {
4503
4504     Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
4505             Parse::RecDescent::_tracefirst($_[1]),
4506             q{group_bound1},
4507             $tracelevel)
4508             if defined $::RD_TRACE;
4509     my $thisprod = $thisrule->{"prods"}[3];
4510     $text = $_[1];
4511     my $_savetext;
4512     @item = (q{group_bound1});
4513     %item = (__RULE__ => q{group_bound1});
4514     my $repcount = 0;
4515
4516
4517     Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
4518             q{group_bound1},
4519             $tracelevel)
4520             if defined $::RD_TRACE;
4521     $lastsep = "";
4522     $expectation->is(q{})->at($text);
4523
4524
4525     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CURRENT\s+ROW)//i)
4526     {
4527
4528       $expectation->failed();
4529       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4530               Parse::RecDescent::_tracefirst($text))
4531           if defined $::RD_TRACE;
4532
4533       last;
4534     }
4535     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4536             . $& . q{])},
4537               Parse::RecDescent::_tracefirst($text))
4538           if defined $::RD_TRACE;
4539     push @item, $item{__PATTERN1__}=$&;
4540
4541
4542
4543     Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
4544             Parse::RecDescent::_tracefirst($text),
4545             q{group_bound1},
4546             $tracelevel)
4547             if defined $::RD_TRACE;
4548     $_matched = 1;
4549     last;
4550   }
4551
4552
4553         unless ( $_matched || defined($return) || defined($score) )
4554   {
4555
4556
4557     $_[1] = $text;  # NOT SURE THIS IS NEEDED
4558     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4559            Parse::RecDescent::_tracefirst($_[1]),
4560            q{group_bound1},
4561            $tracelevel)
4562           if defined $::RD_TRACE;
4563     return undef;
4564   }
4565   if (!defined($return) && defined($score))
4566   {
4567     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4568             q{group_bound1},
4569             $tracelevel)
4570             if defined $::RD_TRACE;
4571     $return = $score_return;
4572   }
4573   splice @{$thisparser->{errors}}, $err_at;
4574   $return = $item[$#item] unless defined $return;
4575   if (defined $::RD_TRACE)
4576   {
4577     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4578             $return . q{])}, "",
4579             q{group_bound1},
4580             $tracelevel);
4581     Parse::RecDescent::_trace(q{(consumed: [} .
4582             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4583             Parse::RecDescent::_tracefirst($text),
4584             , q{group_bound1},
4585             $tracelevel)
4586   }
4587   $_[1] = $text;
4588   return $return;
4589 }
4590
4591 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4592 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function
4593 {
4594   my $thisparser = $_[0];
4595   use vars q{$tracelevel};
4596   local $tracelevel = ($tracelevel||0)+1;
4597   $ERRORS = 0;
4598   my $thisrule = $thisparser->{"rules"}{"OLAP_function"};
4599
4600   Parse::RecDescent::_trace(q{Trying rule: [OLAP_function]},
4601           Parse::RecDescent::_tracefirst($_[1]),
4602           q{OLAP_function},
4603           $tracelevel)
4604           if defined $::RD_TRACE;
4605
4606
4607   my $err_at = @{$thisparser->{errors}};
4608
4609   my $score;
4610   my $score_return;
4611   my $_tok;
4612   my $return = undef;
4613   my $_matched=0;
4614   my $commit=0;
4615   my @item = ();
4616   my %item = ();
4617   my $repeating =  defined($_[2]) && $_[2];
4618   my $_noactions = defined($_[3]) && $_[3];
4619    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
4620   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
4621   my $text;
4622   my $lastsep="";
4623   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4624   $expectation->at($_[1]);
4625
4626   my $thisline;
4627   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4628
4629
4630
4631   while (!$_matched && !$commit)
4632   {
4633
4634     Parse::RecDescent::_trace(q{Trying production: [ranking_function]},
4635             Parse::RecDescent::_tracefirst($_[1]),
4636             q{OLAP_function},
4637             $tracelevel)
4638             if defined $::RD_TRACE;
4639     my $thisprod = $thisrule->{"prods"}[0];
4640     $text = $_[1];
4641     my $_savetext;
4642     @item = (q{OLAP_function});
4643     %item = (__RULE__ => q{OLAP_function});
4644     my $repcount = 0;
4645
4646
4647     Parse::RecDescent::_trace(q{Trying subrule: [ranking_function]},
4648           Parse::RecDescent::_tracefirst($text),
4649           q{OLAP_function},
4650           $tracelevel)
4651           if defined $::RD_TRACE;
4652     if (1) { no strict qw{refs};
4653     $expectation->is(q{})->at($text);
4654     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4655     {
4656
4657       Parse::RecDescent::_trace(q{<<Didn't match subrule: [ranking_function]>>},
4658               Parse::RecDescent::_tracefirst($text),
4659               q{OLAP_function},
4660               $tracelevel)
4661               if defined $::RD_TRACE;
4662       $expectation->failed();
4663       last;
4664     }
4665     Parse::RecDescent::_trace(q{>>Matched subrule: [ranking_function]<< (return value: [}
4666           . $_tok . q{]},
4667
4668             Parse::RecDescent::_tracefirst($text),
4669             q{OLAP_function},
4670             $tracelevel)
4671             if defined $::RD_TRACE;
4672     $item{q{ranking_function}} = $_tok;
4673     push @item, $_tok;
4674
4675     }
4676
4677
4678     Parse::RecDescent::_trace(q{>>Matched production: [ranking_function]<<},
4679             Parse::RecDescent::_tracefirst($text),
4680             q{OLAP_function},
4681             $tracelevel)
4682             if defined $::RD_TRACE;
4683     $_matched = 1;
4684     last;
4685   }
4686
4687
4688   while (!$_matched && !$commit)
4689   {
4690
4691     Parse::RecDescent::_trace(q{Trying production: [numbering_function]},
4692             Parse::RecDescent::_tracefirst($_[1]),
4693             q{OLAP_function},
4694             $tracelevel)
4695             if defined $::RD_TRACE;
4696     my $thisprod = $thisrule->{"prods"}[1];
4697     $text = $_[1];
4698     my $_savetext;
4699     @item = (q{OLAP_function});
4700     %item = (__RULE__ => q{OLAP_function});
4701     my $repcount = 0;
4702
4703
4704     Parse::RecDescent::_trace(q{Trying subrule: [numbering_function]},
4705           Parse::RecDescent::_tracefirst($text),
4706           q{OLAP_function},
4707           $tracelevel)
4708           if defined $::RD_TRACE;
4709     if (1) { no strict qw{refs};
4710     $expectation->is(q{})->at($text);
4711     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numbering_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4712     {
4713
4714       Parse::RecDescent::_trace(q{<<Didn't match subrule: [numbering_function]>>},
4715               Parse::RecDescent::_tracefirst($text),
4716               q{OLAP_function},
4717               $tracelevel)
4718               if defined $::RD_TRACE;
4719       $expectation->failed();
4720       last;
4721     }
4722     Parse::RecDescent::_trace(q{>>Matched subrule: [numbering_function]<< (return value: [}
4723           . $_tok . q{]},
4724
4725             Parse::RecDescent::_tracefirst($text),
4726             q{OLAP_function},
4727             $tracelevel)
4728             if defined $::RD_TRACE;
4729     $item{q{numbering_function}} = $_tok;
4730     push @item, $_tok;
4731
4732     }
4733
4734
4735     Parse::RecDescent::_trace(q{>>Matched production: [numbering_function]<<},
4736             Parse::RecDescent::_tracefirst($text),
4737             q{OLAP_function},
4738             $tracelevel)
4739             if defined $::RD_TRACE;
4740     $_matched = 1;
4741     last;
4742   }
4743
4744
4745   while (!$_matched && !$commit)
4746   {
4747
4748     Parse::RecDescent::_trace(q{Trying production: [aggregation_function]},
4749             Parse::RecDescent::_tracefirst($_[1]),
4750             q{OLAP_function},
4751             $tracelevel)
4752             if defined $::RD_TRACE;
4753     my $thisprod = $thisrule->{"prods"}[2];
4754     $text = $_[1];
4755     my $_savetext;
4756     @item = (q{OLAP_function});
4757     %item = (__RULE__ => q{OLAP_function});
4758     my $repcount = 0;
4759
4760
4761     Parse::RecDescent::_trace(q{Trying subrule: [aggregation_function]},
4762           Parse::RecDescent::_tracefirst($text),
4763           q{OLAP_function},
4764           $tracelevel)
4765           if defined $::RD_TRACE;
4766     if (1) { no strict qw{refs};
4767     $expectation->is(q{})->at($text);
4768     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::aggregation_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
4769     {
4770
4771       Parse::RecDescent::_trace(q{<<Didn't match subrule: [aggregation_function]>>},
4772               Parse::RecDescent::_tracefirst($text),
4773               q{OLAP_function},
4774               $tracelevel)
4775               if defined $::RD_TRACE;
4776       $expectation->failed();
4777       last;
4778     }
4779     Parse::RecDescent::_trace(q{>>Matched subrule: [aggregation_function]<< (return value: [}
4780           . $_tok . q{]},
4781
4782             Parse::RecDescent::_tracefirst($text),
4783             q{OLAP_function},
4784             $tracelevel)
4785             if defined $::RD_TRACE;
4786     $item{q{aggregation_function}} = $_tok;
4787     push @item, $_tok;
4788
4789     }
4790
4791
4792     Parse::RecDescent::_trace(q{>>Matched production: [aggregation_function]<<},
4793             Parse::RecDescent::_tracefirst($text),
4794             q{OLAP_function},
4795             $tracelevel)
4796             if defined $::RD_TRACE;
4797     $_matched = 1;
4798     last;
4799   }
4800
4801
4802         unless ( $_matched || defined($return) || defined($score) )
4803   {
4804
4805
4806     $_[1] = $text;  # NOT SURE THIS IS NEEDED
4807     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4808            Parse::RecDescent::_tracefirst($_[1]),
4809            q{OLAP_function},
4810            $tracelevel)
4811           if defined $::RD_TRACE;
4812     return undef;
4813   }
4814   if (!defined($return) && defined($score))
4815   {
4816     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4817             q{OLAP_function},
4818             $tracelevel)
4819             if defined $::RD_TRACE;
4820     $return = $score_return;
4821   }
4822   splice @{$thisparser->{errors}}, $err_at;
4823   $return = $item[$#item] unless defined $return;
4824   if (defined $::RD_TRACE)
4825   {
4826     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
4827             $return . q{])}, "",
4828             q{OLAP_function},
4829             $tracelevel);
4830     Parse::RecDescent::_trace(q{(consumed: [} .
4831             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
4832             Parse::RecDescent::_tracefirst($text),
4833             , q{OLAP_function},
4834             $tracelevel)
4835   }
4836   $_[1] = $text;
4837   return $return;
4838 }
4839
4840 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
4841 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_30_of_rule_sysibm_function
4842 {
4843   my $thisparser = $_[0];
4844   use vars q{$tracelevel};
4845   local $tracelevel = ($tracelevel||0)+1;
4846   $ERRORS = 0;
4847   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_30_of_rule_sysibm_function"};
4848
4849   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
4850           Parse::RecDescent::_tracefirst($_[1]),
4851           q{_alternation_1_of_production_30_of_rule_sysibm_function},
4852           $tracelevel)
4853           if defined $::RD_TRACE;
4854
4855
4856   my $err_at = @{$thisparser->{errors}};
4857
4858   my $score;
4859   my $score_return;
4860   my $_tok;
4861   my $return = undef;
4862   my $_matched=0;
4863   my $commit=0;
4864   my @item = ();
4865   my %item = ();
4866   my $repeating =  defined($_[2]) && $_[2];
4867   my $_noactions = defined($_[3]) && $_[3];
4868    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
4869   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
4870   my $text;
4871   my $lastsep="";
4872   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
4873   $expectation->at($_[1]);
4874
4875   my $thisline;
4876   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
4877
4878
4879
4880   while (!$_matched && !$commit)
4881   {
4882
4883     Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i]},
4884             Parse::RecDescent::_tracefirst($_[1]),
4885             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4886             $tracelevel)
4887             if defined $::RD_TRACE;
4888     my $thisprod = $thisrule->{"prods"}[0];
4889     $text = $_[1];
4890     my $_savetext;
4891     @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
4892     %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
4893     my $repcount = 0;
4894
4895
4896     Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE/i]}, Parse::RecDescent::_tracefirst($text),
4897             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4898             $tracelevel)
4899             if defined $::RD_TRACE;
4900     $lastsep = "";
4901     $expectation->is(q{})->at($text);
4902
4903
4904     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE)//i)
4905     {
4906
4907       $expectation->failed();
4908       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4909               Parse::RecDescent::_tracefirst($text))
4910           if defined $::RD_TRACE;
4911
4912       last;
4913     }
4914     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4915             . $& . q{])},
4916               Parse::RecDescent::_tracefirst($text))
4917           if defined $::RD_TRACE;
4918     push @item, $item{__PATTERN1__}=$&;
4919
4920
4921
4922     Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i]<<},
4923             Parse::RecDescent::_tracefirst($text),
4924             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4925             $tracelevel)
4926             if defined $::RD_TRACE;
4927     $_matched = 1;
4928     last;
4929   }
4930
4931
4932   while (!$_matched && !$commit)
4933   {
4934
4935     Parse::RecDescent::_trace(q{Trying production: [/DOUBLE_PRECISION/i]},
4936             Parse::RecDescent::_tracefirst($_[1]),
4937             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4938             $tracelevel)
4939             if defined $::RD_TRACE;
4940     my $thisprod = $thisrule->{"prods"}[1];
4941     $text = $_[1];
4942     my $_savetext;
4943     @item = (q{_alternation_1_of_production_30_of_rule_sysibm_function});
4944     %item = (__RULE__ => q{_alternation_1_of_production_30_of_rule_sysibm_function});
4945     my $repcount = 0;
4946
4947
4948     Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE_PRECISION/i]}, Parse::RecDescent::_tracefirst($text),
4949             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4950             $tracelevel)
4951             if defined $::RD_TRACE;
4952     $lastsep = "";
4953     $expectation->is(q{})->at($text);
4954
4955
4956     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE_PRECISION)//i)
4957     {
4958
4959       $expectation->failed();
4960       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
4961               Parse::RecDescent::_tracefirst($text))
4962           if defined $::RD_TRACE;
4963
4964       last;
4965     }
4966     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
4967             . $& . q{])},
4968               Parse::RecDescent::_tracefirst($text))
4969           if defined $::RD_TRACE;
4970     push @item, $item{__PATTERN1__}=$&;
4971
4972
4973
4974     Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE_PRECISION/i]<<},
4975             Parse::RecDescent::_tracefirst($text),
4976             q{_alternation_1_of_production_30_of_rule_sysibm_function},
4977             $tracelevel)
4978             if defined $::RD_TRACE;
4979     $_matched = 1;
4980     last;
4981   }
4982
4983
4984         unless ( $_matched || defined($return) || defined($score) )
4985   {
4986
4987
4988     $_[1] = $text;  # NOT SURE THIS IS NEEDED
4989     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
4990            Parse::RecDescent::_tracefirst($_[1]),
4991            q{_alternation_1_of_production_30_of_rule_sysibm_function},
4992            $tracelevel)
4993           if defined $::RD_TRACE;
4994     return undef;
4995   }
4996   if (!defined($return) && defined($score))
4997   {
4998     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
4999             q{_alternation_1_of_production_30_of_rule_sysibm_function},
5000             $tracelevel)
5001             if defined $::RD_TRACE;
5002     $return = $score_return;
5003   }
5004   splice @{$thisparser->{errors}}, $err_at;
5005   $return = $item[$#item] unless defined $return;
5006   if (defined $::RD_TRACE)
5007   {
5008     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5009             $return . q{])}, "",
5010             q{_alternation_1_of_production_30_of_rule_sysibm_function},
5011             $tracelevel);
5012     Parse::RecDescent::_trace(q{(consumed: [} .
5013             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5014             Parse::RecDescent::_tracefirst($text),
5015             , q{_alternation_1_of_production_30_of_rule_sysibm_function},
5016             $tracelevel)
5017   }
5018   $_[1] = $text;
5019   return $return;
5020 }
5021
5022 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5023 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::FULL
5024 {
5025   my $thisparser = $_[0];
5026   use vars q{$tracelevel};
5027   local $tracelevel = ($tracelevel||0)+1;
5028   $ERRORS = 0;
5029   my $thisrule = $thisparser->{"rules"}{"FULL"};
5030
5031   Parse::RecDescent::_trace(q{Trying rule: [FULL]},
5032           Parse::RecDescent::_tracefirst($_[1]),
5033           q{FULL},
5034           $tracelevel)
5035           if defined $::RD_TRACE;
5036
5037
5038   my $err_at = @{$thisparser->{errors}};
5039
5040   my $score;
5041   my $score_return;
5042   my $_tok;
5043   my $return = undef;
5044   my $_matched=0;
5045   my $commit=0;
5046   my @item = ();
5047   my %item = ();
5048   my $repeating =  defined($_[2]) && $_[2];
5049   my $_noactions = defined($_[3]) && $_[3];
5050    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5051   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5052   my $text;
5053   my $lastsep="";
5054   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5055   $expectation->at($_[1]);
5056
5057   my $thisline;
5058   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5059
5060
5061
5062   while (!$_matched && !$commit)
5063   {
5064
5065     Parse::RecDescent::_trace(q{Trying production: [/full/i]},
5066             Parse::RecDescent::_tracefirst($_[1]),
5067             q{FULL},
5068             $tracelevel)
5069             if defined $::RD_TRACE;
5070     my $thisprod = $thisrule->{"prods"}[0];
5071     $text = $_[1];
5072     my $_savetext;
5073     @item = (q{FULL});
5074     %item = (__RULE__ => q{FULL});
5075     my $repcount = 0;
5076
5077
5078     Parse::RecDescent::_trace(q{Trying terminal: [/full/i]}, Parse::RecDescent::_tracefirst($text),
5079             q{FULL},
5080             $tracelevel)
5081             if defined $::RD_TRACE;
5082     $lastsep = "";
5083     $expectation->is(q{})->at($text);
5084
5085
5086     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:full)//i)
5087     {
5088
5089       $expectation->failed();
5090       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5091               Parse::RecDescent::_tracefirst($text))
5092           if defined $::RD_TRACE;
5093
5094       last;
5095     }
5096     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5097             . $& . q{])},
5098               Parse::RecDescent::_tracefirst($text))
5099           if defined $::RD_TRACE;
5100     push @item, $item{__PATTERN1__}=$&;
5101
5102
5103
5104     Parse::RecDescent::_trace(q{>>Matched production: [/full/i]<<},
5105             Parse::RecDescent::_tracefirst($text),
5106             q{FULL},
5107             $tracelevel)
5108             if defined $::RD_TRACE;
5109     $_matched = 1;
5110     last;
5111   }
5112
5113
5114         unless ( $_matched || defined($return) || defined($score) )
5115   {
5116
5117
5118     $_[1] = $text;  # NOT SURE THIS IS NEEDED
5119     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5120            Parse::RecDescent::_tracefirst($_[1]),
5121            q{FULL},
5122            $tracelevel)
5123           if defined $::RD_TRACE;
5124     return undef;
5125   }
5126   if (!defined($return) && defined($score))
5127   {
5128     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5129             q{FULL},
5130             $tracelevel)
5131             if defined $::RD_TRACE;
5132     $return = $score_return;
5133   }
5134   splice @{$thisparser->{errors}}, $err_at;
5135   $return = $item[$#item] unless defined $return;
5136   if (defined $::RD_TRACE)
5137   {
5138     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5139             $return . q{])}, "",
5140             q{FULL},
5141             $tracelevel);
5142     Parse::RecDescent::_trace(q{(consumed: [} .
5143             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5144             Parse::RecDescent::_tracefirst($text),
5145             , q{FULL},
5146             $tracelevel)
5147   }
5148   $_[1] = $text;
5149   return $return;
5150 }
5151
5152 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5153 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification
5154 {
5155   my $thisparser = $_[0];
5156   use vars q{$tracelevel};
5157   local $tracelevel = ($tracelevel||0)+1;
5158   $ERRORS = 0;
5159   my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_cast_specification"};
5160
5161   Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_cast_specification]},
5162           Parse::RecDescent::_tracefirst($_[1]),
5163           q{_alternation_2_of_production_1_of_rule_cast_specification},
5164           $tracelevel)
5165           if defined $::RD_TRACE;
5166
5167
5168   my $err_at = @{$thisparser->{errors}};
5169
5170   my $score;
5171   my $score_return;
5172   my $_tok;
5173   my $return = undef;
5174   my $_matched=0;
5175   my $commit=0;
5176   my @item = ();
5177   my %item = ();
5178   my $repeating =  defined($_[2]) && $_[2];
5179   my $_noactions = defined($_[3]) && $_[3];
5180    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5181   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5182   my $text;
5183   my $lastsep="";
5184   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5185   $expectation->at($_[1]);
5186
5187   my $thisline;
5188   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5189
5190
5191
5192   while (!$_matched && !$commit)
5193   {
5194
5195     Parse::RecDescent::_trace(q{Trying production: [/SCOPE/ typed_table_name, or typed_view_name]},
5196             Parse::RecDescent::_tracefirst($_[1]),
5197             q{_alternation_2_of_production_1_of_rule_cast_specification},
5198             $tracelevel)
5199             if defined $::RD_TRACE;
5200     my $thisprod = $thisrule->{"prods"}[0];
5201     $text = $_[1];
5202     my $_savetext;
5203     @item = (q{_alternation_2_of_production_1_of_rule_cast_specification});
5204     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_cast_specification});
5205     my $repcount = 0;
5206
5207
5208     Parse::RecDescent::_trace(q{Trying terminal: [/SCOPE/]}, Parse::RecDescent::_tracefirst($text),
5209             q{_alternation_2_of_production_1_of_rule_cast_specification},
5210             $tracelevel)
5211             if defined $::RD_TRACE;
5212     $lastsep = "";
5213     $expectation->is(q{})->at($text);
5214
5215
5216     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SCOPE)//)
5217     {
5218
5219       $expectation->failed();
5220       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5221               Parse::RecDescent::_tracefirst($text))
5222           if defined $::RD_TRACE;
5223
5224       last;
5225     }
5226     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5227             . $& . q{])},
5228               Parse::RecDescent::_tracefirst($text))
5229           if defined $::RD_TRACE;
5230     push @item, $item{__PATTERN1__}=$&;
5231
5232
5233     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
5234           Parse::RecDescent::_tracefirst($text),
5235           q{_alternation_2_of_production_1_of_rule_cast_specification},
5236           $tracelevel)
5237           if defined $::RD_TRACE;
5238     if (1) { no strict qw{refs};
5239     $expectation->is(q{typed_table_name, or typed_view_name})->at($text);
5240     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
5241     {
5242
5243       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]>>},
5244               Parse::RecDescent::_tracefirst($text),
5245               q{_alternation_2_of_production_1_of_rule_cast_specification},
5246               $tracelevel)
5247               if defined $::RD_TRACE;
5248       $expectation->failed();
5249       last;
5250     }
5251     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]<< (return value: [}
5252           . $_tok . q{]},
5253
5254             Parse::RecDescent::_tracefirst($text),
5255             q{_alternation_2_of_production_1_of_rule_cast_specification},
5256             $tracelevel)
5257             if defined $::RD_TRACE;
5258     $item{q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification}} = $_tok;
5259     push @item, $_tok;
5260
5261     }
5262
5263
5264     Parse::RecDescent::_trace(q{>>Matched production: [/SCOPE/ typed_table_name, or typed_view_name]<<},
5265             Parse::RecDescent::_tracefirst($text),
5266             q{_alternation_2_of_production_1_of_rule_cast_specification},
5267             $tracelevel)
5268             if defined $::RD_TRACE;
5269     $_matched = 1;
5270     last;
5271   }
5272
5273
5274         unless ( $_matched || defined($return) || defined($score) )
5275   {
5276
5277
5278     $_[1] = $text;  # NOT SURE THIS IS NEEDED
5279     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5280            Parse::RecDescent::_tracefirst($_[1]),
5281            q{_alternation_2_of_production_1_of_rule_cast_specification},
5282            $tracelevel)
5283           if defined $::RD_TRACE;
5284     return undef;
5285   }
5286   if (!defined($return) && defined($score))
5287   {
5288     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5289             q{_alternation_2_of_production_1_of_rule_cast_specification},
5290             $tracelevel)
5291             if defined $::RD_TRACE;
5292     $return = $score_return;
5293   }
5294   splice @{$thisparser->{errors}}, $err_at;
5295   $return = $item[$#item] unless defined $return;
5296   if (defined $::RD_TRACE)
5297   {
5298     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5299             $return . q{])}, "",
5300             q{_alternation_2_of_production_1_of_rule_cast_specification},
5301             $tracelevel);
5302     Parse::RecDescent::_trace(q{(consumed: [} .
5303             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5304             Parse::RecDescent::_tracefirst($text),
5305             , q{_alternation_2_of_production_1_of_rule_cast_specification},
5306             $tracelevel)
5307   }
5308   $_[1] = $text;
5309   return $return;
5310 }
5311
5312 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5313 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression
5314 {
5315   my $thisparser = $_[0];
5316   use vars q{$tracelevel};
5317   local $tracelevel = ($tracelevel||0)+1;
5318   $ERRORS = 0;
5319   my $thisrule = $thisparser->{"rules"}{"case_expression"};
5320
5321   Parse::RecDescent::_trace(q{Trying rule: [case_expression]},
5322           Parse::RecDescent::_tracefirst($_[1]),
5323           q{case_expression},
5324           $tracelevel)
5325           if defined $::RD_TRACE;
5326
5327
5328   my $err_at = @{$thisparser->{errors}};
5329
5330   my $score;
5331   my $score_return;
5332   my $_tok;
5333   my $return = undef;
5334   my $_matched=0;
5335   my $commit=0;
5336   my @item = ();
5337   my %item = ();
5338   my $repeating =  defined($_[2]) && $_[2];
5339   my $_noactions = defined($_[3]) && $_[3];
5340    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5341   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5342   my $text;
5343   my $lastsep="";
5344   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5345   $expectation->at($_[1]);
5346
5347   my $thisline;
5348   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5349
5350
5351
5352   while (!$_matched && !$commit)
5353   {
5354
5355     Parse::RecDescent::_trace(q{Trying production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]},
5356             Parse::RecDescent::_tracefirst($_[1]),
5357             q{case_expression},
5358             $tracelevel)
5359             if defined $::RD_TRACE;
5360     my $thisprod = $thisrule->{"prods"}[0];
5361     $text = $_[1];
5362     my $_savetext;
5363     @item = (q{case_expression});
5364     %item = (__RULE__ => q{case_expression});
5365     my $repcount = 0;
5366
5367
5368     Parse::RecDescent::_trace(q{Trying terminal: [/CASE/i]}, Parse::RecDescent::_tracefirst($text),
5369             q{case_expression},
5370             $tracelevel)
5371             if defined $::RD_TRACE;
5372     $lastsep = "";
5373     $expectation->is(q{})->at($text);
5374
5375
5376     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CASE)//i)
5377     {
5378
5379       $expectation->failed();
5380       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5381               Parse::RecDescent::_tracefirst($text))
5382           if defined $::RD_TRACE;
5383
5384       last;
5385     }
5386     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5387             . $& . q{])},
5388               Parse::RecDescent::_tracefirst($text))
5389           if defined $::RD_TRACE;
5390     push @item, $item{__PATTERN1__}=$&;
5391
5392
5393     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_case_expression]},
5394           Parse::RecDescent::_tracefirst($text),
5395           q{case_expression},
5396           $tracelevel)
5397           if defined $::RD_TRACE;
5398     if (1) { no strict qw{refs};
5399     $expectation->is(q{searched_when_clause, or simple_when_clause})->at($text);
5400     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_case_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
5401     {
5402
5403       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_case_expression]>>},
5404               Parse::RecDescent::_tracefirst($text),
5405               q{case_expression},
5406               $tracelevel)
5407               if defined $::RD_TRACE;
5408       $expectation->failed();
5409       last;
5410     }
5411     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_case_expression]<< (return value: [}
5412           . $_tok . q{]},
5413
5414             Parse::RecDescent::_tracefirst($text),
5415             q{case_expression},
5416             $tracelevel)
5417             if defined $::RD_TRACE;
5418     $item{q{_alternation_1_of_production_1_of_rule_case_expression}} = $_tok;
5419     push @item, $_tok;
5420
5421     }
5422
5423     Parse::RecDescent::_trace(q{Trying repeated subrule: [/ELSE\\s+NULL/i, or /ELSE/i]},
5424           Parse::RecDescent::_tracefirst($text),
5425           q{case_expression},
5426           $tracelevel)
5427           if defined $::RD_TRACE;
5428     $expectation->is(q{/ELSE\\s+NULL/i, or /ELSE/i})->at($text);
5429
5430     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_case_expression, 0, 1, $_noactions,$expectation,undef)))
5431     {
5432       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/ELSE\\s+NULL/i, or /ELSE/i]>>},
5433               Parse::RecDescent::_tracefirst($text),
5434               q{case_expression},
5435               $tracelevel)
5436               if defined $::RD_TRACE;
5437       last;
5438     }
5439     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_case_expression]<< (}
5440           . @$_tok . q{ times)},
5441
5442             Parse::RecDescent::_tracefirst($text),
5443             q{case_expression},
5444             $tracelevel)
5445             if defined $::RD_TRACE;
5446     $item{q{_alternation_2_of_production_1_of_rule_case_expression(?)}} = $_tok;
5447     push @item, $_tok;
5448
5449
5450
5451     Parse::RecDescent::_trace(q{Trying terminal: [/END/i]}, Parse::RecDescent::_tracefirst($text),
5452             q{case_expression},
5453             $tracelevel)
5454             if defined $::RD_TRACE;
5455     $lastsep = "";
5456     $expectation->is(q{/END/i})->at($text);
5457
5458
5459     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:END)//i)
5460     {
5461
5462       $expectation->failed();
5463       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5464               Parse::RecDescent::_tracefirst($text))
5465           if defined $::RD_TRACE;
5466
5467       last;
5468     }
5469     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5470             . $& . q{])},
5471               Parse::RecDescent::_tracefirst($text))
5472           if defined $::RD_TRACE;
5473     push @item, $item{__PATTERN2__}=$&;
5474
5475
5476
5477     Parse::RecDescent::_trace(q{>>Matched production: [/CASE/i searched_when_clause, or simple_when_clause /ELSE\\s+NULL/i, or /ELSE/i /END/i]<<},
5478             Parse::RecDescent::_tracefirst($text),
5479             q{case_expression},
5480             $tracelevel)
5481             if defined $::RD_TRACE;
5482     $_matched = 1;
5483     last;
5484   }
5485
5486
5487         unless ( $_matched || defined($return) || defined($score) )
5488   {
5489
5490
5491     $_[1] = $text;  # NOT SURE THIS IS NEEDED
5492     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5493            Parse::RecDescent::_tracefirst($_[1]),
5494            q{case_expression},
5495            $tracelevel)
5496           if defined $::RD_TRACE;
5497     return undef;
5498   }
5499   if (!defined($return) && defined($score))
5500   {
5501     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5502             q{case_expression},
5503             $tracelevel)
5504             if defined $::RD_TRACE;
5505     $return = $score_return;
5506   }
5507   splice @{$thisparser->{errors}}, $err_at;
5508   $return = $item[$#item] unless defined $return;
5509   if (defined $::RD_TRACE)
5510   {
5511     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5512             $return . q{])}, "",
5513             q{case_expression},
5514             $tracelevel);
5515     Parse::RecDescent::_trace(q{(consumed: [} .
5516             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5517             Parse::RecDescent::_tracefirst($text),
5518             , q{case_expression},
5519             $tracelevel)
5520   }
5521   $_[1] = $text;
5522   return $return;
5523 }
5524
5525 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5526 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::operator
5527 {
5528   my $thisparser = $_[0];
5529   use vars q{$tracelevel};
5530   local $tracelevel = ($tracelevel||0)+1;
5531   $ERRORS = 0;
5532   my $thisrule = $thisparser->{"rules"}{"operator"};
5533
5534   Parse::RecDescent::_trace(q{Trying rule: [operator]},
5535           Parse::RecDescent::_tracefirst($_[1]),
5536           q{operator},
5537           $tracelevel)
5538           if defined $::RD_TRACE;
5539
5540
5541   my $err_at = @{$thisparser->{errors}};
5542
5543   my $score;
5544   my $score_return;
5545   my $_tok;
5546   my $return = undef;
5547   my $_matched=0;
5548   my $commit=0;
5549   my @item = ();
5550   my %item = ();
5551   my $repeating =  defined($_[2]) && $_[2];
5552   my $_noactions = defined($_[3]) && $_[3];
5553    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5554   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5555   my $text;
5556   my $lastsep="";
5557   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5558   $expectation->at($_[1]);
5559
5560   my $thisline;
5561   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5562
5563
5564
5565   while (!$_matched && !$commit)
5566   {
5567
5568     Parse::RecDescent::_trace(q{Trying production: [/CONCAT/i, or '||']},
5569             Parse::RecDescent::_tracefirst($_[1]),
5570             q{operator},
5571             $tracelevel)
5572             if defined $::RD_TRACE;
5573     my $thisprod = $thisrule->{"prods"}[0];
5574     $text = $_[1];
5575     my $_savetext;
5576     @item = (q{operator});
5577     %item = (__RULE__ => q{operator});
5578     my $repcount = 0;
5579
5580
5581     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_operator]},
5582           Parse::RecDescent::_tracefirst($text),
5583           q{operator},
5584           $tracelevel)
5585           if defined $::RD_TRACE;
5586     if (1) { no strict qw{refs};
5587     $expectation->is(q{})->at($text);
5588     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
5589     {
5590
5591       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_operator]>>},
5592               Parse::RecDescent::_tracefirst($text),
5593               q{operator},
5594               $tracelevel)
5595               if defined $::RD_TRACE;
5596       $expectation->failed();
5597       last;
5598     }
5599     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_operator]<< (return value: [}
5600           . $_tok . q{]},
5601
5602             Parse::RecDescent::_tracefirst($text),
5603             q{operator},
5604             $tracelevel)
5605             if defined $::RD_TRACE;
5606     $item{q{_alternation_1_of_production_1_of_rule_operator}} = $_tok;
5607     push @item, $_tok;
5608
5609     }
5610
5611
5612     Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/i, or '||']<<},
5613             Parse::RecDescent::_tracefirst($text),
5614             q{operator},
5615             $tracelevel)
5616             if defined $::RD_TRACE;
5617     $_matched = 1;
5618     last;
5619   }
5620
5621
5622   while (!$_matched && !$commit)
5623   {
5624
5625     Parse::RecDescent::_trace(q{Trying production: ['/']},
5626             Parse::RecDescent::_tracefirst($_[1]),
5627             q{operator},
5628             $tracelevel)
5629             if defined $::RD_TRACE;
5630     my $thisprod = $thisrule->{"prods"}[1];
5631     $text = $_[1];
5632     my $_savetext;
5633     @item = (q{operator});
5634     %item = (__RULE__ => q{operator});
5635     my $repcount = 0;
5636
5637
5638     Parse::RecDescent::_trace(q{Trying terminal: ['/']},
5639             Parse::RecDescent::_tracefirst($text),
5640             q{operator},
5641             $tracelevel)
5642             if defined $::RD_TRACE;
5643     $lastsep = "";
5644     $expectation->is(q{})->at($text);
5645
5646
5647     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\///)
5648     {
5649
5650       $expectation->failed();
5651       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5652               Parse::RecDescent::_tracefirst($text))
5653               if defined $::RD_TRACE;
5654       last;
5655     }
5656     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5657             . $& . q{])},
5658               Parse::RecDescent::_tracefirst($text))
5659               if defined $::RD_TRACE;
5660     push @item, $item{__STRING1__}=$&;
5661
5662
5663
5664     Parse::RecDescent::_trace(q{>>Matched production: ['/']<<},
5665             Parse::RecDescent::_tracefirst($text),
5666             q{operator},
5667             $tracelevel)
5668             if defined $::RD_TRACE;
5669     $_matched = 1;
5670     last;
5671   }
5672
5673
5674   while (!$_matched && !$commit)
5675   {
5676
5677     Parse::RecDescent::_trace(q{Trying production: ['*']},
5678             Parse::RecDescent::_tracefirst($_[1]),
5679             q{operator},
5680             $tracelevel)
5681             if defined $::RD_TRACE;
5682     my $thisprod = $thisrule->{"prods"}[2];
5683     $text = $_[1];
5684     my $_savetext;
5685     @item = (q{operator});
5686     %item = (__RULE__ => q{operator});
5687     my $repcount = 0;
5688
5689
5690     Parse::RecDescent::_trace(q{Trying terminal: ['*']},
5691             Parse::RecDescent::_tracefirst($text),
5692             q{operator},
5693             $tracelevel)
5694             if defined $::RD_TRACE;
5695     $lastsep = "";
5696     $expectation->is(q{})->at($text);
5697
5698
5699     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\*//)
5700     {
5701
5702       $expectation->failed();
5703       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5704               Parse::RecDescent::_tracefirst($text))
5705               if defined $::RD_TRACE;
5706       last;
5707     }
5708     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5709             . $& . q{])},
5710               Parse::RecDescent::_tracefirst($text))
5711               if defined $::RD_TRACE;
5712     push @item, $item{__STRING1__}=$&;
5713
5714
5715
5716     Parse::RecDescent::_trace(q{>>Matched production: ['*']<<},
5717             Parse::RecDescent::_tracefirst($text),
5718             q{operator},
5719             $tracelevel)
5720             if defined $::RD_TRACE;
5721     $_matched = 1;
5722     last;
5723   }
5724
5725
5726   while (!$_matched && !$commit)
5727   {
5728
5729     Parse::RecDescent::_trace(q{Trying production: ['+']},
5730             Parse::RecDescent::_tracefirst($_[1]),
5731             q{operator},
5732             $tracelevel)
5733             if defined $::RD_TRACE;
5734     my $thisprod = $thisrule->{"prods"}[3];
5735     $text = $_[1];
5736     my $_savetext;
5737     @item = (q{operator});
5738     %item = (__RULE__ => q{operator});
5739     my $repcount = 0;
5740
5741
5742     Parse::RecDescent::_trace(q{Trying terminal: ['+']},
5743             Parse::RecDescent::_tracefirst($text),
5744             q{operator},
5745             $tracelevel)
5746             if defined $::RD_TRACE;
5747     $lastsep = "";
5748     $expectation->is(q{})->at($text);
5749
5750
5751     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\+//)
5752     {
5753
5754       $expectation->failed();
5755       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5756               Parse::RecDescent::_tracefirst($text))
5757               if defined $::RD_TRACE;
5758       last;
5759     }
5760     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5761             . $& . q{])},
5762               Parse::RecDescent::_tracefirst($text))
5763               if defined $::RD_TRACE;
5764     push @item, $item{__STRING1__}=$&;
5765
5766
5767
5768     Parse::RecDescent::_trace(q{>>Matched production: ['+']<<},
5769             Parse::RecDescent::_tracefirst($text),
5770             q{operator},
5771             $tracelevel)
5772             if defined $::RD_TRACE;
5773     $_matched = 1;
5774     last;
5775   }
5776
5777
5778   while (!$_matched && !$commit)
5779   {
5780
5781     Parse::RecDescent::_trace(q{Trying production: ['-']},
5782             Parse::RecDescent::_tracefirst($_[1]),
5783             q{operator},
5784             $tracelevel)
5785             if defined $::RD_TRACE;
5786     my $thisprod = $thisrule->{"prods"}[4];
5787     $text = $_[1];
5788     my $_savetext;
5789     @item = (q{operator});
5790     %item = (__RULE__ => q{operator});
5791     my $repcount = 0;
5792
5793
5794     Parse::RecDescent::_trace(q{Trying terminal: ['-']},
5795             Parse::RecDescent::_tracefirst($text),
5796             q{operator},
5797             $tracelevel)
5798             if defined $::RD_TRACE;
5799     $lastsep = "";
5800     $expectation->is(q{})->at($text);
5801
5802
5803     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\-//)
5804     {
5805
5806       $expectation->failed();
5807       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
5808               Parse::RecDescent::_tracefirst($text))
5809               if defined $::RD_TRACE;
5810       last;
5811     }
5812     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5813             . $& . q{])},
5814               Parse::RecDescent::_tracefirst($text))
5815               if defined $::RD_TRACE;
5816     push @item, $item{__STRING1__}=$&;
5817
5818
5819
5820     Parse::RecDescent::_trace(q{>>Matched production: ['-']<<},
5821             Parse::RecDescent::_tracefirst($text),
5822             q{operator},
5823             $tracelevel)
5824             if defined $::RD_TRACE;
5825     $_matched = 1;
5826     last;
5827   }
5828
5829
5830         unless ( $_matched || defined($return) || defined($score) )
5831   {
5832
5833
5834     $_[1] = $text;  # NOT SURE THIS IS NEEDED
5835     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
5836            Parse::RecDescent::_tracefirst($_[1]),
5837            q{operator},
5838            $tracelevel)
5839           if defined $::RD_TRACE;
5840     return undef;
5841   }
5842   if (!defined($return) && defined($score))
5843   {
5844     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
5845             q{operator},
5846             $tracelevel)
5847             if defined $::RD_TRACE;
5848     $return = $score_return;
5849   }
5850   splice @{$thisparser->{errors}}, $err_at;
5851   $return = $item[$#item] unless defined $return;
5852   if (defined $::RD_TRACE)
5853   {
5854     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
5855             $return . q{])}, "",
5856             q{operator},
5857             $tracelevel);
5858     Parse::RecDescent::_trace(q{(consumed: [} .
5859             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
5860             Parse::RecDescent::_tracefirst($text),
5861             , q{operator},
5862             $tracelevel)
5863   }
5864   $_[1] = $text;
5865   return $return;
5866 }
5867
5868 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
5869 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type
5870 {
5871   my $thisparser = $_[0];
5872   use vars q{$tracelevel};
5873   local $tracelevel = ($tracelevel||0)+1;
5874   $ERRORS = 0;
5875   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_2_of_rule_type"};
5876
5877   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_2_of_rule_type]},
5878           Parse::RecDescent::_tracefirst($_[1]),
5879           q{_alternation_1_of_production_2_of_rule_type},
5880           $tracelevel)
5881           if defined $::RD_TRACE;
5882
5883
5884   my $err_at = @{$thisparser->{errors}};
5885
5886   my $score;
5887   my $score_return;
5888   my $_tok;
5889   my $return = undef;
5890   my $_matched=0;
5891   my $commit=0;
5892   my @item = ();
5893   my %item = ();
5894   my $repeating =  defined($_[2]) && $_[2];
5895   my $_noactions = defined($_[3]) && $_[3];
5896    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
5897   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
5898   my $text;
5899   my $lastsep="";
5900   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
5901   $expectation->at($_[1]);
5902
5903   my $thisline;
5904   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
5905
5906
5907
5908   while (!$_matched && !$commit)
5909   {
5910
5911     Parse::RecDescent::_trace(q{Trying production: [/INSERT/i]},
5912             Parse::RecDescent::_tracefirst($_[1]),
5913             q{_alternation_1_of_production_2_of_rule_type},
5914             $tracelevel)
5915             if defined $::RD_TRACE;
5916     my $thisprod = $thisrule->{"prods"}[0];
5917     $text = $_[1];
5918     my $_savetext;
5919     @item = (q{_alternation_1_of_production_2_of_rule_type});
5920     %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5921     my $repcount = 0;
5922
5923
5924     Parse::RecDescent::_trace(q{Trying terminal: [/INSERT/i]}, Parse::RecDescent::_tracefirst($text),
5925             q{_alternation_1_of_production_2_of_rule_type},
5926             $tracelevel)
5927             if defined $::RD_TRACE;
5928     $lastsep = "";
5929     $expectation->is(q{})->at($text);
5930
5931
5932     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INSERT)//i)
5933     {
5934
5935       $expectation->failed();
5936       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5937               Parse::RecDescent::_tracefirst($text))
5938           if defined $::RD_TRACE;
5939
5940       last;
5941     }
5942     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5943             . $& . q{])},
5944               Parse::RecDescent::_tracefirst($text))
5945           if defined $::RD_TRACE;
5946     push @item, $item{__PATTERN1__}=$&;
5947
5948
5949
5950     Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i]<<},
5951             Parse::RecDescent::_tracefirst($text),
5952             q{_alternation_1_of_production_2_of_rule_type},
5953             $tracelevel)
5954             if defined $::RD_TRACE;
5955     $_matched = 1;
5956     last;
5957   }
5958
5959
5960   while (!$_matched && !$commit)
5961   {
5962
5963     Parse::RecDescent::_trace(q{Trying production: [/DELETE/i]},
5964             Parse::RecDescent::_tracefirst($_[1]),
5965             q{_alternation_1_of_production_2_of_rule_type},
5966             $tracelevel)
5967             if defined $::RD_TRACE;
5968     my $thisprod = $thisrule->{"prods"}[1];
5969     $text = $_[1];
5970     my $_savetext;
5971     @item = (q{_alternation_1_of_production_2_of_rule_type});
5972     %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
5973     my $repcount = 0;
5974
5975
5976     Parse::RecDescent::_trace(q{Trying terminal: [/DELETE/i]}, Parse::RecDescent::_tracefirst($text),
5977             q{_alternation_1_of_production_2_of_rule_type},
5978             $tracelevel)
5979             if defined $::RD_TRACE;
5980     $lastsep = "";
5981     $expectation->is(q{})->at($text);
5982
5983
5984     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DELETE)//i)
5985     {
5986
5987       $expectation->failed();
5988       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
5989               Parse::RecDescent::_tracefirst($text))
5990           if defined $::RD_TRACE;
5991
5992       last;
5993     }
5994     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
5995             . $& . q{])},
5996               Parse::RecDescent::_tracefirst($text))
5997           if defined $::RD_TRACE;
5998     push @item, $item{__PATTERN1__}=$&;
5999
6000
6001
6002     Parse::RecDescent::_trace(q{>>Matched production: [/DELETE/i]<<},
6003             Parse::RecDescent::_tracefirst($text),
6004             q{_alternation_1_of_production_2_of_rule_type},
6005             $tracelevel)
6006             if defined $::RD_TRACE;
6007     $_matched = 1;
6008     last;
6009   }
6010
6011
6012   while (!$_matched && !$commit)
6013   {
6014
6015     Parse::RecDescent::_trace(q{Trying production: [/UPDATE/i]},
6016             Parse::RecDescent::_tracefirst($_[1]),
6017             q{_alternation_1_of_production_2_of_rule_type},
6018             $tracelevel)
6019             if defined $::RD_TRACE;
6020     my $thisprod = $thisrule->{"prods"}[2];
6021     $text = $_[1];
6022     my $_savetext;
6023     @item = (q{_alternation_1_of_production_2_of_rule_type});
6024     %item = (__RULE__ => q{_alternation_1_of_production_2_of_rule_type});
6025     my $repcount = 0;
6026
6027
6028     Parse::RecDescent::_trace(q{Trying terminal: [/UPDATE/i]}, Parse::RecDescent::_tracefirst($text),
6029             q{_alternation_1_of_production_2_of_rule_type},
6030             $tracelevel)
6031             if defined $::RD_TRACE;
6032     $lastsep = "";
6033     $expectation->is(q{})->at($text);
6034
6035
6036     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UPDATE)//i)
6037     {
6038
6039       $expectation->failed();
6040       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6041               Parse::RecDescent::_tracefirst($text))
6042           if defined $::RD_TRACE;
6043
6044       last;
6045     }
6046     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6047             . $& . q{])},
6048               Parse::RecDescent::_tracefirst($text))
6049           if defined $::RD_TRACE;
6050     push @item, $item{__PATTERN1__}=$&;
6051
6052
6053
6054     Parse::RecDescent::_trace(q{>>Matched production: [/UPDATE/i]<<},
6055             Parse::RecDescent::_tracefirst($text),
6056             q{_alternation_1_of_production_2_of_rule_type},
6057             $tracelevel)
6058             if defined $::RD_TRACE;
6059     $_matched = 1;
6060     last;
6061   }
6062
6063
6064         unless ( $_matched || defined($return) || defined($score) )
6065   {
6066
6067
6068     $_[1] = $text;  # NOT SURE THIS IS NEEDED
6069     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6070            Parse::RecDescent::_tracefirst($_[1]),
6071            q{_alternation_1_of_production_2_of_rule_type},
6072            $tracelevel)
6073           if defined $::RD_TRACE;
6074     return undef;
6075   }
6076   if (!defined($return) && defined($score))
6077   {
6078     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6079             q{_alternation_1_of_production_2_of_rule_type},
6080             $tracelevel)
6081             if defined $::RD_TRACE;
6082     $return = $score_return;
6083   }
6084   splice @{$thisparser->{errors}}, $err_at;
6085   $return = $item[$#item] unless defined $return;
6086   if (defined $::RD_TRACE)
6087   {
6088     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6089             $return . q{])}, "",
6090             q{_alternation_1_of_production_2_of_rule_type},
6091             $tracelevel);
6092     Parse::RecDescent::_trace(q{(consumed: [} .
6093             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6094             Parse::RecDescent::_tracefirst($text),
6095             , q{_alternation_1_of_production_2_of_rule_type},
6096             $tracelevel)
6097   }
6098   $_[1] = $text;
6099   return $return;
6100 }
6101
6102 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6103 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_8_of_rule_sysibm_function
6104 {
6105   my $thisparser = $_[0];
6106   use vars q{$tracelevel};
6107   local $tracelevel = ($tracelevel||0)+1;
6108   $ERRORS = 0;
6109   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_8_of_rule_sysibm_function"};
6110
6111   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
6112           Parse::RecDescent::_tracefirst($_[1]),
6113           q{_alternation_1_of_production_8_of_rule_sysibm_function},
6114           $tracelevel)
6115           if defined $::RD_TRACE;
6116
6117
6118   my $err_at = @{$thisparser->{errors}};
6119
6120   my $score;
6121   my $score_return;
6122   my $_tok;
6123   my $return = undef;
6124   my $_matched=0;
6125   my $commit=0;
6126   my @item = ();
6127   my %item = ();
6128   my $repeating =  defined($_[2]) && $_[2];
6129   my $_noactions = defined($_[3]) && $_[3];
6130    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
6131   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
6132   my $text;
6133   my $lastsep="";
6134   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6135   $expectation->at($_[1]);
6136
6137   my $thisline;
6138   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6139
6140
6141
6142   while (!$_matched && !$commit)
6143   {
6144
6145     Parse::RecDescent::_trace(q{Trying production: [/CONCAT/]},
6146             Parse::RecDescent::_tracefirst($_[1]),
6147             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6148             $tracelevel)
6149             if defined $::RD_TRACE;
6150     my $thisprod = $thisrule->{"prods"}[0];
6151     $text = $_[1];
6152     my $_savetext;
6153     @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
6154     %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
6155     my $repcount = 0;
6156
6157
6158     Parse::RecDescent::_trace(q{Trying terminal: [/CONCAT/]}, Parse::RecDescent::_tracefirst($text),
6159             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6160             $tracelevel)
6161             if defined $::RD_TRACE;
6162     $lastsep = "";
6163     $expectation->is(q{})->at($text);
6164
6165
6166     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CONCAT)//)
6167     {
6168
6169       $expectation->failed();
6170       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6171               Parse::RecDescent::_tracefirst($text))
6172           if defined $::RD_TRACE;
6173
6174       last;
6175     }
6176     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6177             . $& . q{])},
6178               Parse::RecDescent::_tracefirst($text))
6179           if defined $::RD_TRACE;
6180     push @item, $item{__PATTERN1__}=$&;
6181
6182
6183
6184     Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/]<<},
6185             Parse::RecDescent::_tracefirst($text),
6186             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6187             $tracelevel)
6188             if defined $::RD_TRACE;
6189     $_matched = 1;
6190     last;
6191   }
6192
6193
6194   while (!$_matched && !$commit)
6195   {
6196
6197     Parse::RecDescent::_trace(q{Trying production: ['||']},
6198             Parse::RecDescent::_tracefirst($_[1]),
6199             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6200             $tracelevel)
6201             if defined $::RD_TRACE;
6202     my $thisprod = $thisrule->{"prods"}[1];
6203     $text = $_[1];
6204     my $_savetext;
6205     @item = (q{_alternation_1_of_production_8_of_rule_sysibm_function});
6206     %item = (__RULE__ => q{_alternation_1_of_production_8_of_rule_sysibm_function});
6207     my $repcount = 0;
6208
6209
6210     Parse::RecDescent::_trace(q{Trying terminal: ['||']},
6211             Parse::RecDescent::_tracefirst($text),
6212             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6213             $tracelevel)
6214             if defined $::RD_TRACE;
6215     $lastsep = "";
6216     $expectation->is(q{})->at($text);
6217
6218
6219     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\|\|//)
6220     {
6221
6222       $expectation->failed();
6223       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
6224               Parse::RecDescent::_tracefirst($text))
6225               if defined $::RD_TRACE;
6226       last;
6227     }
6228     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6229             . $& . q{])},
6230               Parse::RecDescent::_tracefirst($text))
6231               if defined $::RD_TRACE;
6232     push @item, $item{__STRING1__}=$&;
6233
6234
6235
6236     Parse::RecDescent::_trace(q{>>Matched production: ['||']<<},
6237             Parse::RecDescent::_tracefirst($text),
6238             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6239             $tracelevel)
6240             if defined $::RD_TRACE;
6241     $_matched = 1;
6242     last;
6243   }
6244
6245
6246         unless ( $_matched || defined($return) || defined($score) )
6247   {
6248
6249
6250     $_[1] = $text;  # NOT SURE THIS IS NEEDED
6251     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6252            Parse::RecDescent::_tracefirst($_[1]),
6253            q{_alternation_1_of_production_8_of_rule_sysibm_function},
6254            $tracelevel)
6255           if defined $::RD_TRACE;
6256     return undef;
6257   }
6258   if (!defined($return) && defined($score))
6259   {
6260     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6261             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6262             $tracelevel)
6263             if defined $::RD_TRACE;
6264     $return = $score_return;
6265   }
6266   splice @{$thisparser->{errors}}, $err_at;
6267   $return = $item[$#item] unless defined $return;
6268   if (defined $::RD_TRACE)
6269   {
6270     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6271             $return . q{])}, "",
6272             q{_alternation_1_of_production_8_of_rule_sysibm_function},
6273             $tracelevel);
6274     Parse::RecDescent::_trace(q{(consumed: [} .
6275             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6276             Parse::RecDescent::_tracefirst($text),
6277             , q{_alternation_1_of_production_8_of_rule_sysibm_function},
6278             $tracelevel)
6279   }
6280   $_[1] = $text;
6281   return $return;
6282 }
6283
6284 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6285 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference
6286 {
6287   my $thisparser = $_[0];
6288   use vars q{$tracelevel};
6289   local $tracelevel = ($tracelevel||0)+1;
6290   $ERRORS = 0;
6291   my $thisrule = $thisparser->{"rules"}{"sequence_reference"};
6292
6293   Parse::RecDescent::_trace(q{Trying rule: [sequence_reference]},
6294           Parse::RecDescent::_tracefirst($_[1]),
6295           q{sequence_reference},
6296           $tracelevel)
6297           if defined $::RD_TRACE;
6298
6299
6300   my $err_at = @{$thisparser->{errors}};
6301
6302   my $score;
6303   my $score_return;
6304   my $_tok;
6305   my $return = undef;
6306   my $_matched=0;
6307   my $commit=0;
6308   my @item = ();
6309   my %item = ();
6310   my $repeating =  defined($_[2]) && $_[2];
6311   my $_noactions = defined($_[3]) && $_[3];
6312    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
6313   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
6314   my $text;
6315   my $lastsep="";
6316   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6317   $expectation->at($_[1]);
6318
6319   my $thisline;
6320   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6321
6322
6323
6324   while (!$_matched && !$commit)
6325   {
6326
6327     Parse::RecDescent::_trace(q{Trying production: [nextval_expression]},
6328             Parse::RecDescent::_tracefirst($_[1]),
6329             q{sequence_reference},
6330             $tracelevel)
6331             if defined $::RD_TRACE;
6332     my $thisprod = $thisrule->{"prods"}[0];
6333     $text = $_[1];
6334     my $_savetext;
6335     @item = (q{sequence_reference});
6336     %item = (__RULE__ => q{sequence_reference});
6337     my $repcount = 0;
6338
6339
6340     Parse::RecDescent::_trace(q{Trying subrule: [nextval_expression]},
6341           Parse::RecDescent::_tracefirst($text),
6342           q{sequence_reference},
6343           $tracelevel)
6344           if defined $::RD_TRACE;
6345     if (1) { no strict qw{refs};
6346     $expectation->is(q{})->at($text);
6347     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
6348     {
6349
6350       Parse::RecDescent::_trace(q{<<Didn't match subrule: [nextval_expression]>>},
6351               Parse::RecDescent::_tracefirst($text),
6352               q{sequence_reference},
6353               $tracelevel)
6354               if defined $::RD_TRACE;
6355       $expectation->failed();
6356       last;
6357     }
6358     Parse::RecDescent::_trace(q{>>Matched subrule: [nextval_expression]<< (return value: [}
6359           . $_tok . q{]},
6360
6361             Parse::RecDescent::_tracefirst($text),
6362             q{sequence_reference},
6363             $tracelevel)
6364             if defined $::RD_TRACE;
6365     $item{q{nextval_expression}} = $_tok;
6366     push @item, $_tok;
6367
6368     }
6369
6370
6371     Parse::RecDescent::_trace(q{>>Matched production: [nextval_expression]<<},
6372             Parse::RecDescent::_tracefirst($text),
6373             q{sequence_reference},
6374             $tracelevel)
6375             if defined $::RD_TRACE;
6376     $_matched = 1;
6377     last;
6378   }
6379
6380
6381   while (!$_matched && !$commit)
6382   {
6383
6384     Parse::RecDescent::_trace(q{Trying production: [prevval_expression]},
6385             Parse::RecDescent::_tracefirst($_[1]),
6386             q{sequence_reference},
6387             $tracelevel)
6388             if defined $::RD_TRACE;
6389     my $thisprod = $thisrule->{"prods"}[1];
6390     $text = $_[1];
6391     my $_savetext;
6392     @item = (q{sequence_reference});
6393     %item = (__RULE__ => q{sequence_reference});
6394     my $repcount = 0;
6395
6396
6397     Parse::RecDescent::_trace(q{Trying subrule: [prevval_expression]},
6398           Parse::RecDescent::_tracefirst($text),
6399           q{sequence_reference},
6400           $tracelevel)
6401           if defined $::RD_TRACE;
6402     if (1) { no strict qw{refs};
6403     $expectation->is(q{})->at($text);
6404     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
6405     {
6406
6407       Parse::RecDescent::_trace(q{<<Didn't match subrule: [prevval_expression]>>},
6408               Parse::RecDescent::_tracefirst($text),
6409               q{sequence_reference},
6410               $tracelevel)
6411               if defined $::RD_TRACE;
6412       $expectation->failed();
6413       last;
6414     }
6415     Parse::RecDescent::_trace(q{>>Matched subrule: [prevval_expression]<< (return value: [}
6416           . $_tok . q{]},
6417
6418             Parse::RecDescent::_tracefirst($text),
6419             q{sequence_reference},
6420             $tracelevel)
6421             if defined $::RD_TRACE;
6422     $item{q{prevval_expression}} = $_tok;
6423     push @item, $_tok;
6424
6425     }
6426
6427
6428     Parse::RecDescent::_trace(q{>>Matched production: [prevval_expression]<<},
6429             Parse::RecDescent::_tracefirst($text),
6430             q{sequence_reference},
6431             $tracelevel)
6432             if defined $::RD_TRACE;
6433     $_matched = 1;
6434     last;
6435   }
6436
6437
6438         unless ( $_matched || defined($return) || defined($score) )
6439   {
6440
6441
6442     $_[1] = $text;  # NOT SURE THIS IS NEEDED
6443     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
6444            Parse::RecDescent::_tracefirst($_[1]),
6445            q{sequence_reference},
6446            $tracelevel)
6447           if defined $::RD_TRACE;
6448     return undef;
6449   }
6450   if (!defined($return) && defined($score))
6451   {
6452     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
6453             q{sequence_reference},
6454             $tracelevel)
6455             if defined $::RD_TRACE;
6456     $return = $score_return;
6457   }
6458   splice @{$thisparser->{errors}}, $err_at;
6459   $return = $item[$#item] unless defined $return;
6460   if (defined $::RD_TRACE)
6461   {
6462     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
6463             $return . q{])}, "",
6464             q{sequence_reference},
6465             $tracelevel);
6466     Parse::RecDescent::_trace(q{(consumed: [} .
6467             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
6468             Parse::RecDescent::_tracefirst($text),
6469             , q{sequence_reference},
6470             $tracelevel)
6471   }
6472   $_[1] = $text;
6473   return $return;
6474 }
6475
6476 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
6477 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function
6478 {
6479   my $thisparser = $_[0];
6480   use vars q{$tracelevel};
6481   local $tracelevel = ($tracelevel||0)+1;
6482   $ERRORS = 0;
6483   my $thisrule = $thisparser->{"rules"}{"sysibm_function"};
6484
6485   Parse::RecDescent::_trace(q{Trying rule: [sysibm_function]},
6486           Parse::RecDescent::_tracefirst($_[1]),
6487           q{sysibm_function},
6488           $tracelevel)
6489           if defined $::RD_TRACE;
6490
6491
6492   my $err_at = @{$thisparser->{errors}};
6493
6494   my $score;
6495   my $score_return;
6496   my $_tok;
6497   my $return = undef;
6498   my $_matched=0;
6499   my $commit=0;
6500   my @item = ();
6501   my %item = ();
6502   my $repeating =  defined($_[2]) && $_[2];
6503   my $_noactions = defined($_[3]) && $_[3];
6504    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
6505   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
6506   my $text;
6507   my $lastsep="";
6508   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
6509   $expectation->at($_[1]);
6510
6511   my $thisline;
6512   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
6513
6514
6515
6516   while (!$_matched && !$commit)
6517   {
6518
6519     Parse::RecDescent::_trace(q{Trying production: [/ABS/i, or /ABSVAL/i]},
6520             Parse::RecDescent::_tracefirst($_[1]),
6521             q{sysibm_function},
6522             $tracelevel)
6523             if defined $::RD_TRACE;
6524     my $thisprod = $thisrule->{"prods"}[0];
6525     $text = $_[1];
6526     my $_savetext;
6527     @item = (q{sysibm_function});
6528     %item = (__RULE__ => q{sysibm_function});
6529     my $repcount = 0;
6530
6531
6532     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
6533           Parse::RecDescent::_tracefirst($text),
6534           q{sysibm_function},
6535           $tracelevel)
6536           if defined $::RD_TRACE;
6537     if (1) { no strict qw{refs};
6538     $expectation->is(q{})->at($text);
6539     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
6540     {
6541
6542       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]>>},
6543               Parse::RecDescent::_tracefirst($text),
6544               q{sysibm_function},
6545               $tracelevel)
6546               if defined $::RD_TRACE;
6547       $expectation->failed();
6548       last;
6549     }
6550     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysibm_function]<< (return value: [}
6551           . $_tok . q{]},
6552
6553             Parse::RecDescent::_tracefirst($text),
6554             q{sysibm_function},
6555             $tracelevel)
6556             if defined $::RD_TRACE;
6557     $item{q{_alternation_1_of_production_1_of_rule_sysibm_function}} = $_tok;
6558     push @item, $_tok;
6559
6560     }
6561
6562
6563     Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
6564             Parse::RecDescent::_tracefirst($text),
6565             q{sysibm_function},
6566             $tracelevel)
6567             if defined $::RD_TRACE;
6568     $_matched = 1;
6569     last;
6570   }
6571
6572
6573   while (!$_matched && !$commit)
6574   {
6575
6576     Parse::RecDescent::_trace(q{Trying production: [/AVG/i]},
6577             Parse::RecDescent::_tracefirst($_[1]),
6578             q{sysibm_function},
6579             $tracelevel)
6580             if defined $::RD_TRACE;
6581     my $thisprod = $thisrule->{"prods"}[1];
6582     $text = $_[1];
6583     my $_savetext;
6584     @item = (q{sysibm_function});
6585     %item = (__RULE__ => q{sysibm_function});
6586     my $repcount = 0;
6587
6588
6589     Parse::RecDescent::_trace(q{Trying terminal: [/AVG/i]}, Parse::RecDescent::_tracefirst($text),
6590             q{sysibm_function},
6591             $tracelevel)
6592             if defined $::RD_TRACE;
6593     $lastsep = "";
6594     $expectation->is(q{})->at($text);
6595
6596
6597     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AVG)//i)
6598     {
6599
6600       $expectation->failed();
6601       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6602               Parse::RecDescent::_tracefirst($text))
6603           if defined $::RD_TRACE;
6604
6605       last;
6606     }
6607     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6608             . $& . q{])},
6609               Parse::RecDescent::_tracefirst($text))
6610           if defined $::RD_TRACE;
6611     push @item, $item{__PATTERN1__}=$&;
6612
6613
6614
6615     Parse::RecDescent::_trace(q{>>Matched production: [/AVG/i]<<},
6616             Parse::RecDescent::_tracefirst($text),
6617             q{sysibm_function},
6618             $tracelevel)
6619             if defined $::RD_TRACE;
6620     $_matched = 1;
6621     last;
6622   }
6623
6624
6625   while (!$_matched && !$commit)
6626   {
6627
6628     Parse::RecDescent::_trace(q{Trying production: [/BIGINT/i]},
6629             Parse::RecDescent::_tracefirst($_[1]),
6630             q{sysibm_function},
6631             $tracelevel)
6632             if defined $::RD_TRACE;
6633     my $thisprod = $thisrule->{"prods"}[2];
6634     $text = $_[1];
6635     my $_savetext;
6636     @item = (q{sysibm_function});
6637     %item = (__RULE__ => q{sysibm_function});
6638     my $repcount = 0;
6639
6640
6641     Parse::RecDescent::_trace(q{Trying terminal: [/BIGINT/i]}, Parse::RecDescent::_tracefirst($text),
6642             q{sysibm_function},
6643             $tracelevel)
6644             if defined $::RD_TRACE;
6645     $lastsep = "";
6646     $expectation->is(q{})->at($text);
6647
6648
6649     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BIGINT)//i)
6650     {
6651
6652       $expectation->failed();
6653       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6654               Parse::RecDescent::_tracefirst($text))
6655           if defined $::RD_TRACE;
6656
6657       last;
6658     }
6659     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6660             . $& . q{])},
6661               Parse::RecDescent::_tracefirst($text))
6662           if defined $::RD_TRACE;
6663     push @item, $item{__PATTERN1__}=$&;
6664
6665
6666
6667     Parse::RecDescent::_trace(q{>>Matched production: [/BIGINT/i]<<},
6668             Parse::RecDescent::_tracefirst($text),
6669             q{sysibm_function},
6670             $tracelevel)
6671             if defined $::RD_TRACE;
6672     $_matched = 1;
6673     last;
6674   }
6675
6676
6677   while (!$_matched && !$commit)
6678   {
6679
6680     Parse::RecDescent::_trace(q{Trying production: [/BLOB/i]},
6681             Parse::RecDescent::_tracefirst($_[1]),
6682             q{sysibm_function},
6683             $tracelevel)
6684             if defined $::RD_TRACE;
6685     my $thisprod = $thisrule->{"prods"}[3];
6686     $text = $_[1];
6687     my $_savetext;
6688     @item = (q{sysibm_function});
6689     %item = (__RULE__ => q{sysibm_function});
6690     my $repcount = 0;
6691
6692
6693     Parse::RecDescent::_trace(q{Trying terminal: [/BLOB/i]}, Parse::RecDescent::_tracefirst($text),
6694             q{sysibm_function},
6695             $tracelevel)
6696             if defined $::RD_TRACE;
6697     $lastsep = "";
6698     $expectation->is(q{})->at($text);
6699
6700
6701     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BLOB)//i)
6702     {
6703
6704       $expectation->failed();
6705       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6706               Parse::RecDescent::_tracefirst($text))
6707           if defined $::RD_TRACE;
6708
6709       last;
6710     }
6711     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6712             . $& . q{])},
6713               Parse::RecDescent::_tracefirst($text))
6714           if defined $::RD_TRACE;
6715     push @item, $item{__PATTERN1__}=$&;
6716
6717
6718
6719     Parse::RecDescent::_trace(q{>>Matched production: [/BLOB/i]<<},
6720             Parse::RecDescent::_tracefirst($text),
6721             q{sysibm_function},
6722             $tracelevel)
6723             if defined $::RD_TRACE;
6724     $_matched = 1;
6725     last;
6726   }
6727
6728
6729   while (!$_matched && !$commit)
6730   {
6731
6732     Parse::RecDescent::_trace(q{Trying production: [/CHAR/i]},
6733             Parse::RecDescent::_tracefirst($_[1]),
6734             q{sysibm_function},
6735             $tracelevel)
6736             if defined $::RD_TRACE;
6737     my $thisprod = $thisrule->{"prods"}[4];
6738     $text = $_[1];
6739     my $_savetext;
6740     @item = (q{sysibm_function});
6741     %item = (__RULE__ => q{sysibm_function});
6742     my $repcount = 0;
6743
6744
6745     Parse::RecDescent::_trace(q{Trying terminal: [/CHAR/i]}, Parse::RecDescent::_tracefirst($text),
6746             q{sysibm_function},
6747             $tracelevel)
6748             if defined $::RD_TRACE;
6749     $lastsep = "";
6750     $expectation->is(q{})->at($text);
6751
6752
6753     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHAR)//i)
6754     {
6755
6756       $expectation->failed();
6757       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6758               Parse::RecDescent::_tracefirst($text))
6759           if defined $::RD_TRACE;
6760
6761       last;
6762     }
6763     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6764             . $& . q{])},
6765               Parse::RecDescent::_tracefirst($text))
6766           if defined $::RD_TRACE;
6767     push @item, $item{__PATTERN1__}=$&;
6768
6769
6770
6771     Parse::RecDescent::_trace(q{>>Matched production: [/CHAR/i]<<},
6772             Parse::RecDescent::_tracefirst($text),
6773             q{sysibm_function},
6774             $tracelevel)
6775             if defined $::RD_TRACE;
6776     $_matched = 1;
6777     last;
6778   }
6779
6780
6781   while (!$_matched && !$commit)
6782   {
6783
6784     Parse::RecDescent::_trace(q{Trying production: [/CLOB/i]},
6785             Parse::RecDescent::_tracefirst($_[1]),
6786             q{sysibm_function},
6787             $tracelevel)
6788             if defined $::RD_TRACE;
6789     my $thisprod = $thisrule->{"prods"}[5];
6790     $text = $_[1];
6791     my $_savetext;
6792     @item = (q{sysibm_function});
6793     %item = (__RULE__ => q{sysibm_function});
6794     my $repcount = 0;
6795
6796
6797     Parse::RecDescent::_trace(q{Trying terminal: [/CLOB/i]}, Parse::RecDescent::_tracefirst($text),
6798             q{sysibm_function},
6799             $tracelevel)
6800             if defined $::RD_TRACE;
6801     $lastsep = "";
6802     $expectation->is(q{})->at($text);
6803
6804
6805     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CLOB)//i)
6806     {
6807
6808       $expectation->failed();
6809       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6810               Parse::RecDescent::_tracefirst($text))
6811           if defined $::RD_TRACE;
6812
6813       last;
6814     }
6815     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6816             . $& . q{])},
6817               Parse::RecDescent::_tracefirst($text))
6818           if defined $::RD_TRACE;
6819     push @item, $item{__PATTERN1__}=$&;
6820
6821
6822
6823     Parse::RecDescent::_trace(q{>>Matched production: [/CLOB/i]<<},
6824             Parse::RecDescent::_tracefirst($text),
6825             q{sysibm_function},
6826             $tracelevel)
6827             if defined $::RD_TRACE;
6828     $_matched = 1;
6829     last;
6830   }
6831
6832
6833   while (!$_matched && !$commit)
6834   {
6835
6836     Parse::RecDescent::_trace(q{Trying production: [/COALESCE/i]},
6837             Parse::RecDescent::_tracefirst($_[1]),
6838             q{sysibm_function},
6839             $tracelevel)
6840             if defined $::RD_TRACE;
6841     my $thisprod = $thisrule->{"prods"}[6];
6842     $text = $_[1];
6843     my $_savetext;
6844     @item = (q{sysibm_function});
6845     %item = (__RULE__ => q{sysibm_function});
6846     my $repcount = 0;
6847
6848
6849     Parse::RecDescent::_trace(q{Trying terminal: [/COALESCE/i]}, Parse::RecDescent::_tracefirst($text),
6850             q{sysibm_function},
6851             $tracelevel)
6852             if defined $::RD_TRACE;
6853     $lastsep = "";
6854     $expectation->is(q{})->at($text);
6855
6856
6857     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COALESCE)//i)
6858     {
6859
6860       $expectation->failed();
6861       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
6862               Parse::RecDescent::_tracefirst($text))
6863           if defined $::RD_TRACE;
6864
6865       last;
6866     }
6867     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
6868             . $& . q{])},
6869               Parse::RecDescent::_tracefirst($text))
6870           if defined $::RD_TRACE;
6871     push @item, $item{__PATTERN1__}=$&;
6872
6873
6874
6875     Parse::RecDescent::_trace(q{>>Matched production: [/COALESCE/i]<<},
6876             Parse::RecDescent::_tracefirst($text),
6877             q{sysibm_function},
6878             $tracelevel)
6879             if defined $::RD_TRACE;
6880     $_matched = 1;
6881     last;
6882   }
6883
6884
6885   while (!$_matched && !$commit)
6886   {
6887
6888     Parse::RecDescent::_trace(q{Trying production: [/CONCAT/, or '||']},
6889             Parse::RecDescent::_tracefirst($_[1]),
6890             q{sysibm_function},
6891             $tracelevel)
6892             if defined $::RD_TRACE;
6893     my $thisprod = $thisrule->{"prods"}[7];
6894     $text = $_[1];
6895     my $_savetext;
6896     @item = (q{sysibm_function});
6897     %item = (__RULE__ => q{sysibm_function});
6898     my $repcount = 0;
6899
6900
6901     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]},
6902           Parse::RecDescent::_tracefirst($text),
6903           q{sysibm_function},
6904           $tracelevel)
6905           if defined $::RD_TRACE;
6906     if (1) { no strict qw{refs};
6907     $expectation->is(q{})->at($text);
6908     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_8_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
6909     {
6910
6911       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]>>},
6912               Parse::RecDescent::_tracefirst($text),
6913               q{sysibm_function},
6914               $tracelevel)
6915               if defined $::RD_TRACE;
6916       $expectation->failed();
6917       last;
6918     }
6919     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_8_of_rule_sysibm_function]<< (return value: [}
6920           . $_tok . q{]},
6921
6922             Parse::RecDescent::_tracefirst($text),
6923             q{sysibm_function},
6924             $tracelevel)
6925             if defined $::RD_TRACE;
6926     $item{q{_alternation_1_of_production_8_of_rule_sysibm_function}} = $_tok;
6927     push @item, $_tok;
6928
6929     }
6930
6931
6932     Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/, or '||']<<},
6933             Parse::RecDescent::_tracefirst($text),
6934             q{sysibm_function},
6935             $tracelevel)
6936             if defined $::RD_TRACE;
6937     $_matched = 1;
6938     last;
6939   }
6940
6941
6942   while (!$_matched && !$commit)
6943   {
6944
6945     Parse::RecDescent::_trace(q{Trying production: [/CORRELATION/i, or /CORR/]},
6946             Parse::RecDescent::_tracefirst($_[1]),
6947             q{sysibm_function},
6948             $tracelevel)
6949             if defined $::RD_TRACE;
6950     my $thisprod = $thisrule->{"prods"}[8];
6951     $text = $_[1];
6952     my $_savetext;
6953     @item = (q{sysibm_function});
6954     %item = (__RULE__ => q{sysibm_function});
6955     my $repcount = 0;
6956
6957
6958     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
6959           Parse::RecDescent::_tracefirst($text),
6960           q{sysibm_function},
6961           $tracelevel)
6962           if defined $::RD_TRACE;
6963     if (1) { no strict qw{refs};
6964     $expectation->is(q{})->at($text);
6965     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_9_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
6966     {
6967
6968       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]>>},
6969               Parse::RecDescent::_tracefirst($text),
6970               q{sysibm_function},
6971               $tracelevel)
6972               if defined $::RD_TRACE;
6973       $expectation->failed();
6974       last;
6975     }
6976     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_9_of_rule_sysibm_function]<< (return value: [}
6977           . $_tok . q{]},
6978
6979             Parse::RecDescent::_tracefirst($text),
6980             q{sysibm_function},
6981             $tracelevel)
6982             if defined $::RD_TRACE;
6983     $item{q{_alternation_1_of_production_9_of_rule_sysibm_function}} = $_tok;
6984     push @item, $_tok;
6985
6986     }
6987
6988
6989     Parse::RecDescent::_trace(q{>>Matched production: [/CORRELATION/i, or /CORR/]<<},
6990             Parse::RecDescent::_tracefirst($text),
6991             q{sysibm_function},
6992             $tracelevel)
6993             if defined $::RD_TRACE;
6994     $_matched = 1;
6995     last;
6996   }
6997
6998
6999   while (!$_matched && !$commit)
7000   {
7001
7002     Parse::RecDescent::_trace(q{Trying production: [/COUNT/i]},
7003             Parse::RecDescent::_tracefirst($_[1]),
7004             q{sysibm_function},
7005             $tracelevel)
7006             if defined $::RD_TRACE;
7007     my $thisprod = $thisrule->{"prods"}[9];
7008     $text = $_[1];
7009     my $_savetext;
7010     @item = (q{sysibm_function});
7011     %item = (__RULE__ => q{sysibm_function});
7012     my $repcount = 0;
7013
7014
7015     Parse::RecDescent::_trace(q{Trying terminal: [/COUNT/i]}, Parse::RecDescent::_tracefirst($text),
7016             q{sysibm_function},
7017             $tracelevel)
7018             if defined $::RD_TRACE;
7019     $lastsep = "";
7020     $expectation->is(q{})->at($text);
7021
7022
7023     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COUNT)//i)
7024     {
7025
7026       $expectation->failed();
7027       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7028               Parse::RecDescent::_tracefirst($text))
7029           if defined $::RD_TRACE;
7030
7031       last;
7032     }
7033     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7034             . $& . q{])},
7035               Parse::RecDescent::_tracefirst($text))
7036           if defined $::RD_TRACE;
7037     push @item, $item{__PATTERN1__}=$&;
7038
7039
7040
7041     Parse::RecDescent::_trace(q{>>Matched production: [/COUNT/i]<<},
7042             Parse::RecDescent::_tracefirst($text),
7043             q{sysibm_function},
7044             $tracelevel)
7045             if defined $::RD_TRACE;
7046     $_matched = 1;
7047     last;
7048   }
7049
7050
7051   while (!$_matched && !$commit)
7052   {
7053
7054     Parse::RecDescent::_trace(q{Trying production: [/COUNT_BIG/i]},
7055             Parse::RecDescent::_tracefirst($_[1]),
7056             q{sysibm_function},
7057             $tracelevel)
7058             if defined $::RD_TRACE;
7059     my $thisprod = $thisrule->{"prods"}[10];
7060     $text = $_[1];
7061     my $_savetext;
7062     @item = (q{sysibm_function});
7063     %item = (__RULE__ => q{sysibm_function});
7064     my $repcount = 0;
7065
7066
7067     Parse::RecDescent::_trace(q{Trying terminal: [/COUNT_BIG/i]}, Parse::RecDescent::_tracefirst($text),
7068             q{sysibm_function},
7069             $tracelevel)
7070             if defined $::RD_TRACE;
7071     $lastsep = "";
7072     $expectation->is(q{})->at($text);
7073
7074
7075     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COUNT_BIG)//i)
7076     {
7077
7078       $expectation->failed();
7079       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7080               Parse::RecDescent::_tracefirst($text))
7081           if defined $::RD_TRACE;
7082
7083       last;
7084     }
7085     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7086             . $& . q{])},
7087               Parse::RecDescent::_tracefirst($text))
7088           if defined $::RD_TRACE;
7089     push @item, $item{__PATTERN1__}=$&;
7090
7091
7092
7093     Parse::RecDescent::_trace(q{>>Matched production: [/COUNT_BIG/i]<<},
7094             Parse::RecDescent::_tracefirst($text),
7095             q{sysibm_function},
7096             $tracelevel)
7097             if defined $::RD_TRACE;
7098     $_matched = 1;
7099     last;
7100   }
7101
7102
7103   while (!$_matched && !$commit)
7104   {
7105
7106     Parse::RecDescent::_trace(q{Trying production: [/COVARIANCE/i, or /COVAR/i]},
7107             Parse::RecDescent::_tracefirst($_[1]),
7108             q{sysibm_function},
7109             $tracelevel)
7110             if defined $::RD_TRACE;
7111     my $thisprod = $thisrule->{"prods"}[11];
7112     $text = $_[1];
7113     my $_savetext;
7114     @item = (q{sysibm_function});
7115     %item = (__RULE__ => q{sysibm_function});
7116     my $repcount = 0;
7117
7118
7119     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
7120           Parse::RecDescent::_tracefirst($text),
7121           q{sysibm_function},
7122           $tracelevel)
7123           if defined $::RD_TRACE;
7124     if (1) { no strict qw{refs};
7125     $expectation->is(q{})->at($text);
7126     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_12_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
7127     {
7128
7129       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]>>},
7130               Parse::RecDescent::_tracefirst($text),
7131               q{sysibm_function},
7132               $tracelevel)
7133               if defined $::RD_TRACE;
7134       $expectation->failed();
7135       last;
7136     }
7137     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_12_of_rule_sysibm_function]<< (return value: [}
7138           . $_tok . q{]},
7139
7140             Parse::RecDescent::_tracefirst($text),
7141             q{sysibm_function},
7142             $tracelevel)
7143             if defined $::RD_TRACE;
7144     $item{q{_alternation_1_of_production_12_of_rule_sysibm_function}} = $_tok;
7145     push @item, $_tok;
7146
7147     }
7148
7149
7150     Parse::RecDescent::_trace(q{>>Matched production: [/COVARIANCE/i, or /COVAR/i]<<},
7151             Parse::RecDescent::_tracefirst($text),
7152             q{sysibm_function},
7153             $tracelevel)
7154             if defined $::RD_TRACE;
7155     $_matched = 1;
7156     last;
7157   }
7158
7159
7160   while (!$_matched && !$commit)
7161   {
7162
7163     Parse::RecDescent::_trace(q{Trying production: [/DATE/i]},
7164             Parse::RecDescent::_tracefirst($_[1]),
7165             q{sysibm_function},
7166             $tracelevel)
7167             if defined $::RD_TRACE;
7168     my $thisprod = $thisrule->{"prods"}[12];
7169     $text = $_[1];
7170     my $_savetext;
7171     @item = (q{sysibm_function});
7172     %item = (__RULE__ => q{sysibm_function});
7173     my $repcount = 0;
7174
7175
7176     Parse::RecDescent::_trace(q{Trying terminal: [/DATE/i]}, Parse::RecDescent::_tracefirst($text),
7177             q{sysibm_function},
7178             $tracelevel)
7179             if defined $::RD_TRACE;
7180     $lastsep = "";
7181     $expectation->is(q{})->at($text);
7182
7183
7184     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DATE)//i)
7185     {
7186
7187       $expectation->failed();
7188       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7189               Parse::RecDescent::_tracefirst($text))
7190           if defined $::RD_TRACE;
7191
7192       last;
7193     }
7194     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7195             . $& . q{])},
7196               Parse::RecDescent::_tracefirst($text))
7197           if defined $::RD_TRACE;
7198     push @item, $item{__PATTERN1__}=$&;
7199
7200
7201
7202     Parse::RecDescent::_trace(q{>>Matched production: [/DATE/i]<<},
7203             Parse::RecDescent::_tracefirst($text),
7204             q{sysibm_function},
7205             $tracelevel)
7206             if defined $::RD_TRACE;
7207     $_matched = 1;
7208     last;
7209   }
7210
7211
7212   while (!$_matched && !$commit)
7213   {
7214
7215     Parse::RecDescent::_trace(q{Trying production: [/DAY/i]},
7216             Parse::RecDescent::_tracefirst($_[1]),
7217             q{sysibm_function},
7218             $tracelevel)
7219             if defined $::RD_TRACE;
7220     my $thisprod = $thisrule->{"prods"}[13];
7221     $text = $_[1];
7222     my $_savetext;
7223     @item = (q{sysibm_function});
7224     %item = (__RULE__ => q{sysibm_function});
7225     my $repcount = 0;
7226
7227
7228     Parse::RecDescent::_trace(q{Trying terminal: [/DAY/i]}, Parse::RecDescent::_tracefirst($text),
7229             q{sysibm_function},
7230             $tracelevel)
7231             if defined $::RD_TRACE;
7232     $lastsep = "";
7233     $expectation->is(q{})->at($text);
7234
7235
7236     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAY)//i)
7237     {
7238
7239       $expectation->failed();
7240       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7241               Parse::RecDescent::_tracefirst($text))
7242           if defined $::RD_TRACE;
7243
7244       last;
7245     }
7246     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7247             . $& . q{])},
7248               Parse::RecDescent::_tracefirst($text))
7249           if defined $::RD_TRACE;
7250     push @item, $item{__PATTERN1__}=$&;
7251
7252
7253
7254     Parse::RecDescent::_trace(q{>>Matched production: [/DAY/i]<<},
7255             Parse::RecDescent::_tracefirst($text),
7256             q{sysibm_function},
7257             $tracelevel)
7258             if defined $::RD_TRACE;
7259     $_matched = 1;
7260     last;
7261   }
7262
7263
7264   while (!$_matched && !$commit)
7265   {
7266
7267     Parse::RecDescent::_trace(q{Trying production: [/DAYS/i]},
7268             Parse::RecDescent::_tracefirst($_[1]),
7269             q{sysibm_function},
7270             $tracelevel)
7271             if defined $::RD_TRACE;
7272     my $thisprod = $thisrule->{"prods"}[14];
7273     $text = $_[1];
7274     my $_savetext;
7275     @item = (q{sysibm_function});
7276     %item = (__RULE__ => q{sysibm_function});
7277     my $repcount = 0;
7278
7279
7280     Parse::RecDescent::_trace(q{Trying terminal: [/DAYS/i]}, Parse::RecDescent::_tracefirst($text),
7281             q{sysibm_function},
7282             $tracelevel)
7283             if defined $::RD_TRACE;
7284     $lastsep = "";
7285     $expectation->is(q{})->at($text);
7286
7287
7288     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYS)//i)
7289     {
7290
7291       $expectation->failed();
7292       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7293               Parse::RecDescent::_tracefirst($text))
7294           if defined $::RD_TRACE;
7295
7296       last;
7297     }
7298     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7299             . $& . q{])},
7300               Parse::RecDescent::_tracefirst($text))
7301           if defined $::RD_TRACE;
7302     push @item, $item{__PATTERN1__}=$&;
7303
7304
7305
7306     Parse::RecDescent::_trace(q{>>Matched production: [/DAYS/i]<<},
7307             Parse::RecDescent::_tracefirst($text),
7308             q{sysibm_function},
7309             $tracelevel)
7310             if defined $::RD_TRACE;
7311     $_matched = 1;
7312     last;
7313   }
7314
7315
7316   while (!$_matched && !$commit)
7317   {
7318
7319     Parse::RecDescent::_trace(q{Trying production: [/DBCLOB/i]},
7320             Parse::RecDescent::_tracefirst($_[1]),
7321             q{sysibm_function},
7322             $tracelevel)
7323             if defined $::RD_TRACE;
7324     my $thisprod = $thisrule->{"prods"}[15];
7325     $text = $_[1];
7326     my $_savetext;
7327     @item = (q{sysibm_function});
7328     %item = (__RULE__ => q{sysibm_function});
7329     my $repcount = 0;
7330
7331
7332     Parse::RecDescent::_trace(q{Trying terminal: [/DBCLOB/i]}, Parse::RecDescent::_tracefirst($text),
7333             q{sysibm_function},
7334             $tracelevel)
7335             if defined $::RD_TRACE;
7336     $lastsep = "";
7337     $expectation->is(q{})->at($text);
7338
7339
7340     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DBCLOB)//i)
7341     {
7342
7343       $expectation->failed();
7344       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7345               Parse::RecDescent::_tracefirst($text))
7346           if defined $::RD_TRACE;
7347
7348       last;
7349     }
7350     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7351             . $& . q{])},
7352               Parse::RecDescent::_tracefirst($text))
7353           if defined $::RD_TRACE;
7354     push @item, $item{__PATTERN1__}=$&;
7355
7356
7357
7358     Parse::RecDescent::_trace(q{>>Matched production: [/DBCLOB/i]<<},
7359             Parse::RecDescent::_tracefirst($text),
7360             q{sysibm_function},
7361             $tracelevel)
7362             if defined $::RD_TRACE;
7363     $_matched = 1;
7364     last;
7365   }
7366
7367
7368   while (!$_matched && !$commit)
7369   {
7370
7371     Parse::RecDescent::_trace(q{Trying production: [/DECIMAL/i, or /DEC/i]},
7372             Parse::RecDescent::_tracefirst($_[1]),
7373             q{sysibm_function},
7374             $tracelevel)
7375             if defined $::RD_TRACE;
7376     my $thisprod = $thisrule->{"prods"}[16];
7377     $text = $_[1];
7378     my $_savetext;
7379     @item = (q{sysibm_function});
7380     %item = (__RULE__ => q{sysibm_function});
7381     my $repcount = 0;
7382
7383
7384     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]},
7385           Parse::RecDescent::_tracefirst($text),
7386           q{sysibm_function},
7387           $tracelevel)
7388           if defined $::RD_TRACE;
7389     if (1) { no strict qw{refs};
7390     $expectation->is(q{})->at($text);
7391     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_17_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
7392     {
7393
7394       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]>>},
7395               Parse::RecDescent::_tracefirst($text),
7396               q{sysibm_function},
7397               $tracelevel)
7398               if defined $::RD_TRACE;
7399       $expectation->failed();
7400       last;
7401     }
7402     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_17_of_rule_sysibm_function]<< (return value: [}
7403           . $_tok . q{]},
7404
7405             Parse::RecDescent::_tracefirst($text),
7406             q{sysibm_function},
7407             $tracelevel)
7408             if defined $::RD_TRACE;
7409     $item{q{_alternation_1_of_production_17_of_rule_sysibm_function}} = $_tok;
7410     push @item, $_tok;
7411
7412     }
7413
7414
7415     Parse::RecDescent::_trace(q{>>Matched production: [/DECIMAL/i, or /DEC/i]<<},
7416             Parse::RecDescent::_tracefirst($text),
7417             q{sysibm_function},
7418             $tracelevel)
7419             if defined $::RD_TRACE;
7420     $_matched = 1;
7421     last;
7422   }
7423
7424
7425   while (!$_matched && !$commit)
7426   {
7427
7428     Parse::RecDescent::_trace(q{Trying production: [/DECRYPT_BIN/i]},
7429             Parse::RecDescent::_tracefirst($_[1]),
7430             q{sysibm_function},
7431             $tracelevel)
7432             if defined $::RD_TRACE;
7433     my $thisprod = $thisrule->{"prods"}[17];
7434     $text = $_[1];
7435     my $_savetext;
7436     @item = (q{sysibm_function});
7437     %item = (__RULE__ => q{sysibm_function});
7438     my $repcount = 0;
7439
7440
7441     Parse::RecDescent::_trace(q{Trying terminal: [/DECRYPT_BIN/i]}, Parse::RecDescent::_tracefirst($text),
7442             q{sysibm_function},
7443             $tracelevel)
7444             if defined $::RD_TRACE;
7445     $lastsep = "";
7446     $expectation->is(q{})->at($text);
7447
7448
7449     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECRYPT_BIN)//i)
7450     {
7451
7452       $expectation->failed();
7453       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7454               Parse::RecDescent::_tracefirst($text))
7455           if defined $::RD_TRACE;
7456
7457       last;
7458     }
7459     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7460             . $& . q{])},
7461               Parse::RecDescent::_tracefirst($text))
7462           if defined $::RD_TRACE;
7463     push @item, $item{__PATTERN1__}=$&;
7464
7465
7466
7467     Parse::RecDescent::_trace(q{>>Matched production: [/DECRYPT_BIN/i]<<},
7468             Parse::RecDescent::_tracefirst($text),
7469             q{sysibm_function},
7470             $tracelevel)
7471             if defined $::RD_TRACE;
7472     $_matched = 1;
7473     last;
7474   }
7475
7476
7477   while (!$_matched && !$commit)
7478   {
7479
7480     Parse::RecDescent::_trace(q{Trying production: [/DECRYPT_CHAR/i]},
7481             Parse::RecDescent::_tracefirst($_[1]),
7482             q{sysibm_function},
7483             $tracelevel)
7484             if defined $::RD_TRACE;
7485     my $thisprod = $thisrule->{"prods"}[18];
7486     $text = $_[1];
7487     my $_savetext;
7488     @item = (q{sysibm_function});
7489     %item = (__RULE__ => q{sysibm_function});
7490     my $repcount = 0;
7491
7492
7493     Parse::RecDescent::_trace(q{Trying terminal: [/DECRYPT_CHAR/i]}, Parse::RecDescent::_tracefirst($text),
7494             q{sysibm_function},
7495             $tracelevel)
7496             if defined $::RD_TRACE;
7497     $lastsep = "";
7498     $expectation->is(q{})->at($text);
7499
7500
7501     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DECRYPT_CHAR)//i)
7502     {
7503
7504       $expectation->failed();
7505       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7506               Parse::RecDescent::_tracefirst($text))
7507           if defined $::RD_TRACE;
7508
7509       last;
7510     }
7511     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7512             . $& . q{])},
7513               Parse::RecDescent::_tracefirst($text))
7514           if defined $::RD_TRACE;
7515     push @item, $item{__PATTERN1__}=$&;
7516
7517
7518
7519     Parse::RecDescent::_trace(q{>>Matched production: [/DECRYPT_CHAR/i]<<},
7520             Parse::RecDescent::_tracefirst($text),
7521             q{sysibm_function},
7522             $tracelevel)
7523             if defined $::RD_TRACE;
7524     $_matched = 1;
7525     last;
7526   }
7527
7528
7529   while (!$_matched && !$commit)
7530   {
7531
7532     Parse::RecDescent::_trace(q{Trying production: [/DEREF/i]},
7533             Parse::RecDescent::_tracefirst($_[1]),
7534             q{sysibm_function},
7535             $tracelevel)
7536             if defined $::RD_TRACE;
7537     my $thisprod = $thisrule->{"prods"}[19];
7538     $text = $_[1];
7539     my $_savetext;
7540     @item = (q{sysibm_function});
7541     %item = (__RULE__ => q{sysibm_function});
7542     my $repcount = 0;
7543
7544
7545     Parse::RecDescent::_trace(q{Trying terminal: [/DEREF/i]}, Parse::RecDescent::_tracefirst($text),
7546             q{sysibm_function},
7547             $tracelevel)
7548             if defined $::RD_TRACE;
7549     $lastsep = "";
7550     $expectation->is(q{})->at($text);
7551
7552
7553     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEREF)//i)
7554     {
7555
7556       $expectation->failed();
7557       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7558               Parse::RecDescent::_tracefirst($text))
7559           if defined $::RD_TRACE;
7560
7561       last;
7562     }
7563     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7564             . $& . q{])},
7565               Parse::RecDescent::_tracefirst($text))
7566           if defined $::RD_TRACE;
7567     push @item, $item{__PATTERN1__}=$&;
7568
7569
7570
7571     Parse::RecDescent::_trace(q{>>Matched production: [/DEREF/i]<<},
7572             Parse::RecDescent::_tracefirst($text),
7573             q{sysibm_function},
7574             $tracelevel)
7575             if defined $::RD_TRACE;
7576     $_matched = 1;
7577     last;
7578   }
7579
7580
7581   while (!$_matched && !$commit)
7582   {
7583
7584     Parse::RecDescent::_trace(q{Trying production: [/DIGITS/i]},
7585             Parse::RecDescent::_tracefirst($_[1]),
7586             q{sysibm_function},
7587             $tracelevel)
7588             if defined $::RD_TRACE;
7589     my $thisprod = $thisrule->{"prods"}[20];
7590     $text = $_[1];
7591     my $_savetext;
7592     @item = (q{sysibm_function});
7593     %item = (__RULE__ => q{sysibm_function});
7594     my $repcount = 0;
7595
7596
7597     Parse::RecDescent::_trace(q{Trying terminal: [/DIGITS/i]}, Parse::RecDescent::_tracefirst($text),
7598             q{sysibm_function},
7599             $tracelevel)
7600             if defined $::RD_TRACE;
7601     $lastsep = "";
7602     $expectation->is(q{})->at($text);
7603
7604
7605     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DIGITS)//i)
7606     {
7607
7608       $expectation->failed();
7609       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7610               Parse::RecDescent::_tracefirst($text))
7611           if defined $::RD_TRACE;
7612
7613       last;
7614     }
7615     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7616             . $& . q{])},
7617               Parse::RecDescent::_tracefirst($text))
7618           if defined $::RD_TRACE;
7619     push @item, $item{__PATTERN1__}=$&;
7620
7621
7622
7623     Parse::RecDescent::_trace(q{>>Matched production: [/DIGITS/i]<<},
7624             Parse::RecDescent::_tracefirst($text),
7625             q{sysibm_function},
7626             $tracelevel)
7627             if defined $::RD_TRACE;
7628     $_matched = 1;
7629     last;
7630   }
7631
7632
7633   while (!$_matched && !$commit)
7634   {
7635
7636     Parse::RecDescent::_trace(q{Trying production: [/DLCOMMENT/i]},
7637             Parse::RecDescent::_tracefirst($_[1]),
7638             q{sysibm_function},
7639             $tracelevel)
7640             if defined $::RD_TRACE;
7641     my $thisprod = $thisrule->{"prods"}[21];
7642     $text = $_[1];
7643     my $_savetext;
7644     @item = (q{sysibm_function});
7645     %item = (__RULE__ => q{sysibm_function});
7646     my $repcount = 0;
7647
7648
7649     Parse::RecDescent::_trace(q{Trying terminal: [/DLCOMMENT/i]}, Parse::RecDescent::_tracefirst($text),
7650             q{sysibm_function},
7651             $tracelevel)
7652             if defined $::RD_TRACE;
7653     $lastsep = "";
7654     $expectation->is(q{})->at($text);
7655
7656
7657     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLCOMMENT)//i)
7658     {
7659
7660       $expectation->failed();
7661       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7662               Parse::RecDescent::_tracefirst($text))
7663           if defined $::RD_TRACE;
7664
7665       last;
7666     }
7667     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7668             . $& . q{])},
7669               Parse::RecDescent::_tracefirst($text))
7670           if defined $::RD_TRACE;
7671     push @item, $item{__PATTERN1__}=$&;
7672
7673
7674
7675     Parse::RecDescent::_trace(q{>>Matched production: [/DLCOMMENT/i]<<},
7676             Parse::RecDescent::_tracefirst($text),
7677             q{sysibm_function},
7678             $tracelevel)
7679             if defined $::RD_TRACE;
7680     $_matched = 1;
7681     last;
7682   }
7683
7684
7685   while (!$_matched && !$commit)
7686   {
7687
7688     Parse::RecDescent::_trace(q{Trying production: [/DLLINKTYPE/i]},
7689             Parse::RecDescent::_tracefirst($_[1]),
7690             q{sysibm_function},
7691             $tracelevel)
7692             if defined $::RD_TRACE;
7693     my $thisprod = $thisrule->{"prods"}[22];
7694     $text = $_[1];
7695     my $_savetext;
7696     @item = (q{sysibm_function});
7697     %item = (__RULE__ => q{sysibm_function});
7698     my $repcount = 0;
7699
7700
7701     Parse::RecDescent::_trace(q{Trying terminal: [/DLLINKTYPE/i]}, Parse::RecDescent::_tracefirst($text),
7702             q{sysibm_function},
7703             $tracelevel)
7704             if defined $::RD_TRACE;
7705     $lastsep = "";
7706     $expectation->is(q{})->at($text);
7707
7708
7709     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLLINKTYPE)//i)
7710     {
7711
7712       $expectation->failed();
7713       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7714               Parse::RecDescent::_tracefirst($text))
7715           if defined $::RD_TRACE;
7716
7717       last;
7718     }
7719     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7720             . $& . q{])},
7721               Parse::RecDescent::_tracefirst($text))
7722           if defined $::RD_TRACE;
7723     push @item, $item{__PATTERN1__}=$&;
7724
7725
7726
7727     Parse::RecDescent::_trace(q{>>Matched production: [/DLLINKTYPE/i]<<},
7728             Parse::RecDescent::_tracefirst($text),
7729             q{sysibm_function},
7730             $tracelevel)
7731             if defined $::RD_TRACE;
7732     $_matched = 1;
7733     last;
7734   }
7735
7736
7737   while (!$_matched && !$commit)
7738   {
7739
7740     Parse::RecDescent::_trace(q{Trying production: [/DLURLCOMPLETE/i]},
7741             Parse::RecDescent::_tracefirst($_[1]),
7742             q{sysibm_function},
7743             $tracelevel)
7744             if defined $::RD_TRACE;
7745     my $thisprod = $thisrule->{"prods"}[23];
7746     $text = $_[1];
7747     my $_savetext;
7748     @item = (q{sysibm_function});
7749     %item = (__RULE__ => q{sysibm_function});
7750     my $repcount = 0;
7751
7752
7753     Parse::RecDescent::_trace(q{Trying terminal: [/DLURLCOMPLETE/i]}, Parse::RecDescent::_tracefirst($text),
7754             q{sysibm_function},
7755             $tracelevel)
7756             if defined $::RD_TRACE;
7757     $lastsep = "";
7758     $expectation->is(q{})->at($text);
7759
7760
7761     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLCOMPLETE)//i)
7762     {
7763
7764       $expectation->failed();
7765       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7766               Parse::RecDescent::_tracefirst($text))
7767           if defined $::RD_TRACE;
7768
7769       last;
7770     }
7771     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7772             . $& . q{])},
7773               Parse::RecDescent::_tracefirst($text))
7774           if defined $::RD_TRACE;
7775     push @item, $item{__PATTERN1__}=$&;
7776
7777
7778
7779     Parse::RecDescent::_trace(q{>>Matched production: [/DLURLCOMPLETE/i]<<},
7780             Parse::RecDescent::_tracefirst($text),
7781             q{sysibm_function},
7782             $tracelevel)
7783             if defined $::RD_TRACE;
7784     $_matched = 1;
7785     last;
7786   }
7787
7788
7789   while (!$_matched && !$commit)
7790   {
7791
7792     Parse::RecDescent::_trace(q{Trying production: [/DLURLPATH/i]},
7793             Parse::RecDescent::_tracefirst($_[1]),
7794             q{sysibm_function},
7795             $tracelevel)
7796             if defined $::RD_TRACE;
7797     my $thisprod = $thisrule->{"prods"}[24];
7798     $text = $_[1];
7799     my $_savetext;
7800     @item = (q{sysibm_function});
7801     %item = (__RULE__ => q{sysibm_function});
7802     my $repcount = 0;
7803
7804
7805     Parse::RecDescent::_trace(q{Trying terminal: [/DLURLPATH/i]}, Parse::RecDescent::_tracefirst($text),
7806             q{sysibm_function},
7807             $tracelevel)
7808             if defined $::RD_TRACE;
7809     $lastsep = "";
7810     $expectation->is(q{})->at($text);
7811
7812
7813     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLPATH)//i)
7814     {
7815
7816       $expectation->failed();
7817       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7818               Parse::RecDescent::_tracefirst($text))
7819           if defined $::RD_TRACE;
7820
7821       last;
7822     }
7823     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7824             . $& . q{])},
7825               Parse::RecDescent::_tracefirst($text))
7826           if defined $::RD_TRACE;
7827     push @item, $item{__PATTERN1__}=$&;
7828
7829
7830
7831     Parse::RecDescent::_trace(q{>>Matched production: [/DLURLPATH/i]<<},
7832             Parse::RecDescent::_tracefirst($text),
7833             q{sysibm_function},
7834             $tracelevel)
7835             if defined $::RD_TRACE;
7836     $_matched = 1;
7837     last;
7838   }
7839
7840
7841   while (!$_matched && !$commit)
7842   {
7843
7844     Parse::RecDescent::_trace(q{Trying production: [/DLURLPATHONLY/i]},
7845             Parse::RecDescent::_tracefirst($_[1]),
7846             q{sysibm_function},
7847             $tracelevel)
7848             if defined $::RD_TRACE;
7849     my $thisprod = $thisrule->{"prods"}[25];
7850     $text = $_[1];
7851     my $_savetext;
7852     @item = (q{sysibm_function});
7853     %item = (__RULE__ => q{sysibm_function});
7854     my $repcount = 0;
7855
7856
7857     Parse::RecDescent::_trace(q{Trying terminal: [/DLURLPATHONLY/i]}, Parse::RecDescent::_tracefirst($text),
7858             q{sysibm_function},
7859             $tracelevel)
7860             if defined $::RD_TRACE;
7861     $lastsep = "";
7862     $expectation->is(q{})->at($text);
7863
7864
7865     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLPATHONLY)//i)
7866     {
7867
7868       $expectation->failed();
7869       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7870               Parse::RecDescent::_tracefirst($text))
7871           if defined $::RD_TRACE;
7872
7873       last;
7874     }
7875     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7876             . $& . q{])},
7877               Parse::RecDescent::_tracefirst($text))
7878           if defined $::RD_TRACE;
7879     push @item, $item{__PATTERN1__}=$&;
7880
7881
7882
7883     Parse::RecDescent::_trace(q{>>Matched production: [/DLURLPATHONLY/i]<<},
7884             Parse::RecDescent::_tracefirst($text),
7885             q{sysibm_function},
7886             $tracelevel)
7887             if defined $::RD_TRACE;
7888     $_matched = 1;
7889     last;
7890   }
7891
7892
7893   while (!$_matched && !$commit)
7894   {
7895
7896     Parse::RecDescent::_trace(q{Trying production: [/DLURLSCHEME/i]},
7897             Parse::RecDescent::_tracefirst($_[1]),
7898             q{sysibm_function},
7899             $tracelevel)
7900             if defined $::RD_TRACE;
7901     my $thisprod = $thisrule->{"prods"}[26];
7902     $text = $_[1];
7903     my $_savetext;
7904     @item = (q{sysibm_function});
7905     %item = (__RULE__ => q{sysibm_function});
7906     my $repcount = 0;
7907
7908
7909     Parse::RecDescent::_trace(q{Trying terminal: [/DLURLSCHEME/i]}, Parse::RecDescent::_tracefirst($text),
7910             q{sysibm_function},
7911             $tracelevel)
7912             if defined $::RD_TRACE;
7913     $lastsep = "";
7914     $expectation->is(q{})->at($text);
7915
7916
7917     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLSCHEME)//i)
7918     {
7919
7920       $expectation->failed();
7921       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7922               Parse::RecDescent::_tracefirst($text))
7923           if defined $::RD_TRACE;
7924
7925       last;
7926     }
7927     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7928             . $& . q{])},
7929               Parse::RecDescent::_tracefirst($text))
7930           if defined $::RD_TRACE;
7931     push @item, $item{__PATTERN1__}=$&;
7932
7933
7934
7935     Parse::RecDescent::_trace(q{>>Matched production: [/DLURLSCHEME/i]<<},
7936             Parse::RecDescent::_tracefirst($text),
7937             q{sysibm_function},
7938             $tracelevel)
7939             if defined $::RD_TRACE;
7940     $_matched = 1;
7941     last;
7942   }
7943
7944
7945   while (!$_matched && !$commit)
7946   {
7947
7948     Parse::RecDescent::_trace(q{Trying production: [/DLURLSERVER/i]},
7949             Parse::RecDescent::_tracefirst($_[1]),
7950             q{sysibm_function},
7951             $tracelevel)
7952             if defined $::RD_TRACE;
7953     my $thisprod = $thisrule->{"prods"}[27];
7954     $text = $_[1];
7955     my $_savetext;
7956     @item = (q{sysibm_function});
7957     %item = (__RULE__ => q{sysibm_function});
7958     my $repcount = 0;
7959
7960
7961     Parse::RecDescent::_trace(q{Trying terminal: [/DLURLSERVER/i]}, Parse::RecDescent::_tracefirst($text),
7962             q{sysibm_function},
7963             $tracelevel)
7964             if defined $::RD_TRACE;
7965     $lastsep = "";
7966     $expectation->is(q{})->at($text);
7967
7968
7969     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLURLSERVER)//i)
7970     {
7971
7972       $expectation->failed();
7973       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
7974               Parse::RecDescent::_tracefirst($text))
7975           if defined $::RD_TRACE;
7976
7977       last;
7978     }
7979     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
7980             . $& . q{])},
7981               Parse::RecDescent::_tracefirst($text))
7982           if defined $::RD_TRACE;
7983     push @item, $item{__PATTERN1__}=$&;
7984
7985
7986
7987     Parse::RecDescent::_trace(q{>>Matched production: [/DLURLSERVER/i]<<},
7988             Parse::RecDescent::_tracefirst($text),
7989             q{sysibm_function},
7990             $tracelevel)
7991             if defined $::RD_TRACE;
7992     $_matched = 1;
7993     last;
7994   }
7995
7996
7997   while (!$_matched && !$commit)
7998   {
7999
8000     Parse::RecDescent::_trace(q{Trying production: [/DLVALUE/i]},
8001             Parse::RecDescent::_tracefirst($_[1]),
8002             q{sysibm_function},
8003             $tracelevel)
8004             if defined $::RD_TRACE;
8005     my $thisprod = $thisrule->{"prods"}[28];
8006     $text = $_[1];
8007     my $_savetext;
8008     @item = (q{sysibm_function});
8009     %item = (__RULE__ => q{sysibm_function});
8010     my $repcount = 0;
8011
8012
8013     Parse::RecDescent::_trace(q{Trying terminal: [/DLVALUE/i]}, Parse::RecDescent::_tracefirst($text),
8014             q{sysibm_function},
8015             $tracelevel)
8016             if defined $::RD_TRACE;
8017     $lastsep = "";
8018     $expectation->is(q{})->at($text);
8019
8020
8021     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DLVALUE)//i)
8022     {
8023
8024       $expectation->failed();
8025       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8026               Parse::RecDescent::_tracefirst($text))
8027           if defined $::RD_TRACE;
8028
8029       last;
8030     }
8031     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8032             . $& . q{])},
8033               Parse::RecDescent::_tracefirst($text))
8034           if defined $::RD_TRACE;
8035     push @item, $item{__PATTERN1__}=$&;
8036
8037
8038
8039     Parse::RecDescent::_trace(q{>>Matched production: [/DLVALUE/i]<<},
8040             Parse::RecDescent::_tracefirst($text),
8041             q{sysibm_function},
8042             $tracelevel)
8043             if defined $::RD_TRACE;
8044     $_matched = 1;
8045     last;
8046   }
8047
8048
8049   while (!$_matched && !$commit)
8050   {
8051
8052     Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]},
8053             Parse::RecDescent::_tracefirst($_[1]),
8054             q{sysibm_function},
8055             $tracelevel)
8056             if defined $::RD_TRACE;
8057     my $thisprod = $thisrule->{"prods"}[29];
8058     $text = $_[1];
8059     my $_savetext;
8060     @item = (q{sysibm_function});
8061     %item = (__RULE__ => q{sysibm_function});
8062     my $repcount = 0;
8063
8064
8065     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]},
8066           Parse::RecDescent::_tracefirst($text),
8067           q{sysibm_function},
8068           $tracelevel)
8069           if defined $::RD_TRACE;
8070     if (1) { no strict qw{refs};
8071     $expectation->is(q{})->at($text);
8072     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_30_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
8073     {
8074
8075       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]>>},
8076               Parse::RecDescent::_tracefirst($text),
8077               q{sysibm_function},
8078               $tracelevel)
8079               if defined $::RD_TRACE;
8080       $expectation->failed();
8081       last;
8082     }
8083     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_30_of_rule_sysibm_function]<< (return value: [}
8084           . $_tok . q{]},
8085
8086             Parse::RecDescent::_tracefirst($text),
8087             q{sysibm_function},
8088             $tracelevel)
8089             if defined $::RD_TRACE;
8090     $item{q{_alternation_1_of_production_30_of_rule_sysibm_function}} = $_tok;
8091     push @item, $_tok;
8092
8093     }
8094
8095
8096     Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i, or /DOUBLE_PRECISION/i]<<},
8097             Parse::RecDescent::_tracefirst($text),
8098             q{sysibm_function},
8099             $tracelevel)
8100             if defined $::RD_TRACE;
8101     $_matched = 1;
8102     last;
8103   }
8104
8105
8106   while (!$_matched && !$commit)
8107   {
8108
8109     Parse::RecDescent::_trace(q{Trying production: [/ENCRYPT/i]},
8110             Parse::RecDescent::_tracefirst($_[1]),
8111             q{sysibm_function},
8112             $tracelevel)
8113             if defined $::RD_TRACE;
8114     my $thisprod = $thisrule->{"prods"}[30];
8115     $text = $_[1];
8116     my $_savetext;
8117     @item = (q{sysibm_function});
8118     %item = (__RULE__ => q{sysibm_function});
8119     my $repcount = 0;
8120
8121
8122     Parse::RecDescent::_trace(q{Trying terminal: [/ENCRYPT/i]}, Parse::RecDescent::_tracefirst($text),
8123             q{sysibm_function},
8124             $tracelevel)
8125             if defined $::RD_TRACE;
8126     $lastsep = "";
8127     $expectation->is(q{})->at($text);
8128
8129
8130     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ENCRYPT)//i)
8131     {
8132
8133       $expectation->failed();
8134       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8135               Parse::RecDescent::_tracefirst($text))
8136           if defined $::RD_TRACE;
8137
8138       last;
8139     }
8140     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8141             . $& . q{])},
8142               Parse::RecDescent::_tracefirst($text))
8143           if defined $::RD_TRACE;
8144     push @item, $item{__PATTERN1__}=$&;
8145
8146
8147
8148     Parse::RecDescent::_trace(q{>>Matched production: [/ENCRYPT/i]<<},
8149             Parse::RecDescent::_tracefirst($text),
8150             q{sysibm_function},
8151             $tracelevel)
8152             if defined $::RD_TRACE;
8153     $_matched = 1;
8154     last;
8155   }
8156
8157
8158   while (!$_matched && !$commit)
8159   {
8160
8161     Parse::RecDescent::_trace(q{Trying production: [/EVENT_MON_STATE/i]},
8162             Parse::RecDescent::_tracefirst($_[1]),
8163             q{sysibm_function},
8164             $tracelevel)
8165             if defined $::RD_TRACE;
8166     my $thisprod = $thisrule->{"prods"}[31];
8167     $text = $_[1];
8168     my $_savetext;
8169     @item = (q{sysibm_function});
8170     %item = (__RULE__ => q{sysibm_function});
8171     my $repcount = 0;
8172
8173
8174     Parse::RecDescent::_trace(q{Trying terminal: [/EVENT_MON_STATE/i]}, Parse::RecDescent::_tracefirst($text),
8175             q{sysibm_function},
8176             $tracelevel)
8177             if defined $::RD_TRACE;
8178     $lastsep = "";
8179     $expectation->is(q{})->at($text);
8180
8181
8182     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:EVENT_MON_STATE)//i)
8183     {
8184
8185       $expectation->failed();
8186       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8187               Parse::RecDescent::_tracefirst($text))
8188           if defined $::RD_TRACE;
8189
8190       last;
8191     }
8192     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8193             . $& . q{])},
8194               Parse::RecDescent::_tracefirst($text))
8195           if defined $::RD_TRACE;
8196     push @item, $item{__PATTERN1__}=$&;
8197
8198
8199
8200     Parse::RecDescent::_trace(q{>>Matched production: [/EVENT_MON_STATE/i]<<},
8201             Parse::RecDescent::_tracefirst($text),
8202             q{sysibm_function},
8203             $tracelevel)
8204             if defined $::RD_TRACE;
8205     $_matched = 1;
8206     last;
8207   }
8208
8209
8210   while (!$_matched && !$commit)
8211   {
8212
8213     Parse::RecDescent::_trace(q{Trying production: [/FLOAT/i]},
8214             Parse::RecDescent::_tracefirst($_[1]),
8215             q{sysibm_function},
8216             $tracelevel)
8217             if defined $::RD_TRACE;
8218     my $thisprod = $thisrule->{"prods"}[32];
8219     $text = $_[1];
8220     my $_savetext;
8221     @item = (q{sysibm_function});
8222     %item = (__RULE__ => q{sysibm_function});
8223     my $repcount = 0;
8224
8225
8226     Parse::RecDescent::_trace(q{Trying terminal: [/FLOAT/i]}, Parse::RecDescent::_tracefirst($text),
8227             q{sysibm_function},
8228             $tracelevel)
8229             if defined $::RD_TRACE;
8230     $lastsep = "";
8231     $expectation->is(q{})->at($text);
8232
8233
8234     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FLOAT)//i)
8235     {
8236
8237       $expectation->failed();
8238       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8239               Parse::RecDescent::_tracefirst($text))
8240           if defined $::RD_TRACE;
8241
8242       last;
8243     }
8244     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8245             . $& . q{])},
8246               Parse::RecDescent::_tracefirst($text))
8247           if defined $::RD_TRACE;
8248     push @item, $item{__PATTERN1__}=$&;
8249
8250
8251
8252     Parse::RecDescent::_trace(q{>>Matched production: [/FLOAT/i]<<},
8253             Parse::RecDescent::_tracefirst($text),
8254             q{sysibm_function},
8255             $tracelevel)
8256             if defined $::RD_TRACE;
8257     $_matched = 1;
8258     last;
8259   }
8260
8261
8262   while (!$_matched && !$commit)
8263   {
8264
8265     Parse::RecDescent::_trace(q{Trying production: [/GETHINT/i]},
8266             Parse::RecDescent::_tracefirst($_[1]),
8267             q{sysibm_function},
8268             $tracelevel)
8269             if defined $::RD_TRACE;
8270     my $thisprod = $thisrule->{"prods"}[33];
8271     $text = $_[1];
8272     my $_savetext;
8273     @item = (q{sysibm_function});
8274     %item = (__RULE__ => q{sysibm_function});
8275     my $repcount = 0;
8276
8277
8278     Parse::RecDescent::_trace(q{Trying terminal: [/GETHINT/i]}, Parse::RecDescent::_tracefirst($text),
8279             q{sysibm_function},
8280             $tracelevel)
8281             if defined $::RD_TRACE;
8282     $lastsep = "";
8283     $expectation->is(q{})->at($text);
8284
8285
8286     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GETHINT)//i)
8287     {
8288
8289       $expectation->failed();
8290       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8291               Parse::RecDescent::_tracefirst($text))
8292           if defined $::RD_TRACE;
8293
8294       last;
8295     }
8296     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8297             . $& . q{])},
8298               Parse::RecDescent::_tracefirst($text))
8299           if defined $::RD_TRACE;
8300     push @item, $item{__PATTERN1__}=$&;
8301
8302
8303
8304     Parse::RecDescent::_trace(q{>>Matched production: [/GETHINT/i]<<},
8305             Parse::RecDescent::_tracefirst($text),
8306             q{sysibm_function},
8307             $tracelevel)
8308             if defined $::RD_TRACE;
8309     $_matched = 1;
8310     last;
8311   }
8312
8313
8314   while (!$_matched && !$commit)
8315   {
8316
8317     Parse::RecDescent::_trace(q{Trying production: [/GENERATE_UNIQUE/i]},
8318             Parse::RecDescent::_tracefirst($_[1]),
8319             q{sysibm_function},
8320             $tracelevel)
8321             if defined $::RD_TRACE;
8322     my $thisprod = $thisrule->{"prods"}[34];
8323     $text = $_[1];
8324     my $_savetext;
8325     @item = (q{sysibm_function});
8326     %item = (__RULE__ => q{sysibm_function});
8327     my $repcount = 0;
8328
8329
8330     Parse::RecDescent::_trace(q{Trying terminal: [/GENERATE_UNIQUE/i]}, Parse::RecDescent::_tracefirst($text),
8331             q{sysibm_function},
8332             $tracelevel)
8333             if defined $::RD_TRACE;
8334     $lastsep = "";
8335     $expectation->is(q{})->at($text);
8336
8337
8338     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GENERATE_UNIQUE)//i)
8339     {
8340
8341       $expectation->failed();
8342       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8343               Parse::RecDescent::_tracefirst($text))
8344           if defined $::RD_TRACE;
8345
8346       last;
8347     }
8348     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8349             . $& . q{])},
8350               Parse::RecDescent::_tracefirst($text))
8351           if defined $::RD_TRACE;
8352     push @item, $item{__PATTERN1__}=$&;
8353
8354
8355
8356     Parse::RecDescent::_trace(q{>>Matched production: [/GENERATE_UNIQUE/i]<<},
8357             Parse::RecDescent::_tracefirst($text),
8358             q{sysibm_function},
8359             $tracelevel)
8360             if defined $::RD_TRACE;
8361     $_matched = 1;
8362     last;
8363   }
8364
8365
8366   while (!$_matched && !$commit)
8367   {
8368
8369     Parse::RecDescent::_trace(q{Trying production: [/GRAPHIC/i]},
8370             Parse::RecDescent::_tracefirst($_[1]),
8371             q{sysibm_function},
8372             $tracelevel)
8373             if defined $::RD_TRACE;
8374     my $thisprod = $thisrule->{"prods"}[35];
8375     $text = $_[1];
8376     my $_savetext;
8377     @item = (q{sysibm_function});
8378     %item = (__RULE__ => q{sysibm_function});
8379     my $repcount = 0;
8380
8381
8382     Parse::RecDescent::_trace(q{Trying terminal: [/GRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
8383             q{sysibm_function},
8384             $tracelevel)
8385             if defined $::RD_TRACE;
8386     $lastsep = "";
8387     $expectation->is(q{})->at($text);
8388
8389
8390     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GRAPHIC)//i)
8391     {
8392
8393       $expectation->failed();
8394       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8395               Parse::RecDescent::_tracefirst($text))
8396           if defined $::RD_TRACE;
8397
8398       last;
8399     }
8400     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8401             . $& . q{])},
8402               Parse::RecDescent::_tracefirst($text))
8403           if defined $::RD_TRACE;
8404     push @item, $item{__PATTERN1__}=$&;
8405
8406
8407
8408     Parse::RecDescent::_trace(q{>>Matched production: [/GRAPHIC/i]<<},
8409             Parse::RecDescent::_tracefirst($text),
8410             q{sysibm_function},
8411             $tracelevel)
8412             if defined $::RD_TRACE;
8413     $_matched = 1;
8414     last;
8415   }
8416
8417
8418   while (!$_matched && !$commit)
8419   {
8420
8421     Parse::RecDescent::_trace(q{Trying production: [/GROUPING/i]},
8422             Parse::RecDescent::_tracefirst($_[1]),
8423             q{sysibm_function},
8424             $tracelevel)
8425             if defined $::RD_TRACE;
8426     my $thisprod = $thisrule->{"prods"}[36];
8427     $text = $_[1];
8428     my $_savetext;
8429     @item = (q{sysibm_function});
8430     %item = (__RULE__ => q{sysibm_function});
8431     my $repcount = 0;
8432
8433
8434     Parse::RecDescent::_trace(q{Trying terminal: [/GROUPING/i]}, Parse::RecDescent::_tracefirst($text),
8435             q{sysibm_function},
8436             $tracelevel)
8437             if defined $::RD_TRACE;
8438     $lastsep = "";
8439     $expectation->is(q{})->at($text);
8440
8441
8442     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GROUPING)//i)
8443     {
8444
8445       $expectation->failed();
8446       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8447               Parse::RecDescent::_tracefirst($text))
8448           if defined $::RD_TRACE;
8449
8450       last;
8451     }
8452     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8453             . $& . q{])},
8454               Parse::RecDescent::_tracefirst($text))
8455           if defined $::RD_TRACE;
8456     push @item, $item{__PATTERN1__}=$&;
8457
8458
8459
8460     Parse::RecDescent::_trace(q{>>Matched production: [/GROUPING/i]<<},
8461             Parse::RecDescent::_tracefirst($text),
8462             q{sysibm_function},
8463             $tracelevel)
8464             if defined $::RD_TRACE;
8465     $_matched = 1;
8466     last;
8467   }
8468
8469
8470   while (!$_matched && !$commit)
8471   {
8472
8473     Parse::RecDescent::_trace(q{Trying production: [/HEX/i]},
8474             Parse::RecDescent::_tracefirst($_[1]),
8475             q{sysibm_function},
8476             $tracelevel)
8477             if defined $::RD_TRACE;
8478     my $thisprod = $thisrule->{"prods"}[37];
8479     $text = $_[1];
8480     my $_savetext;
8481     @item = (q{sysibm_function});
8482     %item = (__RULE__ => q{sysibm_function});
8483     my $repcount = 0;
8484
8485
8486     Parse::RecDescent::_trace(q{Trying terminal: [/HEX/i]}, Parse::RecDescent::_tracefirst($text),
8487             q{sysibm_function},
8488             $tracelevel)
8489             if defined $::RD_TRACE;
8490     $lastsep = "";
8491     $expectation->is(q{})->at($text);
8492
8493
8494     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HEX)//i)
8495     {
8496
8497       $expectation->failed();
8498       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8499               Parse::RecDescent::_tracefirst($text))
8500           if defined $::RD_TRACE;
8501
8502       last;
8503     }
8504     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8505             . $& . q{])},
8506               Parse::RecDescent::_tracefirst($text))
8507           if defined $::RD_TRACE;
8508     push @item, $item{__PATTERN1__}=$&;
8509
8510
8511
8512     Parse::RecDescent::_trace(q{>>Matched production: [/HEX/i]<<},
8513             Parse::RecDescent::_tracefirst($text),
8514             q{sysibm_function},
8515             $tracelevel)
8516             if defined $::RD_TRACE;
8517     $_matched = 1;
8518     last;
8519   }
8520
8521
8522   while (!$_matched && !$commit)
8523   {
8524
8525     Parse::RecDescent::_trace(q{Trying production: [/HOUR/i]},
8526             Parse::RecDescent::_tracefirst($_[1]),
8527             q{sysibm_function},
8528             $tracelevel)
8529             if defined $::RD_TRACE;
8530     my $thisprod = $thisrule->{"prods"}[38];
8531     $text = $_[1];
8532     my $_savetext;
8533     @item = (q{sysibm_function});
8534     %item = (__RULE__ => q{sysibm_function});
8535     my $repcount = 0;
8536
8537
8538     Parse::RecDescent::_trace(q{Trying terminal: [/HOUR/i]}, Parse::RecDescent::_tracefirst($text),
8539             q{sysibm_function},
8540             $tracelevel)
8541             if defined $::RD_TRACE;
8542     $lastsep = "";
8543     $expectation->is(q{})->at($text);
8544
8545
8546     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HOUR)//i)
8547     {
8548
8549       $expectation->failed();
8550       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8551               Parse::RecDescent::_tracefirst($text))
8552           if defined $::RD_TRACE;
8553
8554       last;
8555     }
8556     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8557             . $& . q{])},
8558               Parse::RecDescent::_tracefirst($text))
8559           if defined $::RD_TRACE;
8560     push @item, $item{__PATTERN1__}=$&;
8561
8562
8563
8564     Parse::RecDescent::_trace(q{>>Matched production: [/HOUR/i]<<},
8565             Parse::RecDescent::_tracefirst($text),
8566             q{sysibm_function},
8567             $tracelevel)
8568             if defined $::RD_TRACE;
8569     $_matched = 1;
8570     last;
8571   }
8572
8573
8574   while (!$_matched && !$commit)
8575   {
8576
8577     Parse::RecDescent::_trace(q{Trying production: [/IDENTITY_VAL_LOCAL/i]},
8578             Parse::RecDescent::_tracefirst($_[1]),
8579             q{sysibm_function},
8580             $tracelevel)
8581             if defined $::RD_TRACE;
8582     my $thisprod = $thisrule->{"prods"}[39];
8583     $text = $_[1];
8584     my $_savetext;
8585     @item = (q{sysibm_function});
8586     %item = (__RULE__ => q{sysibm_function});
8587     my $repcount = 0;
8588
8589
8590     Parse::RecDescent::_trace(q{Trying terminal: [/IDENTITY_VAL_LOCAL/i]}, Parse::RecDescent::_tracefirst($text),
8591             q{sysibm_function},
8592             $tracelevel)
8593             if defined $::RD_TRACE;
8594     $lastsep = "";
8595     $expectation->is(q{})->at($text);
8596
8597
8598     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:IDENTITY_VAL_LOCAL)//i)
8599     {
8600
8601       $expectation->failed();
8602       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8603               Parse::RecDescent::_tracefirst($text))
8604           if defined $::RD_TRACE;
8605
8606       last;
8607     }
8608     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8609             . $& . q{])},
8610               Parse::RecDescent::_tracefirst($text))
8611           if defined $::RD_TRACE;
8612     push @item, $item{__PATTERN1__}=$&;
8613
8614
8615
8616     Parse::RecDescent::_trace(q{>>Matched production: [/IDENTITY_VAL_LOCAL/i]<<},
8617             Parse::RecDescent::_tracefirst($text),
8618             q{sysibm_function},
8619             $tracelevel)
8620             if defined $::RD_TRACE;
8621     $_matched = 1;
8622     last;
8623   }
8624
8625
8626   while (!$_matched && !$commit)
8627   {
8628
8629     Parse::RecDescent::_trace(q{Trying production: [/INTEGER/i, or /INT/]},
8630             Parse::RecDescent::_tracefirst($_[1]),
8631             q{sysibm_function},
8632             $tracelevel)
8633             if defined $::RD_TRACE;
8634     my $thisprod = $thisrule->{"prods"}[40];
8635     $text = $_[1];
8636     my $_savetext;
8637     @item = (q{sysibm_function});
8638     %item = (__RULE__ => q{sysibm_function});
8639     my $repcount = 0;
8640
8641
8642     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
8643           Parse::RecDescent::_tracefirst($text),
8644           q{sysibm_function},
8645           $tracelevel)
8646           if defined $::RD_TRACE;
8647     if (1) { no strict qw{refs};
8648     $expectation->is(q{})->at($text);
8649     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_41_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
8650     {
8651
8652       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]>>},
8653               Parse::RecDescent::_tracefirst($text),
8654               q{sysibm_function},
8655               $tracelevel)
8656               if defined $::RD_TRACE;
8657       $expectation->failed();
8658       last;
8659     }
8660     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_41_of_rule_sysibm_function]<< (return value: [}
8661           . $_tok . q{]},
8662
8663             Parse::RecDescent::_tracefirst($text),
8664             q{sysibm_function},
8665             $tracelevel)
8666             if defined $::RD_TRACE;
8667     $item{q{_alternation_1_of_production_41_of_rule_sysibm_function}} = $_tok;
8668     push @item, $_tok;
8669
8670     }
8671
8672
8673     Parse::RecDescent::_trace(q{>>Matched production: [/INTEGER/i, or /INT/]<<},
8674             Parse::RecDescent::_tracefirst($text),
8675             q{sysibm_function},
8676             $tracelevel)
8677             if defined $::RD_TRACE;
8678     $_matched = 1;
8679     last;
8680   }
8681
8682
8683   while (!$_matched && !$commit)
8684   {
8685
8686     Parse::RecDescent::_trace(q{Trying production: [/LCASE/i, or /LOWER/]},
8687             Parse::RecDescent::_tracefirst($_[1]),
8688             q{sysibm_function},
8689             $tracelevel)
8690             if defined $::RD_TRACE;
8691     my $thisprod = $thisrule->{"prods"}[41];
8692     $text = $_[1];
8693     my $_savetext;
8694     @item = (q{sysibm_function});
8695     %item = (__RULE__ => q{sysibm_function});
8696     my $repcount = 0;
8697
8698
8699     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
8700           Parse::RecDescent::_tracefirst($text),
8701           q{sysibm_function},
8702           $tracelevel)
8703           if defined $::RD_TRACE;
8704     if (1) { no strict qw{refs};
8705     $expectation->is(q{})->at($text);
8706     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_42_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
8707     {
8708
8709       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]>>},
8710               Parse::RecDescent::_tracefirst($text),
8711               q{sysibm_function},
8712               $tracelevel)
8713               if defined $::RD_TRACE;
8714       $expectation->failed();
8715       last;
8716     }
8717     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_42_of_rule_sysibm_function]<< (return value: [}
8718           . $_tok . q{]},
8719
8720             Parse::RecDescent::_tracefirst($text),
8721             q{sysibm_function},
8722             $tracelevel)
8723             if defined $::RD_TRACE;
8724     $item{q{_alternation_1_of_production_42_of_rule_sysibm_function}} = $_tok;
8725     push @item, $_tok;
8726
8727     }
8728
8729
8730     Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i, or /LOWER/]<<},
8731             Parse::RecDescent::_tracefirst($text),
8732             q{sysibm_function},
8733             $tracelevel)
8734             if defined $::RD_TRACE;
8735     $_matched = 1;
8736     last;
8737   }
8738
8739
8740   while (!$_matched && !$commit)
8741   {
8742
8743     Parse::RecDescent::_trace(q{Trying production: [/LENGTH/i]},
8744             Parse::RecDescent::_tracefirst($_[1]),
8745             q{sysibm_function},
8746             $tracelevel)
8747             if defined $::RD_TRACE;
8748     my $thisprod = $thisrule->{"prods"}[42];
8749     $text = $_[1];
8750     my $_savetext;
8751     @item = (q{sysibm_function});
8752     %item = (__RULE__ => q{sysibm_function});
8753     my $repcount = 0;
8754
8755
8756     Parse::RecDescent::_trace(q{Trying terminal: [/LENGTH/i]}, Parse::RecDescent::_tracefirst($text),
8757             q{sysibm_function},
8758             $tracelevel)
8759             if defined $::RD_TRACE;
8760     $lastsep = "";
8761     $expectation->is(q{})->at($text);
8762
8763
8764     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LENGTH)//i)
8765     {
8766
8767       $expectation->failed();
8768       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8769               Parse::RecDescent::_tracefirst($text))
8770           if defined $::RD_TRACE;
8771
8772       last;
8773     }
8774     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8775             . $& . q{])},
8776               Parse::RecDescent::_tracefirst($text))
8777           if defined $::RD_TRACE;
8778     push @item, $item{__PATTERN1__}=$&;
8779
8780
8781
8782     Parse::RecDescent::_trace(q{>>Matched production: [/LENGTH/i]<<},
8783             Parse::RecDescent::_tracefirst($text),
8784             q{sysibm_function},
8785             $tracelevel)
8786             if defined $::RD_TRACE;
8787     $_matched = 1;
8788     last;
8789   }
8790
8791
8792   while (!$_matched && !$commit)
8793   {
8794
8795     Parse::RecDescent::_trace(q{Trying production: [/LONG_VARCHAR/i]},
8796             Parse::RecDescent::_tracefirst($_[1]),
8797             q{sysibm_function},
8798             $tracelevel)
8799             if defined $::RD_TRACE;
8800     my $thisprod = $thisrule->{"prods"}[43];
8801     $text = $_[1];
8802     my $_savetext;
8803     @item = (q{sysibm_function});
8804     %item = (__RULE__ => q{sysibm_function});
8805     my $repcount = 0;
8806
8807
8808     Parse::RecDescent::_trace(q{Trying terminal: [/LONG_VARCHAR/i]}, Parse::RecDescent::_tracefirst($text),
8809             q{sysibm_function},
8810             $tracelevel)
8811             if defined $::RD_TRACE;
8812     $lastsep = "";
8813     $expectation->is(q{})->at($text);
8814
8815
8816     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LONG_VARCHAR)//i)
8817     {
8818
8819       $expectation->failed();
8820       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8821               Parse::RecDescent::_tracefirst($text))
8822           if defined $::RD_TRACE;
8823
8824       last;
8825     }
8826     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8827             . $& . q{])},
8828               Parse::RecDescent::_tracefirst($text))
8829           if defined $::RD_TRACE;
8830     push @item, $item{__PATTERN1__}=$&;
8831
8832
8833
8834     Parse::RecDescent::_trace(q{>>Matched production: [/LONG_VARCHAR/i]<<},
8835             Parse::RecDescent::_tracefirst($text),
8836             q{sysibm_function},
8837             $tracelevel)
8838             if defined $::RD_TRACE;
8839     $_matched = 1;
8840     last;
8841   }
8842
8843
8844   while (!$_matched && !$commit)
8845   {
8846
8847     Parse::RecDescent::_trace(q{Trying production: [/LONG_VARGRAPHIC/i]},
8848             Parse::RecDescent::_tracefirst($_[1]),
8849             q{sysibm_function},
8850             $tracelevel)
8851             if defined $::RD_TRACE;
8852     my $thisprod = $thisrule->{"prods"}[44];
8853     $text = $_[1];
8854     my $_savetext;
8855     @item = (q{sysibm_function});
8856     %item = (__RULE__ => q{sysibm_function});
8857     my $repcount = 0;
8858
8859
8860     Parse::RecDescent::_trace(q{Trying terminal: [/LONG_VARGRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
8861             q{sysibm_function},
8862             $tracelevel)
8863             if defined $::RD_TRACE;
8864     $lastsep = "";
8865     $expectation->is(q{})->at($text);
8866
8867
8868     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LONG_VARGRAPHIC)//i)
8869     {
8870
8871       $expectation->failed();
8872       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8873               Parse::RecDescent::_tracefirst($text))
8874           if defined $::RD_TRACE;
8875
8876       last;
8877     }
8878     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8879             . $& . q{])},
8880               Parse::RecDescent::_tracefirst($text))
8881           if defined $::RD_TRACE;
8882     push @item, $item{__PATTERN1__}=$&;
8883
8884
8885
8886     Parse::RecDescent::_trace(q{>>Matched production: [/LONG_VARGRAPHIC/i]<<},
8887             Parse::RecDescent::_tracefirst($text),
8888             q{sysibm_function},
8889             $tracelevel)
8890             if defined $::RD_TRACE;
8891     $_matched = 1;
8892     last;
8893   }
8894
8895
8896   while (!$_matched && !$commit)
8897   {
8898
8899     Parse::RecDescent::_trace(q{Trying production: [/LTRIM/i]},
8900             Parse::RecDescent::_tracefirst($_[1]),
8901             q{sysibm_function},
8902             $tracelevel)
8903             if defined $::RD_TRACE;
8904     my $thisprod = $thisrule->{"prods"}[45];
8905     $text = $_[1];
8906     my $_savetext;
8907     @item = (q{sysibm_function});
8908     %item = (__RULE__ => q{sysibm_function});
8909     my $repcount = 0;
8910
8911
8912     Parse::RecDescent::_trace(q{Trying terminal: [/LTRIM/i]}, Parse::RecDescent::_tracefirst($text),
8913             q{sysibm_function},
8914             $tracelevel)
8915             if defined $::RD_TRACE;
8916     $lastsep = "";
8917     $expectation->is(q{})->at($text);
8918
8919
8920     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LTRIM)//i)
8921     {
8922
8923       $expectation->failed();
8924       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8925               Parse::RecDescent::_tracefirst($text))
8926           if defined $::RD_TRACE;
8927
8928       last;
8929     }
8930     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8931             . $& . q{])},
8932               Parse::RecDescent::_tracefirst($text))
8933           if defined $::RD_TRACE;
8934     push @item, $item{__PATTERN1__}=$&;
8935
8936
8937
8938     Parse::RecDescent::_trace(q{>>Matched production: [/LTRIM/i]<<},
8939             Parse::RecDescent::_tracefirst($text),
8940             q{sysibm_function},
8941             $tracelevel)
8942             if defined $::RD_TRACE;
8943     $_matched = 1;
8944     last;
8945   }
8946
8947
8948   while (!$_matched && !$commit)
8949   {
8950
8951     Parse::RecDescent::_trace(q{Trying production: [/MAX/i]},
8952             Parse::RecDescent::_tracefirst($_[1]),
8953             q{sysibm_function},
8954             $tracelevel)
8955             if defined $::RD_TRACE;
8956     my $thisprod = $thisrule->{"prods"}[46];
8957     $text = $_[1];
8958     my $_savetext;
8959     @item = (q{sysibm_function});
8960     %item = (__RULE__ => q{sysibm_function});
8961     my $repcount = 0;
8962
8963
8964     Parse::RecDescent::_trace(q{Trying terminal: [/MAX/i]}, Parse::RecDescent::_tracefirst($text),
8965             q{sysibm_function},
8966             $tracelevel)
8967             if defined $::RD_TRACE;
8968     $lastsep = "";
8969     $expectation->is(q{})->at($text);
8970
8971
8972     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MAX)//i)
8973     {
8974
8975       $expectation->failed();
8976       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
8977               Parse::RecDescent::_tracefirst($text))
8978           if defined $::RD_TRACE;
8979
8980       last;
8981     }
8982     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
8983             . $& . q{])},
8984               Parse::RecDescent::_tracefirst($text))
8985           if defined $::RD_TRACE;
8986     push @item, $item{__PATTERN1__}=$&;
8987
8988
8989
8990     Parse::RecDescent::_trace(q{>>Matched production: [/MAX/i]<<},
8991             Parse::RecDescent::_tracefirst($text),
8992             q{sysibm_function},
8993             $tracelevel)
8994             if defined $::RD_TRACE;
8995     $_matched = 1;
8996     last;
8997   }
8998
8999
9000   while (!$_matched && !$commit)
9001   {
9002
9003     Parse::RecDescent::_trace(q{Trying production: [/MICROSECOND/i]},
9004             Parse::RecDescent::_tracefirst($_[1]),
9005             q{sysibm_function},
9006             $tracelevel)
9007             if defined $::RD_TRACE;
9008     my $thisprod = $thisrule->{"prods"}[47];
9009     $text = $_[1];
9010     my $_savetext;
9011     @item = (q{sysibm_function});
9012     %item = (__RULE__ => q{sysibm_function});
9013     my $repcount = 0;
9014
9015
9016     Parse::RecDescent::_trace(q{Trying terminal: [/MICROSECOND/i]}, Parse::RecDescent::_tracefirst($text),
9017             q{sysibm_function},
9018             $tracelevel)
9019             if defined $::RD_TRACE;
9020     $lastsep = "";
9021     $expectation->is(q{})->at($text);
9022
9023
9024     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MICROSECOND)//i)
9025     {
9026
9027       $expectation->failed();
9028       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9029               Parse::RecDescent::_tracefirst($text))
9030           if defined $::RD_TRACE;
9031
9032       last;
9033     }
9034     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9035             . $& . q{])},
9036               Parse::RecDescent::_tracefirst($text))
9037           if defined $::RD_TRACE;
9038     push @item, $item{__PATTERN1__}=$&;
9039
9040
9041
9042     Parse::RecDescent::_trace(q{>>Matched production: [/MICROSECOND/i]<<},
9043             Parse::RecDescent::_tracefirst($text),
9044             q{sysibm_function},
9045             $tracelevel)
9046             if defined $::RD_TRACE;
9047     $_matched = 1;
9048     last;
9049   }
9050
9051
9052   while (!$_matched && !$commit)
9053   {
9054
9055     Parse::RecDescent::_trace(q{Trying production: [/MIN/i]},
9056             Parse::RecDescent::_tracefirst($_[1]),
9057             q{sysibm_function},
9058             $tracelevel)
9059             if defined $::RD_TRACE;
9060     my $thisprod = $thisrule->{"prods"}[48];
9061     $text = $_[1];
9062     my $_savetext;
9063     @item = (q{sysibm_function});
9064     %item = (__RULE__ => q{sysibm_function});
9065     my $repcount = 0;
9066
9067
9068     Parse::RecDescent::_trace(q{Trying terminal: [/MIN/i]}, Parse::RecDescent::_tracefirst($text),
9069             q{sysibm_function},
9070             $tracelevel)
9071             if defined $::RD_TRACE;
9072     $lastsep = "";
9073     $expectation->is(q{})->at($text);
9074
9075
9076     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MIN)//i)
9077     {
9078
9079       $expectation->failed();
9080       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9081               Parse::RecDescent::_tracefirst($text))
9082           if defined $::RD_TRACE;
9083
9084       last;
9085     }
9086     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9087             . $& . q{])},
9088               Parse::RecDescent::_tracefirst($text))
9089           if defined $::RD_TRACE;
9090     push @item, $item{__PATTERN1__}=$&;
9091
9092
9093
9094     Parse::RecDescent::_trace(q{>>Matched production: [/MIN/i]<<},
9095             Parse::RecDescent::_tracefirst($text),
9096             q{sysibm_function},
9097             $tracelevel)
9098             if defined $::RD_TRACE;
9099     $_matched = 1;
9100     last;
9101   }
9102
9103
9104   while (!$_matched && !$commit)
9105   {
9106
9107     Parse::RecDescent::_trace(q{Trying production: [/MINUTE/i]},
9108             Parse::RecDescent::_tracefirst($_[1]),
9109             q{sysibm_function},
9110             $tracelevel)
9111             if defined $::RD_TRACE;
9112     my $thisprod = $thisrule->{"prods"}[49];
9113     $text = $_[1];
9114     my $_savetext;
9115     @item = (q{sysibm_function});
9116     %item = (__RULE__ => q{sysibm_function});
9117     my $repcount = 0;
9118
9119
9120     Parse::RecDescent::_trace(q{Trying terminal: [/MINUTE/i]}, Parse::RecDescent::_tracefirst($text),
9121             q{sysibm_function},
9122             $tracelevel)
9123             if defined $::RD_TRACE;
9124     $lastsep = "";
9125     $expectation->is(q{})->at($text);
9126
9127
9128     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MINUTE)//i)
9129     {
9130
9131       $expectation->failed();
9132       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9133               Parse::RecDescent::_tracefirst($text))
9134           if defined $::RD_TRACE;
9135
9136       last;
9137     }
9138     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9139             . $& . q{])},
9140               Parse::RecDescent::_tracefirst($text))
9141           if defined $::RD_TRACE;
9142     push @item, $item{__PATTERN1__}=$&;
9143
9144
9145
9146     Parse::RecDescent::_trace(q{>>Matched production: [/MINUTE/i]<<},
9147             Parse::RecDescent::_tracefirst($text),
9148             q{sysibm_function},
9149             $tracelevel)
9150             if defined $::RD_TRACE;
9151     $_matched = 1;
9152     last;
9153   }
9154
9155
9156   while (!$_matched && !$commit)
9157   {
9158
9159     Parse::RecDescent::_trace(q{Trying production: [/MONTH/i]},
9160             Parse::RecDescent::_tracefirst($_[1]),
9161             q{sysibm_function},
9162             $tracelevel)
9163             if defined $::RD_TRACE;
9164     my $thisprod = $thisrule->{"prods"}[50];
9165     $text = $_[1];
9166     my $_savetext;
9167     @item = (q{sysibm_function});
9168     %item = (__RULE__ => q{sysibm_function});
9169     my $repcount = 0;
9170
9171
9172     Parse::RecDescent::_trace(q{Trying terminal: [/MONTH/i]}, Parse::RecDescent::_tracefirst($text),
9173             q{sysibm_function},
9174             $tracelevel)
9175             if defined $::RD_TRACE;
9176     $lastsep = "";
9177     $expectation->is(q{})->at($text);
9178
9179
9180     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTH)//i)
9181     {
9182
9183       $expectation->failed();
9184       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9185               Parse::RecDescent::_tracefirst($text))
9186           if defined $::RD_TRACE;
9187
9188       last;
9189     }
9190     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9191             . $& . q{])},
9192               Parse::RecDescent::_tracefirst($text))
9193           if defined $::RD_TRACE;
9194     push @item, $item{__PATTERN1__}=$&;
9195
9196
9197
9198     Parse::RecDescent::_trace(q{>>Matched production: [/MONTH/i]<<},
9199             Parse::RecDescent::_tracefirst($text),
9200             q{sysibm_function},
9201             $tracelevel)
9202             if defined $::RD_TRACE;
9203     $_matched = 1;
9204     last;
9205   }
9206
9207
9208   while (!$_matched && !$commit)
9209   {
9210
9211     Parse::RecDescent::_trace(q{Trying production: [/MULTIPLY_ACT/i]},
9212             Parse::RecDescent::_tracefirst($_[1]),
9213             q{sysibm_function},
9214             $tracelevel)
9215             if defined $::RD_TRACE;
9216     my $thisprod = $thisrule->{"prods"}[51];
9217     $text = $_[1];
9218     my $_savetext;
9219     @item = (q{sysibm_function});
9220     %item = (__RULE__ => q{sysibm_function});
9221     my $repcount = 0;
9222
9223
9224     Parse::RecDescent::_trace(q{Trying terminal: [/MULTIPLY_ACT/i]}, Parse::RecDescent::_tracefirst($text),
9225             q{sysibm_function},
9226             $tracelevel)
9227             if defined $::RD_TRACE;
9228     $lastsep = "";
9229     $expectation->is(q{})->at($text);
9230
9231
9232     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MULTIPLY_ACT)//i)
9233     {
9234
9235       $expectation->failed();
9236       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9237               Parse::RecDescent::_tracefirst($text))
9238           if defined $::RD_TRACE;
9239
9240       last;
9241     }
9242     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9243             . $& . q{])},
9244               Parse::RecDescent::_tracefirst($text))
9245           if defined $::RD_TRACE;
9246     push @item, $item{__PATTERN1__}=$&;
9247
9248
9249
9250     Parse::RecDescent::_trace(q{>>Matched production: [/MULTIPLY_ACT/i]<<},
9251             Parse::RecDescent::_tracefirst($text),
9252             q{sysibm_function},
9253             $tracelevel)
9254             if defined $::RD_TRACE;
9255     $_matched = 1;
9256     last;
9257   }
9258
9259
9260   while (!$_matched && !$commit)
9261   {
9262
9263     Parse::RecDescent::_trace(q{Trying production: [/NODENUMBER/i]},
9264             Parse::RecDescent::_tracefirst($_[1]),
9265             q{sysibm_function},
9266             $tracelevel)
9267             if defined $::RD_TRACE;
9268     my $thisprod = $thisrule->{"prods"}[52];
9269     $text = $_[1];
9270     my $_savetext;
9271     @item = (q{sysibm_function});
9272     %item = (__RULE__ => q{sysibm_function});
9273     my $repcount = 0;
9274
9275
9276     Parse::RecDescent::_trace(q{Trying terminal: [/NODENUMBER/i]}, Parse::RecDescent::_tracefirst($text),
9277             q{sysibm_function},
9278             $tracelevel)
9279             if defined $::RD_TRACE;
9280     $lastsep = "";
9281     $expectation->is(q{})->at($text);
9282
9283
9284     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NODENUMBER)//i)
9285     {
9286
9287       $expectation->failed();
9288       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9289               Parse::RecDescent::_tracefirst($text))
9290           if defined $::RD_TRACE;
9291
9292       last;
9293     }
9294     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9295             . $& . q{])},
9296               Parse::RecDescent::_tracefirst($text))
9297           if defined $::RD_TRACE;
9298     push @item, $item{__PATTERN1__}=$&;
9299
9300
9301
9302     Parse::RecDescent::_trace(q{>>Matched production: [/NODENUMBER/i]<<},
9303             Parse::RecDescent::_tracefirst($text),
9304             q{sysibm_function},
9305             $tracelevel)
9306             if defined $::RD_TRACE;
9307     $_matched = 1;
9308     last;
9309   }
9310
9311
9312   while (!$_matched && !$commit)
9313   {
9314
9315     Parse::RecDescent::_trace(q{Trying production: [/NULLIF/i]},
9316             Parse::RecDescent::_tracefirst($_[1]),
9317             q{sysibm_function},
9318             $tracelevel)
9319             if defined $::RD_TRACE;
9320     my $thisprod = $thisrule->{"prods"}[53];
9321     $text = $_[1];
9322     my $_savetext;
9323     @item = (q{sysibm_function});
9324     %item = (__RULE__ => q{sysibm_function});
9325     my $repcount = 0;
9326
9327
9328     Parse::RecDescent::_trace(q{Trying terminal: [/NULLIF/i]}, Parse::RecDescent::_tracefirst($text),
9329             q{sysibm_function},
9330             $tracelevel)
9331             if defined $::RD_TRACE;
9332     $lastsep = "";
9333     $expectation->is(q{})->at($text);
9334
9335
9336     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLIF)//i)
9337     {
9338
9339       $expectation->failed();
9340       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9341               Parse::RecDescent::_tracefirst($text))
9342           if defined $::RD_TRACE;
9343
9344       last;
9345     }
9346     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9347             . $& . q{])},
9348               Parse::RecDescent::_tracefirst($text))
9349           if defined $::RD_TRACE;
9350     push @item, $item{__PATTERN1__}=$&;
9351
9352
9353
9354     Parse::RecDescent::_trace(q{>>Matched production: [/NULLIF/i]<<},
9355             Parse::RecDescent::_tracefirst($text),
9356             q{sysibm_function},
9357             $tracelevel)
9358             if defined $::RD_TRACE;
9359     $_matched = 1;
9360     last;
9361   }
9362
9363
9364   while (!$_matched && !$commit)
9365   {
9366
9367     Parse::RecDescent::_trace(q{Trying production: [/PARTITON/i]},
9368             Parse::RecDescent::_tracefirst($_[1]),
9369             q{sysibm_function},
9370             $tracelevel)
9371             if defined $::RD_TRACE;
9372     my $thisprod = $thisrule->{"prods"}[54];
9373     $text = $_[1];
9374     my $_savetext;
9375     @item = (q{sysibm_function});
9376     %item = (__RULE__ => q{sysibm_function});
9377     my $repcount = 0;
9378
9379
9380     Parse::RecDescent::_trace(q{Trying terminal: [/PARTITON/i]}, Parse::RecDescent::_tracefirst($text),
9381             q{sysibm_function},
9382             $tracelevel)
9383             if defined $::RD_TRACE;
9384     $lastsep = "";
9385     $expectation->is(q{})->at($text);
9386
9387
9388     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PARTITON)//i)
9389     {
9390
9391       $expectation->failed();
9392       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9393               Parse::RecDescent::_tracefirst($text))
9394           if defined $::RD_TRACE;
9395
9396       last;
9397     }
9398     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9399             . $& . q{])},
9400               Parse::RecDescent::_tracefirst($text))
9401           if defined $::RD_TRACE;
9402     push @item, $item{__PATTERN1__}=$&;
9403
9404
9405
9406     Parse::RecDescent::_trace(q{>>Matched production: [/PARTITON/i]<<},
9407             Parse::RecDescent::_tracefirst($text),
9408             q{sysibm_function},
9409             $tracelevel)
9410             if defined $::RD_TRACE;
9411     $_matched = 1;
9412     last;
9413   }
9414
9415
9416   while (!$_matched && !$commit)
9417   {
9418
9419     Parse::RecDescent::_trace(q{Trying production: [/POSSTR/i]},
9420             Parse::RecDescent::_tracefirst($_[1]),
9421             q{sysibm_function},
9422             $tracelevel)
9423             if defined $::RD_TRACE;
9424     my $thisprod = $thisrule->{"prods"}[55];
9425     $text = $_[1];
9426     my $_savetext;
9427     @item = (q{sysibm_function});
9428     %item = (__RULE__ => q{sysibm_function});
9429     my $repcount = 0;
9430
9431
9432     Parse::RecDescent::_trace(q{Trying terminal: [/POSSTR/i]}, Parse::RecDescent::_tracefirst($text),
9433             q{sysibm_function},
9434             $tracelevel)
9435             if defined $::RD_TRACE;
9436     $lastsep = "";
9437     $expectation->is(q{})->at($text);
9438
9439
9440     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:POSSTR)//i)
9441     {
9442
9443       $expectation->failed();
9444       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9445               Parse::RecDescent::_tracefirst($text))
9446           if defined $::RD_TRACE;
9447
9448       last;
9449     }
9450     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9451             . $& . q{])},
9452               Parse::RecDescent::_tracefirst($text))
9453           if defined $::RD_TRACE;
9454     push @item, $item{__PATTERN1__}=$&;
9455
9456
9457
9458     Parse::RecDescent::_trace(q{>>Matched production: [/POSSTR/i]<<},
9459             Parse::RecDescent::_tracefirst($text),
9460             q{sysibm_function},
9461             $tracelevel)
9462             if defined $::RD_TRACE;
9463     $_matched = 1;
9464     last;
9465   }
9466
9467
9468   while (!$_matched && !$commit)
9469   {
9470
9471     Parse::RecDescent::_trace(q{Trying production: [/RAISE_ERROR/i]},
9472             Parse::RecDescent::_tracefirst($_[1]),
9473             q{sysibm_function},
9474             $tracelevel)
9475             if defined $::RD_TRACE;
9476     my $thisprod = $thisrule->{"prods"}[56];
9477     $text = $_[1];
9478     my $_savetext;
9479     @item = (q{sysibm_function});
9480     %item = (__RULE__ => q{sysibm_function});
9481     my $repcount = 0;
9482
9483
9484     Parse::RecDescent::_trace(q{Trying terminal: [/RAISE_ERROR/i]}, Parse::RecDescent::_tracefirst($text),
9485             q{sysibm_function},
9486             $tracelevel)
9487             if defined $::RD_TRACE;
9488     $lastsep = "";
9489     $expectation->is(q{})->at($text);
9490
9491
9492     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RAISE_ERROR)//i)
9493     {
9494
9495       $expectation->failed();
9496       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9497               Parse::RecDescent::_tracefirst($text))
9498           if defined $::RD_TRACE;
9499
9500       last;
9501     }
9502     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9503             . $& . q{])},
9504               Parse::RecDescent::_tracefirst($text))
9505           if defined $::RD_TRACE;
9506     push @item, $item{__PATTERN1__}=$&;
9507
9508
9509
9510     Parse::RecDescent::_trace(q{>>Matched production: [/RAISE_ERROR/i]<<},
9511             Parse::RecDescent::_tracefirst($text),
9512             q{sysibm_function},
9513             $tracelevel)
9514             if defined $::RD_TRACE;
9515     $_matched = 1;
9516     last;
9517   }
9518
9519
9520   while (!$_matched && !$commit)
9521   {
9522
9523     Parse::RecDescent::_trace(q{Trying production: [/REAL/i]},
9524             Parse::RecDescent::_tracefirst($_[1]),
9525             q{sysibm_function},
9526             $tracelevel)
9527             if defined $::RD_TRACE;
9528     my $thisprod = $thisrule->{"prods"}[57];
9529     $text = $_[1];
9530     my $_savetext;
9531     @item = (q{sysibm_function});
9532     %item = (__RULE__ => q{sysibm_function});
9533     my $repcount = 0;
9534
9535
9536     Parse::RecDescent::_trace(q{Trying terminal: [/REAL/i]}, Parse::RecDescent::_tracefirst($text),
9537             q{sysibm_function},
9538             $tracelevel)
9539             if defined $::RD_TRACE;
9540     $lastsep = "";
9541     $expectation->is(q{})->at($text);
9542
9543
9544     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REAL)//i)
9545     {
9546
9547       $expectation->failed();
9548       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9549               Parse::RecDescent::_tracefirst($text))
9550           if defined $::RD_TRACE;
9551
9552       last;
9553     }
9554     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9555             . $& . q{])},
9556               Parse::RecDescent::_tracefirst($text))
9557           if defined $::RD_TRACE;
9558     push @item, $item{__PATTERN1__}=$&;
9559
9560
9561
9562     Parse::RecDescent::_trace(q{>>Matched production: [/REAL/i]<<},
9563             Parse::RecDescent::_tracefirst($text),
9564             q{sysibm_function},
9565             $tracelevel)
9566             if defined $::RD_TRACE;
9567     $_matched = 1;
9568     last;
9569   }
9570
9571
9572   while (!$_matched && !$commit)
9573   {
9574
9575     Parse::RecDescent::_trace(q{Trying production: [/REC2XML/i]},
9576             Parse::RecDescent::_tracefirst($_[1]),
9577             q{sysibm_function},
9578             $tracelevel)
9579             if defined $::RD_TRACE;
9580     my $thisprod = $thisrule->{"prods"}[58];
9581     $text = $_[1];
9582     my $_savetext;
9583     @item = (q{sysibm_function});
9584     %item = (__RULE__ => q{sysibm_function});
9585     my $repcount = 0;
9586
9587
9588     Parse::RecDescent::_trace(q{Trying terminal: [/REC2XML/i]}, Parse::RecDescent::_tracefirst($text),
9589             q{sysibm_function},
9590             $tracelevel)
9591             if defined $::RD_TRACE;
9592     $lastsep = "";
9593     $expectation->is(q{})->at($text);
9594
9595
9596     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REC2XML)//i)
9597     {
9598
9599       $expectation->failed();
9600       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9601               Parse::RecDescent::_tracefirst($text))
9602           if defined $::RD_TRACE;
9603
9604       last;
9605     }
9606     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9607             . $& . q{])},
9608               Parse::RecDescent::_tracefirst($text))
9609           if defined $::RD_TRACE;
9610     push @item, $item{__PATTERN1__}=$&;
9611
9612
9613
9614     Parse::RecDescent::_trace(q{>>Matched production: [/REC2XML/i]<<},
9615             Parse::RecDescent::_tracefirst($text),
9616             q{sysibm_function},
9617             $tracelevel)
9618             if defined $::RD_TRACE;
9619     $_matched = 1;
9620     last;
9621   }
9622
9623
9624   while (!$_matched && !$commit)
9625   {
9626
9627     Parse::RecDescent::_trace(q{Trying production: [/REGR_AVGX/i]},
9628             Parse::RecDescent::_tracefirst($_[1]),
9629             q{sysibm_function},
9630             $tracelevel)
9631             if defined $::RD_TRACE;
9632     my $thisprod = $thisrule->{"prods"}[59];
9633     $text = $_[1];
9634     my $_savetext;
9635     @item = (q{sysibm_function});
9636     %item = (__RULE__ => q{sysibm_function});
9637     my $repcount = 0;
9638
9639
9640     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_AVGX/i]}, Parse::RecDescent::_tracefirst($text),
9641             q{sysibm_function},
9642             $tracelevel)
9643             if defined $::RD_TRACE;
9644     $lastsep = "";
9645     $expectation->is(q{})->at($text);
9646
9647
9648     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_AVGX)//i)
9649     {
9650
9651       $expectation->failed();
9652       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9653               Parse::RecDescent::_tracefirst($text))
9654           if defined $::RD_TRACE;
9655
9656       last;
9657     }
9658     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9659             . $& . q{])},
9660               Parse::RecDescent::_tracefirst($text))
9661           if defined $::RD_TRACE;
9662     push @item, $item{__PATTERN1__}=$&;
9663
9664
9665
9666     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_AVGX/i]<<},
9667             Parse::RecDescent::_tracefirst($text),
9668             q{sysibm_function},
9669             $tracelevel)
9670             if defined $::RD_TRACE;
9671     $_matched = 1;
9672     last;
9673   }
9674
9675
9676   while (!$_matched && !$commit)
9677   {
9678
9679     Parse::RecDescent::_trace(q{Trying production: [/REGR_AVGY/i]},
9680             Parse::RecDescent::_tracefirst($_[1]),
9681             q{sysibm_function},
9682             $tracelevel)
9683             if defined $::RD_TRACE;
9684     my $thisprod = $thisrule->{"prods"}[60];
9685     $text = $_[1];
9686     my $_savetext;
9687     @item = (q{sysibm_function});
9688     %item = (__RULE__ => q{sysibm_function});
9689     my $repcount = 0;
9690
9691
9692     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_AVGY/i]}, Parse::RecDescent::_tracefirst($text),
9693             q{sysibm_function},
9694             $tracelevel)
9695             if defined $::RD_TRACE;
9696     $lastsep = "";
9697     $expectation->is(q{})->at($text);
9698
9699
9700     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_AVGY)//i)
9701     {
9702
9703       $expectation->failed();
9704       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9705               Parse::RecDescent::_tracefirst($text))
9706           if defined $::RD_TRACE;
9707
9708       last;
9709     }
9710     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9711             . $& . q{])},
9712               Parse::RecDescent::_tracefirst($text))
9713           if defined $::RD_TRACE;
9714     push @item, $item{__PATTERN1__}=$&;
9715
9716
9717
9718     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_AVGY/i]<<},
9719             Parse::RecDescent::_tracefirst($text),
9720             q{sysibm_function},
9721             $tracelevel)
9722             if defined $::RD_TRACE;
9723     $_matched = 1;
9724     last;
9725   }
9726
9727
9728   while (!$_matched && !$commit)
9729   {
9730
9731     Parse::RecDescent::_trace(q{Trying production: [/REGR_COUNT/i]},
9732             Parse::RecDescent::_tracefirst($_[1]),
9733             q{sysibm_function},
9734             $tracelevel)
9735             if defined $::RD_TRACE;
9736     my $thisprod = $thisrule->{"prods"}[61];
9737     $text = $_[1];
9738     my $_savetext;
9739     @item = (q{sysibm_function});
9740     %item = (__RULE__ => q{sysibm_function});
9741     my $repcount = 0;
9742
9743
9744     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_COUNT/i]}, Parse::RecDescent::_tracefirst($text),
9745             q{sysibm_function},
9746             $tracelevel)
9747             if defined $::RD_TRACE;
9748     $lastsep = "";
9749     $expectation->is(q{})->at($text);
9750
9751
9752     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_COUNT)//i)
9753     {
9754
9755       $expectation->failed();
9756       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9757               Parse::RecDescent::_tracefirst($text))
9758           if defined $::RD_TRACE;
9759
9760       last;
9761     }
9762     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9763             . $& . q{])},
9764               Parse::RecDescent::_tracefirst($text))
9765           if defined $::RD_TRACE;
9766     push @item, $item{__PATTERN1__}=$&;
9767
9768
9769
9770     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_COUNT/i]<<},
9771             Parse::RecDescent::_tracefirst($text),
9772             q{sysibm_function},
9773             $tracelevel)
9774             if defined $::RD_TRACE;
9775     $_matched = 1;
9776     last;
9777   }
9778
9779
9780   while (!$_matched && !$commit)
9781   {
9782
9783     Parse::RecDescent::_trace(q{Trying production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]},
9784             Parse::RecDescent::_tracefirst($_[1]),
9785             q{sysibm_function},
9786             $tracelevel)
9787             if defined $::RD_TRACE;
9788     my $thisprod = $thisrule->{"prods"}[62];
9789     $text = $_[1];
9790     my $_savetext;
9791     @item = (q{sysibm_function});
9792     %item = (__RULE__ => q{sysibm_function});
9793     my $repcount = 0;
9794
9795
9796     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
9797           Parse::RecDescent::_tracefirst($text),
9798           q{sysibm_function},
9799           $tracelevel)
9800           if defined $::RD_TRACE;
9801     if (1) { no strict qw{refs};
9802     $expectation->is(q{})->at($text);
9803     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_63_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
9804     {
9805
9806       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]>>},
9807               Parse::RecDescent::_tracefirst($text),
9808               q{sysibm_function},
9809               $tracelevel)
9810               if defined $::RD_TRACE;
9811       $expectation->failed();
9812       last;
9813     }
9814     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_63_of_rule_sysibm_function]<< (return value: [}
9815           . $_tok . q{]},
9816
9817             Parse::RecDescent::_tracefirst($text),
9818             q{sysibm_function},
9819             $tracelevel)
9820             if defined $::RD_TRACE;
9821     $item{q{_alternation_1_of_production_63_of_rule_sysibm_function}} = $_tok;
9822     push @item, $_tok;
9823
9824     }
9825
9826
9827     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_INTERCEPT/i, or /REGR_ICPT/i]<<},
9828             Parse::RecDescent::_tracefirst($text),
9829             q{sysibm_function},
9830             $tracelevel)
9831             if defined $::RD_TRACE;
9832     $_matched = 1;
9833     last;
9834   }
9835
9836
9837   while (!$_matched && !$commit)
9838   {
9839
9840     Parse::RecDescent::_trace(q{Trying production: [/REGR_R2/i]},
9841             Parse::RecDescent::_tracefirst($_[1]),
9842             q{sysibm_function},
9843             $tracelevel)
9844             if defined $::RD_TRACE;
9845     my $thisprod = $thisrule->{"prods"}[63];
9846     $text = $_[1];
9847     my $_savetext;
9848     @item = (q{sysibm_function});
9849     %item = (__RULE__ => q{sysibm_function});
9850     my $repcount = 0;
9851
9852
9853     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_R2/i]}, Parse::RecDescent::_tracefirst($text),
9854             q{sysibm_function},
9855             $tracelevel)
9856             if defined $::RD_TRACE;
9857     $lastsep = "";
9858     $expectation->is(q{})->at($text);
9859
9860
9861     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_R2)//i)
9862     {
9863
9864       $expectation->failed();
9865       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9866               Parse::RecDescent::_tracefirst($text))
9867           if defined $::RD_TRACE;
9868
9869       last;
9870     }
9871     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9872             . $& . q{])},
9873               Parse::RecDescent::_tracefirst($text))
9874           if defined $::RD_TRACE;
9875     push @item, $item{__PATTERN1__}=$&;
9876
9877
9878
9879     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_R2/i]<<},
9880             Parse::RecDescent::_tracefirst($text),
9881             q{sysibm_function},
9882             $tracelevel)
9883             if defined $::RD_TRACE;
9884     $_matched = 1;
9885     last;
9886   }
9887
9888
9889   while (!$_matched && !$commit)
9890   {
9891
9892     Parse::RecDescent::_trace(q{Trying production: [/REGR_SLOPE/i]},
9893             Parse::RecDescent::_tracefirst($_[1]),
9894             q{sysibm_function},
9895             $tracelevel)
9896             if defined $::RD_TRACE;
9897     my $thisprod = $thisrule->{"prods"}[64];
9898     $text = $_[1];
9899     my $_savetext;
9900     @item = (q{sysibm_function});
9901     %item = (__RULE__ => q{sysibm_function});
9902     my $repcount = 0;
9903
9904
9905     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SLOPE/i]}, Parse::RecDescent::_tracefirst($text),
9906             q{sysibm_function},
9907             $tracelevel)
9908             if defined $::RD_TRACE;
9909     $lastsep = "";
9910     $expectation->is(q{})->at($text);
9911
9912
9913     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SLOPE)//i)
9914     {
9915
9916       $expectation->failed();
9917       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9918               Parse::RecDescent::_tracefirst($text))
9919           if defined $::RD_TRACE;
9920
9921       last;
9922     }
9923     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9924             . $& . q{])},
9925               Parse::RecDescent::_tracefirst($text))
9926           if defined $::RD_TRACE;
9927     push @item, $item{__PATTERN1__}=$&;
9928
9929
9930
9931     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SLOPE/i]<<},
9932             Parse::RecDescent::_tracefirst($text),
9933             q{sysibm_function},
9934             $tracelevel)
9935             if defined $::RD_TRACE;
9936     $_matched = 1;
9937     last;
9938   }
9939
9940
9941   while (!$_matched && !$commit)
9942   {
9943
9944     Parse::RecDescent::_trace(q{Trying production: [/REGR_SXX/i]},
9945             Parse::RecDescent::_tracefirst($_[1]),
9946             q{sysibm_function},
9947             $tracelevel)
9948             if defined $::RD_TRACE;
9949     my $thisprod = $thisrule->{"prods"}[65];
9950     $text = $_[1];
9951     my $_savetext;
9952     @item = (q{sysibm_function});
9953     %item = (__RULE__ => q{sysibm_function});
9954     my $repcount = 0;
9955
9956
9957     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SXX/i]}, Parse::RecDescent::_tracefirst($text),
9958             q{sysibm_function},
9959             $tracelevel)
9960             if defined $::RD_TRACE;
9961     $lastsep = "";
9962     $expectation->is(q{})->at($text);
9963
9964
9965     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SXX)//i)
9966     {
9967
9968       $expectation->failed();
9969       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
9970               Parse::RecDescent::_tracefirst($text))
9971           if defined $::RD_TRACE;
9972
9973       last;
9974     }
9975     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
9976             . $& . q{])},
9977               Parse::RecDescent::_tracefirst($text))
9978           if defined $::RD_TRACE;
9979     push @item, $item{__PATTERN1__}=$&;
9980
9981
9982
9983     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SXX/i]<<},
9984             Parse::RecDescent::_tracefirst($text),
9985             q{sysibm_function},
9986             $tracelevel)
9987             if defined $::RD_TRACE;
9988     $_matched = 1;
9989     last;
9990   }
9991
9992
9993   while (!$_matched && !$commit)
9994   {
9995
9996     Parse::RecDescent::_trace(q{Trying production: [/REGR_SXY/i]},
9997             Parse::RecDescent::_tracefirst($_[1]),
9998             q{sysibm_function},
9999             $tracelevel)
10000             if defined $::RD_TRACE;
10001     my $thisprod = $thisrule->{"prods"}[66];
10002     $text = $_[1];
10003     my $_savetext;
10004     @item = (q{sysibm_function});
10005     %item = (__RULE__ => q{sysibm_function});
10006     my $repcount = 0;
10007
10008
10009     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SXY/i]}, Parse::RecDescent::_tracefirst($text),
10010             q{sysibm_function},
10011             $tracelevel)
10012             if defined $::RD_TRACE;
10013     $lastsep = "";
10014     $expectation->is(q{})->at($text);
10015
10016
10017     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SXY)//i)
10018     {
10019
10020       $expectation->failed();
10021       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10022               Parse::RecDescent::_tracefirst($text))
10023           if defined $::RD_TRACE;
10024
10025       last;
10026     }
10027     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10028             . $& . q{])},
10029               Parse::RecDescent::_tracefirst($text))
10030           if defined $::RD_TRACE;
10031     push @item, $item{__PATTERN1__}=$&;
10032
10033
10034
10035     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SXY/i]<<},
10036             Parse::RecDescent::_tracefirst($text),
10037             q{sysibm_function},
10038             $tracelevel)
10039             if defined $::RD_TRACE;
10040     $_matched = 1;
10041     last;
10042   }
10043
10044
10045   while (!$_matched && !$commit)
10046   {
10047
10048     Parse::RecDescent::_trace(q{Trying production: [/REGR_SYY/i]},
10049             Parse::RecDescent::_tracefirst($_[1]),
10050             q{sysibm_function},
10051             $tracelevel)
10052             if defined $::RD_TRACE;
10053     my $thisprod = $thisrule->{"prods"}[67];
10054     $text = $_[1];
10055     my $_savetext;
10056     @item = (q{sysibm_function});
10057     %item = (__RULE__ => q{sysibm_function});
10058     my $repcount = 0;
10059
10060
10061     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_SYY/i]}, Parse::RecDescent::_tracefirst($text),
10062             q{sysibm_function},
10063             $tracelevel)
10064             if defined $::RD_TRACE;
10065     $lastsep = "";
10066     $expectation->is(q{})->at($text);
10067
10068
10069     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_SYY)//i)
10070     {
10071
10072       $expectation->failed();
10073       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10074               Parse::RecDescent::_tracefirst($text))
10075           if defined $::RD_TRACE;
10076
10077       last;
10078     }
10079     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10080             . $& . q{])},
10081               Parse::RecDescent::_tracefirst($text))
10082           if defined $::RD_TRACE;
10083     push @item, $item{__PATTERN1__}=$&;
10084
10085
10086
10087     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_SYY/i]<<},
10088             Parse::RecDescent::_tracefirst($text),
10089             q{sysibm_function},
10090             $tracelevel)
10091             if defined $::RD_TRACE;
10092     $_matched = 1;
10093     last;
10094   }
10095
10096
10097   while (!$_matched && !$commit)
10098   {
10099
10100     Parse::RecDescent::_trace(q{Trying production: [/RTRIM/i]},
10101             Parse::RecDescent::_tracefirst($_[1]),
10102             q{sysibm_function},
10103             $tracelevel)
10104             if defined $::RD_TRACE;
10105     my $thisprod = $thisrule->{"prods"}[68];
10106     $text = $_[1];
10107     my $_savetext;
10108     @item = (q{sysibm_function});
10109     %item = (__RULE__ => q{sysibm_function});
10110     my $repcount = 0;
10111
10112
10113     Parse::RecDescent::_trace(q{Trying terminal: [/RTRIM/i]}, Parse::RecDescent::_tracefirst($text),
10114             q{sysibm_function},
10115             $tracelevel)
10116             if defined $::RD_TRACE;
10117     $lastsep = "";
10118     $expectation->is(q{})->at($text);
10119
10120
10121     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RTRIM)//i)
10122     {
10123
10124       $expectation->failed();
10125       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10126               Parse::RecDescent::_tracefirst($text))
10127           if defined $::RD_TRACE;
10128
10129       last;
10130     }
10131     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10132             . $& . q{])},
10133               Parse::RecDescent::_tracefirst($text))
10134           if defined $::RD_TRACE;
10135     push @item, $item{__PATTERN1__}=$&;
10136
10137
10138
10139     Parse::RecDescent::_trace(q{>>Matched production: [/RTRIM/i]<<},
10140             Parse::RecDescent::_tracefirst($text),
10141             q{sysibm_function},
10142             $tracelevel)
10143             if defined $::RD_TRACE;
10144     $_matched = 1;
10145     last;
10146   }
10147
10148
10149   while (!$_matched && !$commit)
10150   {
10151
10152     Parse::RecDescent::_trace(q{Trying production: [/SECOND/i]},
10153             Parse::RecDescent::_tracefirst($_[1]),
10154             q{sysibm_function},
10155             $tracelevel)
10156             if defined $::RD_TRACE;
10157     my $thisprod = $thisrule->{"prods"}[69];
10158     $text = $_[1];
10159     my $_savetext;
10160     @item = (q{sysibm_function});
10161     %item = (__RULE__ => q{sysibm_function});
10162     my $repcount = 0;
10163
10164
10165     Parse::RecDescent::_trace(q{Trying terminal: [/SECOND/i]}, Parse::RecDescent::_tracefirst($text),
10166             q{sysibm_function},
10167             $tracelevel)
10168             if defined $::RD_TRACE;
10169     $lastsep = "";
10170     $expectation->is(q{})->at($text);
10171
10172
10173     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SECOND)//i)
10174     {
10175
10176       $expectation->failed();
10177       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10178               Parse::RecDescent::_tracefirst($text))
10179           if defined $::RD_TRACE;
10180
10181       last;
10182     }
10183     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10184             . $& . q{])},
10185               Parse::RecDescent::_tracefirst($text))
10186           if defined $::RD_TRACE;
10187     push @item, $item{__PATTERN1__}=$&;
10188
10189
10190
10191     Parse::RecDescent::_trace(q{>>Matched production: [/SECOND/i]<<},
10192             Parse::RecDescent::_tracefirst($text),
10193             q{sysibm_function},
10194             $tracelevel)
10195             if defined $::RD_TRACE;
10196     $_matched = 1;
10197     last;
10198   }
10199
10200
10201   while (!$_matched && !$commit)
10202   {
10203
10204     Parse::RecDescent::_trace(q{Trying production: [/SMALLINT/i]},
10205             Parse::RecDescent::_tracefirst($_[1]),
10206             q{sysibm_function},
10207             $tracelevel)
10208             if defined $::RD_TRACE;
10209     my $thisprod = $thisrule->{"prods"}[70];
10210     $text = $_[1];
10211     my $_savetext;
10212     @item = (q{sysibm_function});
10213     %item = (__RULE__ => q{sysibm_function});
10214     my $repcount = 0;
10215
10216
10217     Parse::RecDescent::_trace(q{Trying terminal: [/SMALLINT/i]}, Parse::RecDescent::_tracefirst($text),
10218             q{sysibm_function},
10219             $tracelevel)
10220             if defined $::RD_TRACE;
10221     $lastsep = "";
10222     $expectation->is(q{})->at($text);
10223
10224
10225     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SMALLINT)//i)
10226     {
10227
10228       $expectation->failed();
10229       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10230               Parse::RecDescent::_tracefirst($text))
10231           if defined $::RD_TRACE;
10232
10233       last;
10234     }
10235     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10236             . $& . q{])},
10237               Parse::RecDescent::_tracefirst($text))
10238           if defined $::RD_TRACE;
10239     push @item, $item{__PATTERN1__}=$&;
10240
10241
10242
10243     Parse::RecDescent::_trace(q{>>Matched production: [/SMALLINT/i]<<},
10244             Parse::RecDescent::_tracefirst($text),
10245             q{sysibm_function},
10246             $tracelevel)
10247             if defined $::RD_TRACE;
10248     $_matched = 1;
10249     last;
10250   }
10251
10252
10253   while (!$_matched && !$commit)
10254   {
10255
10256     Parse::RecDescent::_trace(q{Trying production: [/STDDEV/i]},
10257             Parse::RecDescent::_tracefirst($_[1]),
10258             q{sysibm_function},
10259             $tracelevel)
10260             if defined $::RD_TRACE;
10261     my $thisprod = $thisrule->{"prods"}[71];
10262     $text = $_[1];
10263     my $_savetext;
10264     @item = (q{sysibm_function});
10265     %item = (__RULE__ => q{sysibm_function});
10266     my $repcount = 0;
10267
10268
10269     Parse::RecDescent::_trace(q{Trying terminal: [/STDDEV/i]}, Parse::RecDescent::_tracefirst($text),
10270             q{sysibm_function},
10271             $tracelevel)
10272             if defined $::RD_TRACE;
10273     $lastsep = "";
10274     $expectation->is(q{})->at($text);
10275
10276
10277     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:STDDEV)//i)
10278     {
10279
10280       $expectation->failed();
10281       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10282               Parse::RecDescent::_tracefirst($text))
10283           if defined $::RD_TRACE;
10284
10285       last;
10286     }
10287     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10288             . $& . q{])},
10289               Parse::RecDescent::_tracefirst($text))
10290           if defined $::RD_TRACE;
10291     push @item, $item{__PATTERN1__}=$&;
10292
10293
10294
10295     Parse::RecDescent::_trace(q{>>Matched production: [/STDDEV/i]<<},
10296             Parse::RecDescent::_tracefirst($text),
10297             q{sysibm_function},
10298             $tracelevel)
10299             if defined $::RD_TRACE;
10300     $_matched = 1;
10301     last;
10302   }
10303
10304
10305   while (!$_matched && !$commit)
10306   {
10307
10308     Parse::RecDescent::_trace(q{Trying production: [/SUBSTR/i]},
10309             Parse::RecDescent::_tracefirst($_[1]),
10310             q{sysibm_function},
10311             $tracelevel)
10312             if defined $::RD_TRACE;
10313     my $thisprod = $thisrule->{"prods"}[72];
10314     $text = $_[1];
10315     my $_savetext;
10316     @item = (q{sysibm_function});
10317     %item = (__RULE__ => q{sysibm_function});
10318     my $repcount = 0;
10319
10320
10321     Parse::RecDescent::_trace(q{Trying terminal: [/SUBSTR/i]}, Parse::RecDescent::_tracefirst($text),
10322             q{sysibm_function},
10323             $tracelevel)
10324             if defined $::RD_TRACE;
10325     $lastsep = "";
10326     $expectation->is(q{})->at($text);
10327
10328
10329     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SUBSTR)//i)
10330     {
10331
10332       $expectation->failed();
10333       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10334               Parse::RecDescent::_tracefirst($text))
10335           if defined $::RD_TRACE;
10336
10337       last;
10338     }
10339     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10340             . $& . q{])},
10341               Parse::RecDescent::_tracefirst($text))
10342           if defined $::RD_TRACE;
10343     push @item, $item{__PATTERN1__}=$&;
10344
10345
10346
10347     Parse::RecDescent::_trace(q{>>Matched production: [/SUBSTR/i]<<},
10348             Parse::RecDescent::_tracefirst($text),
10349             q{sysibm_function},
10350             $tracelevel)
10351             if defined $::RD_TRACE;
10352     $_matched = 1;
10353     last;
10354   }
10355
10356
10357   while (!$_matched && !$commit)
10358   {
10359
10360     Parse::RecDescent::_trace(q{Trying production: [/SUM/i]},
10361             Parse::RecDescent::_tracefirst($_[1]),
10362             q{sysibm_function},
10363             $tracelevel)
10364             if defined $::RD_TRACE;
10365     my $thisprod = $thisrule->{"prods"}[73];
10366     $text = $_[1];
10367     my $_savetext;
10368     @item = (q{sysibm_function});
10369     %item = (__RULE__ => q{sysibm_function});
10370     my $repcount = 0;
10371
10372
10373     Parse::RecDescent::_trace(q{Trying terminal: [/SUM/i]}, Parse::RecDescent::_tracefirst($text),
10374             q{sysibm_function},
10375             $tracelevel)
10376             if defined $::RD_TRACE;
10377     $lastsep = "";
10378     $expectation->is(q{})->at($text);
10379
10380
10381     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SUM)//i)
10382     {
10383
10384       $expectation->failed();
10385       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10386               Parse::RecDescent::_tracefirst($text))
10387           if defined $::RD_TRACE;
10388
10389       last;
10390     }
10391     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10392             . $& . q{])},
10393               Parse::RecDescent::_tracefirst($text))
10394           if defined $::RD_TRACE;
10395     push @item, $item{__PATTERN1__}=$&;
10396
10397
10398
10399     Parse::RecDescent::_trace(q{>>Matched production: [/SUM/i]<<},
10400             Parse::RecDescent::_tracefirst($text),
10401             q{sysibm_function},
10402             $tracelevel)
10403             if defined $::RD_TRACE;
10404     $_matched = 1;
10405     last;
10406   }
10407
10408
10409   while (!$_matched && !$commit)
10410   {
10411
10412     Parse::RecDescent::_trace(q{Trying production: [/TABLE_NAME/i]},
10413             Parse::RecDescent::_tracefirst($_[1]),
10414             q{sysibm_function},
10415             $tracelevel)
10416             if defined $::RD_TRACE;
10417     my $thisprod = $thisrule->{"prods"}[74];
10418     $text = $_[1];
10419     my $_savetext;
10420     @item = (q{sysibm_function});
10421     %item = (__RULE__ => q{sysibm_function});
10422     my $repcount = 0;
10423
10424
10425     Parse::RecDescent::_trace(q{Trying terminal: [/TABLE_NAME/i]}, Parse::RecDescent::_tracefirst($text),
10426             q{sysibm_function},
10427             $tracelevel)
10428             if defined $::RD_TRACE;
10429     $lastsep = "";
10430     $expectation->is(q{})->at($text);
10431
10432
10433     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TABLE_NAME)//i)
10434     {
10435
10436       $expectation->failed();
10437       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10438               Parse::RecDescent::_tracefirst($text))
10439           if defined $::RD_TRACE;
10440
10441       last;
10442     }
10443     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10444             . $& . q{])},
10445               Parse::RecDescent::_tracefirst($text))
10446           if defined $::RD_TRACE;
10447     push @item, $item{__PATTERN1__}=$&;
10448
10449
10450
10451     Parse::RecDescent::_trace(q{>>Matched production: [/TABLE_NAME/i]<<},
10452             Parse::RecDescent::_tracefirst($text),
10453             q{sysibm_function},
10454             $tracelevel)
10455             if defined $::RD_TRACE;
10456     $_matched = 1;
10457     last;
10458   }
10459
10460
10461   while (!$_matched && !$commit)
10462   {
10463
10464     Parse::RecDescent::_trace(q{Trying production: [/TABLE_SCHEMA/i]},
10465             Parse::RecDescent::_tracefirst($_[1]),
10466             q{sysibm_function},
10467             $tracelevel)
10468             if defined $::RD_TRACE;
10469     my $thisprod = $thisrule->{"prods"}[75];
10470     $text = $_[1];
10471     my $_savetext;
10472     @item = (q{sysibm_function});
10473     %item = (__RULE__ => q{sysibm_function});
10474     my $repcount = 0;
10475
10476
10477     Parse::RecDescent::_trace(q{Trying terminal: [/TABLE_SCHEMA/i]}, Parse::RecDescent::_tracefirst($text),
10478             q{sysibm_function},
10479             $tracelevel)
10480             if defined $::RD_TRACE;
10481     $lastsep = "";
10482     $expectation->is(q{})->at($text);
10483
10484
10485     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TABLE_SCHEMA)//i)
10486     {
10487
10488       $expectation->failed();
10489       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10490               Parse::RecDescent::_tracefirst($text))
10491           if defined $::RD_TRACE;
10492
10493       last;
10494     }
10495     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10496             . $& . q{])},
10497               Parse::RecDescent::_tracefirst($text))
10498           if defined $::RD_TRACE;
10499     push @item, $item{__PATTERN1__}=$&;
10500
10501
10502
10503     Parse::RecDescent::_trace(q{>>Matched production: [/TABLE_SCHEMA/i]<<},
10504             Parse::RecDescent::_tracefirst($text),
10505             q{sysibm_function},
10506             $tracelevel)
10507             if defined $::RD_TRACE;
10508     $_matched = 1;
10509     last;
10510   }
10511
10512
10513   while (!$_matched && !$commit)
10514   {
10515
10516     Parse::RecDescent::_trace(q{Trying production: [/TIME/i]},
10517             Parse::RecDescent::_tracefirst($_[1]),
10518             q{sysibm_function},
10519             $tracelevel)
10520             if defined $::RD_TRACE;
10521     my $thisprod = $thisrule->{"prods"}[76];
10522     $text = $_[1];
10523     my $_savetext;
10524     @item = (q{sysibm_function});
10525     %item = (__RULE__ => q{sysibm_function});
10526     my $repcount = 0;
10527
10528
10529     Parse::RecDescent::_trace(q{Trying terminal: [/TIME/i]}, Parse::RecDescent::_tracefirst($text),
10530             q{sysibm_function},
10531             $tracelevel)
10532             if defined $::RD_TRACE;
10533     $lastsep = "";
10534     $expectation->is(q{})->at($text);
10535
10536
10537     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIME)//i)
10538     {
10539
10540       $expectation->failed();
10541       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10542               Parse::RecDescent::_tracefirst($text))
10543           if defined $::RD_TRACE;
10544
10545       last;
10546     }
10547     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10548             . $& . q{])},
10549               Parse::RecDescent::_tracefirst($text))
10550           if defined $::RD_TRACE;
10551     push @item, $item{__PATTERN1__}=$&;
10552
10553
10554
10555     Parse::RecDescent::_trace(q{>>Matched production: [/TIME/i]<<},
10556             Parse::RecDescent::_tracefirst($text),
10557             q{sysibm_function},
10558             $tracelevel)
10559             if defined $::RD_TRACE;
10560     $_matched = 1;
10561     last;
10562   }
10563
10564
10565   while (!$_matched && !$commit)
10566   {
10567
10568     Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMP/i]},
10569             Parse::RecDescent::_tracefirst($_[1]),
10570             q{sysibm_function},
10571             $tracelevel)
10572             if defined $::RD_TRACE;
10573     my $thisprod = $thisrule->{"prods"}[77];
10574     $text = $_[1];
10575     my $_savetext;
10576     @item = (q{sysibm_function});
10577     %item = (__RULE__ => q{sysibm_function});
10578     my $repcount = 0;
10579
10580
10581     Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMP/i]}, Parse::RecDescent::_tracefirst($text),
10582             q{sysibm_function},
10583             $tracelevel)
10584             if defined $::RD_TRACE;
10585     $lastsep = "";
10586     $expectation->is(q{})->at($text);
10587
10588
10589     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIMESTAMP)//i)
10590     {
10591
10592       $expectation->failed();
10593       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10594               Parse::RecDescent::_tracefirst($text))
10595           if defined $::RD_TRACE;
10596
10597       last;
10598     }
10599     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10600             . $& . q{])},
10601               Parse::RecDescent::_tracefirst($text))
10602           if defined $::RD_TRACE;
10603     push @item, $item{__PATTERN1__}=$&;
10604
10605
10606
10607     Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMP/i]<<},
10608             Parse::RecDescent::_tracefirst($text),
10609             q{sysibm_function},
10610             $tracelevel)
10611             if defined $::RD_TRACE;
10612     $_matched = 1;
10613     last;
10614   }
10615
10616
10617   while (!$_matched && !$commit)
10618   {
10619
10620     Parse::RecDescent::_trace(q{Trying production: [/TRANSLATE/i]},
10621             Parse::RecDescent::_tracefirst($_[1]),
10622             q{sysibm_function},
10623             $tracelevel)
10624             if defined $::RD_TRACE;
10625     my $thisprod = $thisrule->{"prods"}[78];
10626     $text = $_[1];
10627     my $_savetext;
10628     @item = (q{sysibm_function});
10629     %item = (__RULE__ => q{sysibm_function});
10630     my $repcount = 0;
10631
10632
10633     Parse::RecDescent::_trace(q{Trying terminal: [/TRANSLATE/i]}, Parse::RecDescent::_tracefirst($text),
10634             q{sysibm_function},
10635             $tracelevel)
10636             if defined $::RD_TRACE;
10637     $lastsep = "";
10638     $expectation->is(q{})->at($text);
10639
10640
10641     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRANSLATE)//i)
10642     {
10643
10644       $expectation->failed();
10645       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10646               Parse::RecDescent::_tracefirst($text))
10647           if defined $::RD_TRACE;
10648
10649       last;
10650     }
10651     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10652             . $& . q{])},
10653               Parse::RecDescent::_tracefirst($text))
10654           if defined $::RD_TRACE;
10655     push @item, $item{__PATTERN1__}=$&;
10656
10657
10658
10659     Parse::RecDescent::_trace(q{>>Matched production: [/TRANSLATE/i]<<},
10660             Parse::RecDescent::_tracefirst($text),
10661             q{sysibm_function},
10662             $tracelevel)
10663             if defined $::RD_TRACE;
10664     $_matched = 1;
10665     last;
10666   }
10667
10668
10669   while (!$_matched && !$commit)
10670   {
10671
10672     Parse::RecDescent::_trace(q{Trying production: [/TYPE_ID/i]},
10673             Parse::RecDescent::_tracefirst($_[1]),
10674             q{sysibm_function},
10675             $tracelevel)
10676             if defined $::RD_TRACE;
10677     my $thisprod = $thisrule->{"prods"}[79];
10678     $text = $_[1];
10679     my $_savetext;
10680     @item = (q{sysibm_function});
10681     %item = (__RULE__ => q{sysibm_function});
10682     my $repcount = 0;
10683
10684
10685     Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_ID/i]}, Parse::RecDescent::_tracefirst($text),
10686             q{sysibm_function},
10687             $tracelevel)
10688             if defined $::RD_TRACE;
10689     $lastsep = "";
10690     $expectation->is(q{})->at($text);
10691
10692
10693     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_ID)//i)
10694     {
10695
10696       $expectation->failed();
10697       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10698               Parse::RecDescent::_tracefirst($text))
10699           if defined $::RD_TRACE;
10700
10701       last;
10702     }
10703     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10704             . $& . q{])},
10705               Parse::RecDescent::_tracefirst($text))
10706           if defined $::RD_TRACE;
10707     push @item, $item{__PATTERN1__}=$&;
10708
10709
10710
10711     Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_ID/i]<<},
10712             Parse::RecDescent::_tracefirst($text),
10713             q{sysibm_function},
10714             $tracelevel)
10715             if defined $::RD_TRACE;
10716     $_matched = 1;
10717     last;
10718   }
10719
10720
10721   while (!$_matched && !$commit)
10722   {
10723
10724     Parse::RecDescent::_trace(q{Trying production: [/TYPE_NAME/i]},
10725             Parse::RecDescent::_tracefirst($_[1]),
10726             q{sysibm_function},
10727             $tracelevel)
10728             if defined $::RD_TRACE;
10729     my $thisprod = $thisrule->{"prods"}[80];
10730     $text = $_[1];
10731     my $_savetext;
10732     @item = (q{sysibm_function});
10733     %item = (__RULE__ => q{sysibm_function});
10734     my $repcount = 0;
10735
10736
10737     Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_NAME/i]}, Parse::RecDescent::_tracefirst($text),
10738             q{sysibm_function},
10739             $tracelevel)
10740             if defined $::RD_TRACE;
10741     $lastsep = "";
10742     $expectation->is(q{})->at($text);
10743
10744
10745     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_NAME)//i)
10746     {
10747
10748       $expectation->failed();
10749       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10750               Parse::RecDescent::_tracefirst($text))
10751           if defined $::RD_TRACE;
10752
10753       last;
10754     }
10755     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10756             . $& . q{])},
10757               Parse::RecDescent::_tracefirst($text))
10758           if defined $::RD_TRACE;
10759     push @item, $item{__PATTERN1__}=$&;
10760
10761
10762
10763     Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_NAME/i]<<},
10764             Parse::RecDescent::_tracefirst($text),
10765             q{sysibm_function},
10766             $tracelevel)
10767             if defined $::RD_TRACE;
10768     $_matched = 1;
10769     last;
10770   }
10771
10772
10773   while (!$_matched && !$commit)
10774   {
10775
10776     Parse::RecDescent::_trace(q{Trying production: [/TYPE_SCHEMA/i]},
10777             Parse::RecDescent::_tracefirst($_[1]),
10778             q{sysibm_function},
10779             $tracelevel)
10780             if defined $::RD_TRACE;
10781     my $thisprod = $thisrule->{"prods"}[81];
10782     $text = $_[1];
10783     my $_savetext;
10784     @item = (q{sysibm_function});
10785     %item = (__RULE__ => q{sysibm_function});
10786     my $repcount = 0;
10787
10788
10789     Parse::RecDescent::_trace(q{Trying terminal: [/TYPE_SCHEMA/i]}, Parse::RecDescent::_tracefirst($text),
10790             q{sysibm_function},
10791             $tracelevel)
10792             if defined $::RD_TRACE;
10793     $lastsep = "";
10794     $expectation->is(q{})->at($text);
10795
10796
10797     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TYPE_SCHEMA)//i)
10798     {
10799
10800       $expectation->failed();
10801       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10802               Parse::RecDescent::_tracefirst($text))
10803           if defined $::RD_TRACE;
10804
10805       last;
10806     }
10807     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10808             . $& . q{])},
10809               Parse::RecDescent::_tracefirst($text))
10810           if defined $::RD_TRACE;
10811     push @item, $item{__PATTERN1__}=$&;
10812
10813
10814
10815     Parse::RecDescent::_trace(q{>>Matched production: [/TYPE_SCHEMA/i]<<},
10816             Parse::RecDescent::_tracefirst($text),
10817             q{sysibm_function},
10818             $tracelevel)
10819             if defined $::RD_TRACE;
10820     $_matched = 1;
10821     last;
10822   }
10823
10824
10825   while (!$_matched && !$commit)
10826   {
10827
10828     Parse::RecDescent::_trace(q{Trying production: [/UCASE/i, or /UPPER/i]},
10829             Parse::RecDescent::_tracefirst($_[1]),
10830             q{sysibm_function},
10831             $tracelevel)
10832             if defined $::RD_TRACE;
10833     my $thisprod = $thisrule->{"prods"}[82];
10834     $text = $_[1];
10835     my $_savetext;
10836     @item = (q{sysibm_function});
10837     %item = (__RULE__ => q{sysibm_function});
10838     my $repcount = 0;
10839
10840
10841     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
10842           Parse::RecDescent::_tracefirst($text),
10843           q{sysibm_function},
10844           $tracelevel)
10845           if defined $::RD_TRACE;
10846     if (1) { no strict qw{refs};
10847     $expectation->is(q{})->at($text);
10848     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_83_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
10849     {
10850
10851       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]>>},
10852               Parse::RecDescent::_tracefirst($text),
10853               q{sysibm_function},
10854               $tracelevel)
10855               if defined $::RD_TRACE;
10856       $expectation->failed();
10857       last;
10858     }
10859     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_83_of_rule_sysibm_function]<< (return value: [}
10860           . $_tok . q{]},
10861
10862             Parse::RecDescent::_tracefirst($text),
10863             q{sysibm_function},
10864             $tracelevel)
10865             if defined $::RD_TRACE;
10866     $item{q{_alternation_1_of_production_83_of_rule_sysibm_function}} = $_tok;
10867     push @item, $_tok;
10868
10869     }
10870
10871
10872     Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i, or /UPPER/i]<<},
10873             Parse::RecDescent::_tracefirst($text),
10874             q{sysibm_function},
10875             $tracelevel)
10876             if defined $::RD_TRACE;
10877     $_matched = 1;
10878     last;
10879   }
10880
10881
10882   while (!$_matched && !$commit)
10883   {
10884
10885     Parse::RecDescent::_trace(q{Trying production: [/VALUE/i]},
10886             Parse::RecDescent::_tracefirst($_[1]),
10887             q{sysibm_function},
10888             $tracelevel)
10889             if defined $::RD_TRACE;
10890     my $thisprod = $thisrule->{"prods"}[83];
10891     $text = $_[1];
10892     my $_savetext;
10893     @item = (q{sysibm_function});
10894     %item = (__RULE__ => q{sysibm_function});
10895     my $repcount = 0;
10896
10897
10898     Parse::RecDescent::_trace(q{Trying terminal: [/VALUE/i]}, Parse::RecDescent::_tracefirst($text),
10899             q{sysibm_function},
10900             $tracelevel)
10901             if defined $::RD_TRACE;
10902     $lastsep = "";
10903     $expectation->is(q{})->at($text);
10904
10905
10906     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VALUE)//i)
10907     {
10908
10909       $expectation->failed();
10910       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10911               Parse::RecDescent::_tracefirst($text))
10912           if defined $::RD_TRACE;
10913
10914       last;
10915     }
10916     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10917             . $& . q{])},
10918               Parse::RecDescent::_tracefirst($text))
10919           if defined $::RD_TRACE;
10920     push @item, $item{__PATTERN1__}=$&;
10921
10922
10923
10924     Parse::RecDescent::_trace(q{>>Matched production: [/VALUE/i]<<},
10925             Parse::RecDescent::_tracefirst($text),
10926             q{sysibm_function},
10927             $tracelevel)
10928             if defined $::RD_TRACE;
10929     $_matched = 1;
10930     last;
10931   }
10932
10933
10934   while (!$_matched && !$commit)
10935   {
10936
10937     Parse::RecDescent::_trace(q{Trying production: [/VARCHAR/i]},
10938             Parse::RecDescent::_tracefirst($_[1]),
10939             q{sysibm_function},
10940             $tracelevel)
10941             if defined $::RD_TRACE;
10942     my $thisprod = $thisrule->{"prods"}[84];
10943     $text = $_[1];
10944     my $_savetext;
10945     @item = (q{sysibm_function});
10946     %item = (__RULE__ => q{sysibm_function});
10947     my $repcount = 0;
10948
10949
10950     Parse::RecDescent::_trace(q{Trying terminal: [/VARCHAR/i]}, Parse::RecDescent::_tracefirst($text),
10951             q{sysibm_function},
10952             $tracelevel)
10953             if defined $::RD_TRACE;
10954     $lastsep = "";
10955     $expectation->is(q{})->at($text);
10956
10957
10958     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARCHAR)//i)
10959     {
10960
10961       $expectation->failed();
10962       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
10963               Parse::RecDescent::_tracefirst($text))
10964           if defined $::RD_TRACE;
10965
10966       last;
10967     }
10968     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
10969             . $& . q{])},
10970               Parse::RecDescent::_tracefirst($text))
10971           if defined $::RD_TRACE;
10972     push @item, $item{__PATTERN1__}=$&;
10973
10974
10975
10976     Parse::RecDescent::_trace(q{>>Matched production: [/VARCHAR/i]<<},
10977             Parse::RecDescent::_tracefirst($text),
10978             q{sysibm_function},
10979             $tracelevel)
10980             if defined $::RD_TRACE;
10981     $_matched = 1;
10982     last;
10983   }
10984
10985
10986   while (!$_matched && !$commit)
10987   {
10988
10989     Parse::RecDescent::_trace(q{Trying production: [/VARGRAPHIC/i]},
10990             Parse::RecDescent::_tracefirst($_[1]),
10991             q{sysibm_function},
10992             $tracelevel)
10993             if defined $::RD_TRACE;
10994     my $thisprod = $thisrule->{"prods"}[85];
10995     $text = $_[1];
10996     my $_savetext;
10997     @item = (q{sysibm_function});
10998     %item = (__RULE__ => q{sysibm_function});
10999     my $repcount = 0;
11000
11001
11002     Parse::RecDescent::_trace(q{Trying terminal: [/VARGRAPHIC/i]}, Parse::RecDescent::_tracefirst($text),
11003             q{sysibm_function},
11004             $tracelevel)
11005             if defined $::RD_TRACE;
11006     $lastsep = "";
11007     $expectation->is(q{})->at($text);
11008
11009
11010     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:VARGRAPHIC)//i)
11011     {
11012
11013       $expectation->failed();
11014       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11015               Parse::RecDescent::_tracefirst($text))
11016           if defined $::RD_TRACE;
11017
11018       last;
11019     }
11020     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11021             . $& . q{])},
11022               Parse::RecDescent::_tracefirst($text))
11023           if defined $::RD_TRACE;
11024     push @item, $item{__PATTERN1__}=$&;
11025
11026
11027
11028     Parse::RecDescent::_trace(q{>>Matched production: [/VARGRAPHIC/i]<<},
11029             Parse::RecDescent::_tracefirst($text),
11030             q{sysibm_function},
11031             $tracelevel)
11032             if defined $::RD_TRACE;
11033     $_matched = 1;
11034     last;
11035   }
11036
11037
11038   while (!$_matched && !$commit)
11039   {
11040
11041     Parse::RecDescent::_trace(q{Trying production: [/VARIANCE/i, or /VAR/i]},
11042             Parse::RecDescent::_tracefirst($_[1]),
11043             q{sysibm_function},
11044             $tracelevel)
11045             if defined $::RD_TRACE;
11046     my $thisprod = $thisrule->{"prods"}[86];
11047     $text = $_[1];
11048     my $_savetext;
11049     @item = (q{sysibm_function});
11050     %item = (__RULE__ => q{sysibm_function});
11051     my $repcount = 0;
11052
11053
11054     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]},
11055           Parse::RecDescent::_tracefirst($text),
11056           q{sysibm_function},
11057           $tracelevel)
11058           if defined $::RD_TRACE;
11059     if (1) { no strict qw{refs};
11060     $expectation->is(q{})->at($text);
11061     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_87_of_rule_sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
11062     {
11063
11064       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]>>},
11065               Parse::RecDescent::_tracefirst($text),
11066               q{sysibm_function},
11067               $tracelevel)
11068               if defined $::RD_TRACE;
11069       $expectation->failed();
11070       last;
11071     }
11072     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_87_of_rule_sysibm_function]<< (return value: [}
11073           . $_tok . q{]},
11074
11075             Parse::RecDescent::_tracefirst($text),
11076             q{sysibm_function},
11077             $tracelevel)
11078             if defined $::RD_TRACE;
11079     $item{q{_alternation_1_of_production_87_of_rule_sysibm_function}} = $_tok;
11080     push @item, $_tok;
11081
11082     }
11083
11084
11085     Parse::RecDescent::_trace(q{>>Matched production: [/VARIANCE/i, or /VAR/i]<<},
11086             Parse::RecDescent::_tracefirst($text),
11087             q{sysibm_function},
11088             $tracelevel)
11089             if defined $::RD_TRACE;
11090     $_matched = 1;
11091     last;
11092   }
11093
11094
11095   while (!$_matched && !$commit)
11096   {
11097
11098     Parse::RecDescent::_trace(q{Trying production: [/YEAR/i]},
11099             Parse::RecDescent::_tracefirst($_[1]),
11100             q{sysibm_function},
11101             $tracelevel)
11102             if defined $::RD_TRACE;
11103     my $thisprod = $thisrule->{"prods"}[87];
11104     $text = $_[1];
11105     my $_savetext;
11106     @item = (q{sysibm_function});
11107     %item = (__RULE__ => q{sysibm_function});
11108     my $repcount = 0;
11109
11110
11111     Parse::RecDescent::_trace(q{Trying terminal: [/YEAR/i]}, Parse::RecDescent::_tracefirst($text),
11112             q{sysibm_function},
11113             $tracelevel)
11114             if defined $::RD_TRACE;
11115     $lastsep = "";
11116     $expectation->is(q{})->at($text);
11117
11118
11119     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:YEAR)//i)
11120     {
11121
11122       $expectation->failed();
11123       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11124               Parse::RecDescent::_tracefirst($text))
11125           if defined $::RD_TRACE;
11126
11127       last;
11128     }
11129     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11130             . $& . q{])},
11131               Parse::RecDescent::_tracefirst($text))
11132           if defined $::RD_TRACE;
11133     push @item, $item{__PATTERN1__}=$&;
11134
11135
11136
11137     Parse::RecDescent::_trace(q{>>Matched production: [/YEAR/i]<<},
11138             Parse::RecDescent::_tracefirst($text),
11139             q{sysibm_function},
11140             $tracelevel)
11141             if defined $::RD_TRACE;
11142     $_matched = 1;
11143     last;
11144   }
11145
11146
11147         unless ( $_matched || defined($return) || defined($score) )
11148   {
11149
11150
11151     $_[1] = $text;  # NOT SURE THIS IS NEEDED
11152     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11153            Parse::RecDescent::_tracefirst($_[1]),
11154            q{sysibm_function},
11155            $tracelevel)
11156           if defined $::RD_TRACE;
11157     return undef;
11158   }
11159   if (!defined($return) && defined($score))
11160   {
11161     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11162             q{sysibm_function},
11163             $tracelevel)
11164             if defined $::RD_TRACE;
11165     $return = $score_return;
11166   }
11167   splice @{$thisparser->{errors}}, $err_at;
11168   $return = $item[$#item] unless defined $return;
11169   if (defined $::RD_TRACE)
11170   {
11171     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11172             $return . q{])}, "",
11173             q{sysibm_function},
11174             $tracelevel);
11175     Parse::RecDescent::_trace(q{(consumed: [} .
11176             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11177             Parse::RecDescent::_tracefirst($text),
11178             , q{sysibm_function},
11179             $tracelevel)
11180   }
11181   $_[1] = $text;
11182   return $return;
11183 }
11184
11185 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11186 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause
11187 {
11188   my $thisparser = $_[0];
11189   use vars q{$tracelevel};
11190   local $tracelevel = ($tracelevel||0)+1;
11191   $ERRORS = 0;
11192   my $thisrule = $thisparser->{"rules"}{"window_partition_clause"};
11193
11194   Parse::RecDescent::_trace(q{Trying rule: [window_partition_clause]},
11195           Parse::RecDescent::_tracefirst($_[1]),
11196           q{window_partition_clause},
11197           $tracelevel)
11198           if defined $::RD_TRACE;
11199
11200
11201   my $err_at = @{$thisparser->{errors}};
11202
11203   my $score;
11204   my $score_return;
11205   my $_tok;
11206   my $return = undef;
11207   my $_matched=0;
11208   my $commit=0;
11209   my @item = ();
11210   my %item = ();
11211   my $repeating =  defined($_[2]) && $_[2];
11212   my $_noactions = defined($_[3]) && $_[3];
11213    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11214   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11215   my $text;
11216   my $lastsep="";
11217   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11218   $expectation->at($_[1]);
11219
11220   my $thisline;
11221   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11222
11223
11224
11225   while (!$_matched && !$commit)
11226   {
11227
11228     Parse::RecDescent::_trace(q{Trying production: [/PARTITION\\s+BY/i <leftop: partitioning_expression /,/ partitioning_expression>]},
11229             Parse::RecDescent::_tracefirst($_[1]),
11230             q{window_partition_clause},
11231             $tracelevel)
11232             if defined $::RD_TRACE;
11233     my $thisprod = $thisrule->{"prods"}[0];
11234     $text = $_[1];
11235     my $_savetext;
11236     @item = (q{window_partition_clause});
11237     %item = (__RULE__ => q{window_partition_clause});
11238     my $repcount = 0;
11239
11240
11241     Parse::RecDescent::_trace(q{Trying terminal: [/PARTITION\\s+BY/i]}, Parse::RecDescent::_tracefirst($text),
11242             q{window_partition_clause},
11243             $tracelevel)
11244             if defined $::RD_TRACE;
11245     $lastsep = "";
11246     $expectation->is(q{})->at($text);
11247
11248
11249     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PARTITION\s+BY)//i)
11250     {
11251
11252       $expectation->failed();
11253       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11254               Parse::RecDescent::_tracefirst($text))
11255           if defined $::RD_TRACE;
11256
11257       last;
11258     }
11259     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11260             . $& . q{])},
11261               Parse::RecDescent::_tracefirst($text))
11262           if defined $::RD_TRACE;
11263     push @item, $item{__PATTERN1__}=$&;
11264
11265
11266     Parse::RecDescent::_trace(q{Trying operator: [<leftop: partitioning_expression /,/ partitioning_expression>]},
11267           Parse::RecDescent::_tracefirst($text),
11268           q{window_partition_clause},
11269           $tracelevel)
11270           if defined $::RD_TRACE;
11271     $expectation->is(q{<leftop: partitioning_expression /,/ partitioning_expression>})->at($text);
11272
11273     $_tok = undef;
11274     OPLOOP: while (1)
11275     {
11276       $repcount = 0;
11277       my  @item;
11278
11279       # MATCH LEFTARG
11280
11281     Parse::RecDescent::_trace(q{Trying subrule: [partitioning_expression]},
11282           Parse::RecDescent::_tracefirst($text),
11283           q{window_partition_clause},
11284           $tracelevel)
11285           if defined $::RD_TRACE;
11286     if (1) { no strict qw{refs};
11287     $expectation->is(q{partitioning_expression})->at($text);
11288     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
11289     {
11290
11291       Parse::RecDescent::_trace(q{<<Didn't match subrule: [partitioning_expression]>>},
11292               Parse::RecDescent::_tracefirst($text),
11293               q{window_partition_clause},
11294               $tracelevel)
11295               if defined $::RD_TRACE;
11296       $expectation->failed();
11297       last;
11298     }
11299     Parse::RecDescent::_trace(q{>>Matched subrule: [partitioning_expression]<< (return value: [}
11300           . $_tok . q{]},
11301
11302             Parse::RecDescent::_tracefirst($text),
11303             q{window_partition_clause},
11304             $tracelevel)
11305             if defined $::RD_TRACE;
11306     $item{q{partitioning_expression}} = $_tok;
11307     push @item, $_tok;
11308
11309     }
11310
11311
11312       $repcount++;
11313
11314       my $savetext = $text;
11315       my $backtrack;
11316
11317       # MATCH (OP RIGHTARG)(s)
11318       while ($repcount < 100000000)
11319       {
11320       $backtrack = 0;
11321
11322     Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
11323             q{window_partition_clause},
11324             $tracelevel)
11325             if defined $::RD_TRACE;
11326     $lastsep = "";
11327     $expectation->is(q{/,/})->at($text);
11328
11329
11330     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
11331     {
11332
11333       $expectation->failed();
11334       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11335               Parse::RecDescent::_tracefirst($text))
11336           if defined $::RD_TRACE;
11337
11338       last;
11339     }
11340     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11341             . $& . q{])},
11342               Parse::RecDescent::_tracefirst($text))
11343           if defined $::RD_TRACE;
11344     push @item, $item{__PATTERN2__}=$&;
11345
11346
11347       pop @item;
11348       if (defined $1) {push @item, $item{'partitioning_expression(s)'}=$1; $backtrack=1;}
11349
11350     Parse::RecDescent::_trace(q{Trying subrule: [partitioning_expression]},
11351           Parse::RecDescent::_tracefirst($text),
11352           q{window_partition_clause},
11353           $tracelevel)
11354           if defined $::RD_TRACE;
11355     if (1) { no strict qw{refs};
11356     $expectation->is(q{partitioning_expression})->at($text);
11357     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::partitioning_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
11358     {
11359
11360       Parse::RecDescent::_trace(q{<<Didn't match subrule: [partitioning_expression]>>},
11361               Parse::RecDescent::_tracefirst($text),
11362               q{window_partition_clause},
11363               $tracelevel)
11364               if defined $::RD_TRACE;
11365       $expectation->failed();
11366       last;
11367     }
11368     Parse::RecDescent::_trace(q{>>Matched subrule: [partitioning_expression]<< (return value: [}
11369           . $_tok . q{]},
11370
11371             Parse::RecDescent::_tracefirst($text),
11372             q{window_partition_clause},
11373             $tracelevel)
11374             if defined $::RD_TRACE;
11375     $item{q{partitioning_expression}} = $_tok;
11376     push @item, $_tok;
11377
11378     }
11379
11380       $savetext = $text;
11381       $repcount++;
11382       }
11383       $text = $savetext;
11384       pop @item if $backtrack;
11385
11386       unless (@item) { undef $_tok; last }
11387       $_tok = [ @item ];
11388       last;
11389     }
11390
11391     unless ($repcount>=1)
11392     {
11393       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: partitioning_expression /,/ partitioning_expression>]>>},
11394               Parse::RecDescent::_tracefirst($text),
11395               q{window_partition_clause},
11396               $tracelevel)
11397               if defined $::RD_TRACE;
11398       $expectation->failed();
11399       last;
11400     }
11401     Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: partitioning_expression /,/ partitioning_expression>]<< (return value: [}
11402             . qq{@{$_tok||[]}} . q{]},
11403             Parse::RecDescent::_tracefirst($text),
11404             q{window_partition_clause},
11405             $tracelevel)
11406             if defined $::RD_TRACE;
11407
11408     push @item, $item{'partitioning_expression(s)'}=$_tok||[];
11409
11410
11411
11412     Parse::RecDescent::_trace(q{>>Matched production: [/PARTITION\\s+BY/i <leftop: partitioning_expression /,/ partitioning_expression>]<<},
11413             Parse::RecDescent::_tracefirst($text),
11414             q{window_partition_clause},
11415             $tracelevel)
11416             if defined $::RD_TRACE;
11417     $_matched = 1;
11418     last;
11419   }
11420
11421
11422         unless ( $_matched || defined($return) || defined($score) )
11423   {
11424
11425
11426     $_[1] = $text;  # NOT SURE THIS IS NEEDED
11427     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11428            Parse::RecDescent::_tracefirst($_[1]),
11429            q{window_partition_clause},
11430            $tracelevel)
11431           if defined $::RD_TRACE;
11432     return undef;
11433   }
11434   if (!defined($return) && defined($score))
11435   {
11436     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11437             q{window_partition_clause},
11438             $tracelevel)
11439             if defined $::RD_TRACE;
11440     $return = $score_return;
11441   }
11442   splice @{$thisparser->{errors}}, $err_at;
11443   $return = $item[$#item] unless defined $return;
11444   if (defined $::RD_TRACE)
11445   {
11446     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11447             $return . q{])}, "",
11448             q{window_partition_clause},
11449             $tracelevel);
11450     Parse::RecDescent::_trace(q{(consumed: [} .
11451             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11452             Parse::RecDescent::_tracefirst($text),
11453             , q{window_partition_clause},
11454             $tracelevel)
11455   }
11456   $_[1] = $text;
11457   return $return;
11458 }
11459
11460 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11461 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE
11462 {
11463   my $thisparser = $_[0];
11464   use vars q{$tracelevel};
11465   local $tracelevel = ($tracelevel||0)+1;
11466   $ERRORS = 0;
11467   my $thisrule = $thisparser->{"rules"}{"WHERE"};
11468
11469   Parse::RecDescent::_trace(q{Trying rule: [WHERE]},
11470           Parse::RecDescent::_tracefirst($_[1]),
11471           q{WHERE},
11472           $tracelevel)
11473           if defined $::RD_TRACE;
11474
11475
11476   my $err_at = @{$thisparser->{errors}};
11477
11478   my $score;
11479   my $score_return;
11480   my $_tok;
11481   my $return = undef;
11482   my $_matched=0;
11483   my $commit=0;
11484   my @item = ();
11485   my %item = ();
11486   my $repeating =  defined($_[2]) && $_[2];
11487   my $_noactions = defined($_[3]) && $_[3];
11488    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11489   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11490   my $text;
11491   my $lastsep="";
11492   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11493   $expectation->at($_[1]);
11494
11495   my $thisline;
11496   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11497
11498
11499
11500   while (!$_matched && !$commit)
11501   {
11502
11503     Parse::RecDescent::_trace(q{Trying production: [/where/i]},
11504             Parse::RecDescent::_tracefirst($_[1]),
11505             q{WHERE},
11506             $tracelevel)
11507             if defined $::RD_TRACE;
11508     my $thisprod = $thisrule->{"prods"}[0];
11509     $text = $_[1];
11510     my $_savetext;
11511     @item = (q{WHERE});
11512     %item = (__RULE__ => q{WHERE});
11513     my $repcount = 0;
11514
11515
11516     Parse::RecDescent::_trace(q{Trying terminal: [/where/i]}, Parse::RecDescent::_tracefirst($text),
11517             q{WHERE},
11518             $tracelevel)
11519             if defined $::RD_TRACE;
11520     $lastsep = "";
11521     $expectation->is(q{})->at($text);
11522
11523
11524     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:where)//i)
11525     {
11526
11527       $expectation->failed();
11528       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11529               Parse::RecDescent::_tracefirst($text))
11530           if defined $::RD_TRACE;
11531
11532       last;
11533     }
11534     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11535             . $& . q{])},
11536               Parse::RecDescent::_tracefirst($text))
11537           if defined $::RD_TRACE;
11538     push @item, $item{__PATTERN1__}=$&;
11539
11540
11541
11542     Parse::RecDescent::_trace(q{>>Matched production: [/where/i]<<},
11543             Parse::RecDescent::_tracefirst($text),
11544             q{WHERE},
11545             $tracelevel)
11546             if defined $::RD_TRACE;
11547     $_matched = 1;
11548     last;
11549   }
11550
11551
11552         unless ( $_matched || defined($return) || defined($score) )
11553   {
11554
11555
11556     $_[1] = $text;  # NOT SURE THIS IS NEEDED
11557     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11558            Parse::RecDescent::_tracefirst($_[1]),
11559            q{WHERE},
11560            $tracelevel)
11561           if defined $::RD_TRACE;
11562     return undef;
11563   }
11564   if (!defined($return) && defined($score))
11565   {
11566     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11567             q{WHERE},
11568             $tracelevel)
11569             if defined $::RD_TRACE;
11570     $return = $score_return;
11571   }
11572   splice @{$thisparser->{errors}}, $err_at;
11573   $return = $item[$#item] unless defined $return;
11574   if (defined $::RD_TRACE)
11575   {
11576     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11577             $return . q{])}, "",
11578             q{WHERE},
11579             $tracelevel);
11580     Parse::RecDescent::_trace(q{(consumed: [} .
11581             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11582             Parse::RecDescent::_tracefirst($text),
11583             , q{WHERE},
11584             $tracelevel)
11585   }
11586   $_[1] = $text;
11587   return $return;
11588 }
11589
11590 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11591 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE
11592 {
11593   my $thisparser = $_[0];
11594   use vars q{$tracelevel};
11595   local $tracelevel = ($tracelevel||0)+1;
11596   $ERRORS = 0;
11597   my $thisrule = $thisparser->{"rules"}{"CREATE"};
11598
11599   Parse::RecDescent::_trace(q{Trying rule: [CREATE]},
11600           Parse::RecDescent::_tracefirst($_[1]),
11601           q{CREATE},
11602           $tracelevel)
11603           if defined $::RD_TRACE;
11604
11605
11606   my $err_at = @{$thisparser->{errors}};
11607
11608   my $score;
11609   my $score_return;
11610   my $_tok;
11611   my $return = undef;
11612   my $_matched=0;
11613   my $commit=0;
11614   my @item = ();
11615   my %item = ();
11616   my $repeating =  defined($_[2]) && $_[2];
11617   my $_noactions = defined($_[3]) && $_[3];
11618    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11619   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11620   my $text;
11621   my $lastsep="";
11622   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11623   $expectation->at($_[1]);
11624
11625   my $thisline;
11626   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11627
11628
11629
11630   while (!$_matched && !$commit)
11631   {
11632
11633     Parse::RecDescent::_trace(q{Trying production: [/create/i]},
11634             Parse::RecDescent::_tracefirst($_[1]),
11635             q{CREATE},
11636             $tracelevel)
11637             if defined $::RD_TRACE;
11638     my $thisprod = $thisrule->{"prods"}[0];
11639     $text = $_[1];
11640     my $_savetext;
11641     @item = (q{CREATE});
11642     %item = (__RULE__ => q{CREATE});
11643     my $repcount = 0;
11644
11645
11646     Parse::RecDescent::_trace(q{Trying terminal: [/create/i]}, Parse::RecDescent::_tracefirst($text),
11647             q{CREATE},
11648             $tracelevel)
11649             if defined $::RD_TRACE;
11650     $lastsep = "";
11651     $expectation->is(q{})->at($text);
11652
11653
11654     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:create)//i)
11655     {
11656
11657       $expectation->failed();
11658       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11659               Parse::RecDescent::_tracefirst($text))
11660           if defined $::RD_TRACE;
11661
11662       last;
11663     }
11664     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11665             . $& . q{])},
11666               Parse::RecDescent::_tracefirst($text))
11667           if defined $::RD_TRACE;
11668     push @item, $item{__PATTERN1__}=$&;
11669
11670
11671
11672     Parse::RecDescent::_trace(q{>>Matched production: [/create/i]<<},
11673             Parse::RecDescent::_tracefirst($text),
11674             q{CREATE},
11675             $tracelevel)
11676             if defined $::RD_TRACE;
11677     $_matched = 1;
11678     last;
11679   }
11680
11681
11682         unless ( $_matched || defined($return) || defined($score) )
11683   {
11684
11685
11686     $_[1] = $text;  # NOT SURE THIS IS NEEDED
11687     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11688            Parse::RecDescent::_tracefirst($_[1]),
11689            q{CREATE},
11690            $tracelevel)
11691           if defined $::RD_TRACE;
11692     return undef;
11693   }
11694   if (!defined($return) && defined($score))
11695   {
11696     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11697             q{CREATE},
11698             $tracelevel)
11699             if defined $::RD_TRACE;
11700     $return = $score_return;
11701   }
11702   splice @{$thisparser->{errors}}, $err_at;
11703   $return = $item[$#item] unless defined $return;
11704   if (defined $::RD_TRACE)
11705   {
11706     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11707             $return . q{])}, "",
11708             q{CREATE},
11709             $tracelevel);
11710     Parse::RecDescent::_trace(q{(consumed: [} .
11711             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11712             Parse::RecDescent::_tracefirst($text),
11713             , q{CREATE},
11714             $tracelevel)
11715   }
11716   $_[1] = $text;
11717   return $return;
11718 }
11719
11720 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11721 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun
11722 {
11723   my $thisparser = $_[0];
11724   use vars q{$tracelevel};
11725   local $tracelevel = ($tracelevel||0)+1;
11726   $ERRORS = 0;
11727   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_sysfun"};
11728
11729   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_sysfun]},
11730           Parse::RecDescent::_tracefirst($_[1]),
11731           q{_alternation_1_of_production_1_of_rule_sysfun},
11732           $tracelevel)
11733           if defined $::RD_TRACE;
11734
11735
11736   my $err_at = @{$thisparser->{errors}};
11737
11738   my $score;
11739   my $score_return;
11740   my $_tok;
11741   my $return = undef;
11742   my $_matched=0;
11743   my $commit=0;
11744   my @item = ();
11745   my %item = ();
11746   my $repeating =  defined($_[2]) && $_[2];
11747   my $_noactions = defined($_[3]) && $_[3];
11748    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11749   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11750   my $text;
11751   my $lastsep="";
11752   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11753   $expectation->at($_[1]);
11754
11755   my $thisline;
11756   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11757
11758
11759
11760   while (!$_matched && !$commit)
11761   {
11762
11763     Parse::RecDescent::_trace(q{Trying production: [/ABS/i]},
11764             Parse::RecDescent::_tracefirst($_[1]),
11765             q{_alternation_1_of_production_1_of_rule_sysfun},
11766             $tracelevel)
11767             if defined $::RD_TRACE;
11768     my $thisprod = $thisrule->{"prods"}[0];
11769     $text = $_[1];
11770     my $_savetext;
11771     @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
11772     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
11773     my $repcount = 0;
11774
11775
11776     Parse::RecDescent::_trace(q{Trying terminal: [/ABS/i]}, Parse::RecDescent::_tracefirst($text),
11777             q{_alternation_1_of_production_1_of_rule_sysfun},
11778             $tracelevel)
11779             if defined $::RD_TRACE;
11780     $lastsep = "";
11781     $expectation->is(q{})->at($text);
11782
11783
11784     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABS)//i)
11785     {
11786
11787       $expectation->failed();
11788       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11789               Parse::RecDescent::_tracefirst($text))
11790           if defined $::RD_TRACE;
11791
11792       last;
11793     }
11794     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11795             . $& . q{])},
11796               Parse::RecDescent::_tracefirst($text))
11797           if defined $::RD_TRACE;
11798     push @item, $item{__PATTERN1__}=$&;
11799
11800
11801
11802     Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i]<<},
11803             Parse::RecDescent::_tracefirst($text),
11804             q{_alternation_1_of_production_1_of_rule_sysfun},
11805             $tracelevel)
11806             if defined $::RD_TRACE;
11807     $_matched = 1;
11808     last;
11809   }
11810
11811
11812   while (!$_matched && !$commit)
11813   {
11814
11815     Parse::RecDescent::_trace(q{Trying production: [/ABSVAL/i]},
11816             Parse::RecDescent::_tracefirst($_[1]),
11817             q{_alternation_1_of_production_1_of_rule_sysfun},
11818             $tracelevel)
11819             if defined $::RD_TRACE;
11820     my $thisprod = $thisrule->{"prods"}[1];
11821     $text = $_[1];
11822     my $_savetext;
11823     @item = (q{_alternation_1_of_production_1_of_rule_sysfun});
11824     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysfun});
11825     my $repcount = 0;
11826
11827
11828     Parse::RecDescent::_trace(q{Trying terminal: [/ABSVAL/i]}, Parse::RecDescent::_tracefirst($text),
11829             q{_alternation_1_of_production_1_of_rule_sysfun},
11830             $tracelevel)
11831             if defined $::RD_TRACE;
11832     $lastsep = "";
11833     $expectation->is(q{})->at($text);
11834
11835
11836     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABSVAL)//i)
11837     {
11838
11839       $expectation->failed();
11840       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11841               Parse::RecDescent::_tracefirst($text))
11842           if defined $::RD_TRACE;
11843
11844       last;
11845     }
11846     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11847             . $& . q{])},
11848               Parse::RecDescent::_tracefirst($text))
11849           if defined $::RD_TRACE;
11850     push @item, $item{__PATTERN1__}=$&;
11851
11852
11853
11854     Parse::RecDescent::_trace(q{>>Matched production: [/ABSVAL/i]<<},
11855             Parse::RecDescent::_tracefirst($text),
11856             q{_alternation_1_of_production_1_of_rule_sysfun},
11857             $tracelevel)
11858             if defined $::RD_TRACE;
11859     $_matched = 1;
11860     last;
11861   }
11862
11863
11864         unless ( $_matched || defined($return) || defined($score) )
11865   {
11866
11867
11868     $_[1] = $text;  # NOT SURE THIS IS NEEDED
11869     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
11870            Parse::RecDescent::_tracefirst($_[1]),
11871            q{_alternation_1_of_production_1_of_rule_sysfun},
11872            $tracelevel)
11873           if defined $::RD_TRACE;
11874     return undef;
11875   }
11876   if (!defined($return) && defined($score))
11877   {
11878     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
11879             q{_alternation_1_of_production_1_of_rule_sysfun},
11880             $tracelevel)
11881             if defined $::RD_TRACE;
11882     $return = $score_return;
11883   }
11884   splice @{$thisparser->{errors}}, $err_at;
11885   $return = $item[$#item] unless defined $return;
11886   if (defined $::RD_TRACE)
11887   {
11888     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
11889             $return . q{])}, "",
11890             q{_alternation_1_of_production_1_of_rule_sysfun},
11891             $tracelevel);
11892     Parse::RecDescent::_trace(q{(consumed: [} .
11893             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
11894             Parse::RecDescent::_tracefirst($text),
11895             , q{_alternation_1_of_production_1_of_rule_sysfun},
11896             $tracelevel)
11897   }
11898   $_[1] = $text;
11899   return $return;
11900 }
11901
11902 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
11903 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function
11904 {
11905   my $thisparser = $_[0];
11906   use vars q{$tracelevel};
11907   local $tracelevel = ($tracelevel||0)+1;
11908   $ERRORS = 0;
11909   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_function"};
11910
11911   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_function]},
11912           Parse::RecDescent::_tracefirst($_[1]),
11913           q{_alternation_1_of_production_1_of_rule_function},
11914           $tracelevel)
11915           if defined $::RD_TRACE;
11916
11917
11918   my $err_at = @{$thisparser->{errors}};
11919
11920   my $score;
11921   my $score_return;
11922   my $_tok;
11923   my $return = undef;
11924   my $_matched=0;
11925   my $commit=0;
11926   my @item = ();
11927   my %item = ();
11928   my $repeating =  defined($_[2]) && $_[2];
11929   my $_noactions = defined($_[3]) && $_[3];
11930    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
11931   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
11932   my $text;
11933   my $lastsep="";
11934   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
11935   $expectation->at($_[1]);
11936
11937   my $thisline;
11938   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
11939
11940
11941
11942   while (!$_matched && !$commit)
11943   {
11944
11945     Parse::RecDescent::_trace(q{Trying production: [/SYSIBM\\.|/i sysibm_function]},
11946             Parse::RecDescent::_tracefirst($_[1]),
11947             q{_alternation_1_of_production_1_of_rule_function},
11948             $tracelevel)
11949             if defined $::RD_TRACE;
11950     my $thisprod = $thisrule->{"prods"}[0];
11951     $text = $_[1];
11952     my $_savetext;
11953     @item = (q{_alternation_1_of_production_1_of_rule_function});
11954     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
11955     my $repcount = 0;
11956
11957
11958     Parse::RecDescent::_trace(q{Trying terminal: [/SYSIBM\\.|/i]}, Parse::RecDescent::_tracefirst($text),
11959             q{_alternation_1_of_production_1_of_rule_function},
11960             $tracelevel)
11961             if defined $::RD_TRACE;
11962     $lastsep = "";
11963     $expectation->is(q{})->at($text);
11964
11965
11966     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SYSIBM\.|)//i)
11967     {
11968
11969       $expectation->failed();
11970       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
11971               Parse::RecDescent::_tracefirst($text))
11972           if defined $::RD_TRACE;
11973
11974       last;
11975     }
11976     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
11977             . $& . q{])},
11978               Parse::RecDescent::_tracefirst($text))
11979           if defined $::RD_TRACE;
11980     push @item, $item{__PATTERN1__}=$&;
11981
11982
11983     Parse::RecDescent::_trace(q{Trying subrule: [sysibm_function]},
11984           Parse::RecDescent::_tracefirst($text),
11985           q{_alternation_1_of_production_1_of_rule_function},
11986           $tracelevel)
11987           if defined $::RD_TRACE;
11988     if (1) { no strict qw{refs};
11989     $expectation->is(q{sysibm_function})->at($text);
11990     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysibm_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
11991     {
11992
11993       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sysibm_function]>>},
11994               Parse::RecDescent::_tracefirst($text),
11995               q{_alternation_1_of_production_1_of_rule_function},
11996               $tracelevel)
11997               if defined $::RD_TRACE;
11998       $expectation->failed();
11999       last;
12000     }
12001     Parse::RecDescent::_trace(q{>>Matched subrule: [sysibm_function]<< (return value: [}
12002           . $_tok . q{]},
12003
12004             Parse::RecDescent::_tracefirst($text),
12005             q{_alternation_1_of_production_1_of_rule_function},
12006             $tracelevel)
12007             if defined $::RD_TRACE;
12008     $item{q{sysibm_function}} = $_tok;
12009     push @item, $_tok;
12010
12011     }
12012
12013
12014     Parse::RecDescent::_trace(q{>>Matched production: [/SYSIBM\\.|/i sysibm_function]<<},
12015             Parse::RecDescent::_tracefirst($text),
12016             q{_alternation_1_of_production_1_of_rule_function},
12017             $tracelevel)
12018             if defined $::RD_TRACE;
12019     $_matched = 1;
12020     last;
12021   }
12022
12023
12024   while (!$_matched && !$commit)
12025   {
12026
12027     Parse::RecDescent::_trace(q{Trying production: [/SYSFUN\\.|/i sysfun_function]},
12028             Parse::RecDescent::_tracefirst($_[1]),
12029             q{_alternation_1_of_production_1_of_rule_function},
12030             $tracelevel)
12031             if defined $::RD_TRACE;
12032     my $thisprod = $thisrule->{"prods"}[1];
12033     $text = $_[1];
12034     my $_savetext;
12035     @item = (q{_alternation_1_of_production_1_of_rule_function});
12036     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
12037     my $repcount = 0;
12038
12039
12040     Parse::RecDescent::_trace(q{Trying terminal: [/SYSFUN\\.|/i]}, Parse::RecDescent::_tracefirst($text),
12041             q{_alternation_1_of_production_1_of_rule_function},
12042             $tracelevel)
12043             if defined $::RD_TRACE;
12044     $lastsep = "";
12045     $expectation->is(q{})->at($text);
12046
12047
12048     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SYSFUN\.|)//i)
12049     {
12050
12051       $expectation->failed();
12052       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
12053               Parse::RecDescent::_tracefirst($text))
12054           if defined $::RD_TRACE;
12055
12056       last;
12057     }
12058     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
12059             . $& . q{])},
12060               Parse::RecDescent::_tracefirst($text))
12061           if defined $::RD_TRACE;
12062     push @item, $item{__PATTERN1__}=$&;
12063
12064
12065     Parse::RecDescent::_trace(q{Trying subrule: [sysfun_function]},
12066           Parse::RecDescent::_tracefirst($text),
12067           q{_alternation_1_of_production_1_of_rule_function},
12068           $tracelevel)
12069           if defined $::RD_TRACE;
12070     if (1) { no strict qw{refs};
12071     $expectation->is(q{sysfun_function})->at($text);
12072     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12073     {
12074
12075       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sysfun_function]>>},
12076               Parse::RecDescent::_tracefirst($text),
12077               q{_alternation_1_of_production_1_of_rule_function},
12078               $tracelevel)
12079               if defined $::RD_TRACE;
12080       $expectation->failed();
12081       last;
12082     }
12083     Parse::RecDescent::_trace(q{>>Matched subrule: [sysfun_function]<< (return value: [}
12084           . $_tok . q{]},
12085
12086             Parse::RecDescent::_tracefirst($text),
12087             q{_alternation_1_of_production_1_of_rule_function},
12088             $tracelevel)
12089             if defined $::RD_TRACE;
12090     $item{q{sysfun_function}} = $_tok;
12091     push @item, $_tok;
12092
12093     }
12094
12095
12096     Parse::RecDescent::_trace(q{>>Matched production: [/SYSFUN\\.|/i sysfun_function]<<},
12097             Parse::RecDescent::_tracefirst($text),
12098             q{_alternation_1_of_production_1_of_rule_function},
12099             $tracelevel)
12100             if defined $::RD_TRACE;
12101     $_matched = 1;
12102     last;
12103   }
12104
12105
12106   while (!$_matched && !$commit)
12107   {
12108
12109     Parse::RecDescent::_trace(q{Trying production: [userdefined_function]},
12110             Parse::RecDescent::_tracefirst($_[1]),
12111             q{_alternation_1_of_production_1_of_rule_function},
12112             $tracelevel)
12113             if defined $::RD_TRACE;
12114     my $thisprod = $thisrule->{"prods"}[2];
12115     $text = $_[1];
12116     my $_savetext;
12117     @item = (q{_alternation_1_of_production_1_of_rule_function});
12118     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_function});
12119     my $repcount = 0;
12120
12121
12122     Parse::RecDescent::_trace(q{Trying subrule: [userdefined_function]},
12123           Parse::RecDescent::_tracefirst($text),
12124           q{_alternation_1_of_production_1_of_rule_function},
12125           $tracelevel)
12126           if defined $::RD_TRACE;
12127     if (1) { no strict qw{refs};
12128     $expectation->is(q{})->at($text);
12129     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::userdefined_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12130     {
12131
12132       Parse::RecDescent::_trace(q{<<Didn't match subrule: [userdefined_function]>>},
12133               Parse::RecDescent::_tracefirst($text),
12134               q{_alternation_1_of_production_1_of_rule_function},
12135               $tracelevel)
12136               if defined $::RD_TRACE;
12137       $expectation->failed();
12138       last;
12139     }
12140     Parse::RecDescent::_trace(q{>>Matched subrule: [userdefined_function]<< (return value: [}
12141           . $_tok . q{]},
12142
12143             Parse::RecDescent::_tracefirst($text),
12144             q{_alternation_1_of_production_1_of_rule_function},
12145             $tracelevel)
12146             if defined $::RD_TRACE;
12147     $item{q{userdefined_function}} = $_tok;
12148     push @item, $_tok;
12149
12150     }
12151
12152
12153     Parse::RecDescent::_trace(q{>>Matched production: [userdefined_function]<<},
12154             Parse::RecDescent::_tracefirst($text),
12155             q{_alternation_1_of_production_1_of_rule_function},
12156             $tracelevel)
12157             if defined $::RD_TRACE;
12158     $_matched = 1;
12159     last;
12160   }
12161
12162
12163         unless ( $_matched || defined($return) || defined($score) )
12164   {
12165
12166
12167     $_[1] = $text;  # NOT SURE THIS IS NEEDED
12168     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12169            Parse::RecDescent::_tracefirst($_[1]),
12170            q{_alternation_1_of_production_1_of_rule_function},
12171            $tracelevel)
12172           if defined $::RD_TRACE;
12173     return undef;
12174   }
12175   if (!defined($return) && defined($score))
12176   {
12177     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12178             q{_alternation_1_of_production_1_of_rule_function},
12179             $tracelevel)
12180             if defined $::RD_TRACE;
12181     $return = $score_return;
12182   }
12183   splice @{$thisparser->{errors}}, $err_at;
12184   $return = $item[$#item] unless defined $return;
12185   if (defined $::RD_TRACE)
12186   {
12187     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12188             $return . q{])}, "",
12189             q{_alternation_1_of_production_1_of_rule_function},
12190             $tracelevel);
12191     Parse::RecDescent::_trace(q{(consumed: [} .
12192             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12193             Parse::RecDescent::_tracefirst($text),
12194             , q{_alternation_1_of_production_1_of_rule_function},
12195             $tracelevel)
12196   }
12197   $_[1] = $text;
12198   return $return;
12199 }
12200
12201 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12202 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier
12203 {
12204   my $thisparser = $_[0];
12205   use vars q{$tracelevel};
12206   local $tracelevel = ($tracelevel||0)+1;
12207   $ERRORS = 0;
12208   my $thisrule = $thisparser->{"rules"}{"identifier"};
12209
12210   Parse::RecDescent::_trace(q{Trying rule: [identifier]},
12211           Parse::RecDescent::_tracefirst($_[1]),
12212           q{identifier},
12213           $tracelevel)
12214           if defined $::RD_TRACE;
12215
12216
12217   my $err_at = @{$thisparser->{errors}};
12218
12219   my $score;
12220   my $score_return;
12221   my $_tok;
12222   my $return = undef;
12223   my $_matched=0;
12224   my $commit=0;
12225   my @item = ();
12226   my %item = ();
12227   my $repeating =  defined($_[2]) && $_[2];
12228   my $_noactions = defined($_[3]) && $_[3];
12229    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12230   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12231   my $text;
12232   my $lastsep="";
12233   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12234   $expectation->at($_[1]);
12235
12236   my $thisline;
12237   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12238
12239
12240
12241   while (!$_matched && !$commit)
12242   {
12243
12244     Parse::RecDescent::_trace(q{Trying production: [NAME]},
12245             Parse::RecDescent::_tracefirst($_[1]),
12246             q{identifier},
12247             $tracelevel)
12248             if defined $::RD_TRACE;
12249     my $thisprod = $thisrule->{"prods"}[0];
12250     $text = $_[1];
12251     my $_savetext;
12252     @item = (q{identifier});
12253     %item = (__RULE__ => q{identifier});
12254     my $repcount = 0;
12255
12256
12257     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
12258           Parse::RecDescent::_tracefirst($text),
12259           q{identifier},
12260           $tracelevel)
12261           if defined $::RD_TRACE;
12262     if (1) { no strict qw{refs};
12263     $expectation->is(q{})->at($text);
12264     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12265     {
12266
12267       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
12268               Parse::RecDescent::_tracefirst($text),
12269               q{identifier},
12270               $tracelevel)
12271               if defined $::RD_TRACE;
12272       $expectation->failed();
12273       last;
12274     }
12275     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
12276           . $_tok . q{]},
12277
12278             Parse::RecDescent::_tracefirst($text),
12279             q{identifier},
12280             $tracelevel)
12281             if defined $::RD_TRACE;
12282     $item{q{NAME}} = $_tok;
12283     push @item, $_tok;
12284
12285     }
12286
12287
12288     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
12289             Parse::RecDescent::_tracefirst($text),
12290             q{identifier},
12291             $tracelevel)
12292             if defined $::RD_TRACE;
12293     $_matched = 1;
12294     last;
12295   }
12296
12297
12298         unless ( $_matched || defined($return) || defined($score) )
12299   {
12300
12301
12302     $_[1] = $text;  # NOT SURE THIS IS NEEDED
12303     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12304            Parse::RecDescent::_tracefirst($_[1]),
12305            q{identifier},
12306            $tracelevel)
12307           if defined $::RD_TRACE;
12308     return undef;
12309   }
12310   if (!defined($return) && defined($score))
12311   {
12312     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12313             q{identifier},
12314             $tracelevel)
12315             if defined $::RD_TRACE;
12316     $return = $score_return;
12317   }
12318   splice @{$thisparser->{errors}}, $err_at;
12319   $return = $item[$#item] unless defined $return;
12320   if (defined $::RD_TRACE)
12321   {
12322     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12323             $return . q{])}, "",
12324             q{identifier},
12325             $tracelevel);
12326     Parse::RecDescent::_trace(q{(consumed: [} .
12327             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12328             Parse::RecDescent::_tracefirst($text),
12329             , q{identifier},
12330             $tracelevel)
12331   }
12332   $_[1] = $text;
12333   return $return;
12334 }
12335
12336 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12337 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause
12338 {
12339   my $thisparser = $_[0];
12340   use vars q{$tracelevel};
12341   local $tracelevel = ($tracelevel||0)+1;
12342   $ERRORS = 0;
12343   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause"};
12344
12345   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]},
12346           Parse::RecDescent::_tracefirst($_[1]),
12347           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12348           $tracelevel)
12349           if defined $::RD_TRACE;
12350
12351
12352   my $err_at = @{$thisparser->{errors}};
12353
12354   my $score;
12355   my $score_return;
12356   my $_tok;
12357   my $return = undef;
12358   my $_matched=0;
12359   my $commit=0;
12360   my @item = ();
12361   my %item = ();
12362   my $repeating =  defined($_[2]) && $_[2];
12363   my $_noactions = defined($_[3]) && $_[3];
12364    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12365   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12366   my $text;
12367   my $lastsep="";
12368   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12369   $expectation->at($_[1]);
12370
12371   my $thisline;
12372   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12373
12374
12375
12376   while (!$_matched && !$commit)
12377   {
12378
12379     Parse::RecDescent::_trace(q{Trying production: [asc_option]},
12380             Parse::RecDescent::_tracefirst($_[1]),
12381             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12382             $tracelevel)
12383             if defined $::RD_TRACE;
12384     my $thisprod = $thisrule->{"prods"}[0];
12385     $text = $_[1];
12386     my $_savetext;
12387     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12388     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12389     my $repcount = 0;
12390
12391
12392     Parse::RecDescent::_trace(q{Trying subrule: [asc_option]},
12393           Parse::RecDescent::_tracefirst($text),
12394           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12395           $tracelevel)
12396           if defined $::RD_TRACE;
12397     if (1) { no strict qw{refs};
12398     $expectation->is(q{})->at($text);
12399     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12400     {
12401
12402       Parse::RecDescent::_trace(q{<<Didn't match subrule: [asc_option]>>},
12403               Parse::RecDescent::_tracefirst($text),
12404               q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12405               $tracelevel)
12406               if defined $::RD_TRACE;
12407       $expectation->failed();
12408       last;
12409     }
12410     Parse::RecDescent::_trace(q{>>Matched subrule: [asc_option]<< (return value: [}
12411           . $_tok . q{]},
12412
12413             Parse::RecDescent::_tracefirst($text),
12414             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12415             $tracelevel)
12416             if defined $::RD_TRACE;
12417     $item{q{asc_option}} = $_tok;
12418     push @item, $_tok;
12419
12420     }
12421
12422
12423     Parse::RecDescent::_trace(q{>>Matched production: [asc_option]<<},
12424             Parse::RecDescent::_tracefirst($text),
12425             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12426             $tracelevel)
12427             if defined $::RD_TRACE;
12428     $_matched = 1;
12429     last;
12430   }
12431
12432
12433   while (!$_matched && !$commit)
12434   {
12435
12436     Parse::RecDescent::_trace(q{Trying production: [desc_option]},
12437             Parse::RecDescent::_tracefirst($_[1]),
12438             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12439             $tracelevel)
12440             if defined $::RD_TRACE;
12441     my $thisprod = $thisrule->{"prods"}[1];
12442     $text = $_[1];
12443     my $_savetext;
12444     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12445     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause});
12446     my $repcount = 0;
12447
12448
12449     Parse::RecDescent::_trace(q{Trying subrule: [desc_option]},
12450           Parse::RecDescent::_tracefirst($text),
12451           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12452           $tracelevel)
12453           if defined $::RD_TRACE;
12454     if (1) { no strict qw{refs};
12455     $expectation->is(q{})->at($text);
12456     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12457     {
12458
12459       Parse::RecDescent::_trace(q{<<Didn't match subrule: [desc_option]>>},
12460               Parse::RecDescent::_tracefirst($text),
12461               q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12462               $tracelevel)
12463               if defined $::RD_TRACE;
12464       $expectation->failed();
12465       last;
12466     }
12467     Parse::RecDescent::_trace(q{>>Matched subrule: [desc_option]<< (return value: [}
12468           . $_tok . q{]},
12469
12470             Parse::RecDescent::_tracefirst($text),
12471             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12472             $tracelevel)
12473             if defined $::RD_TRACE;
12474     $item{q{desc_option}} = $_tok;
12475     push @item, $_tok;
12476
12477     }
12478
12479
12480     Parse::RecDescent::_trace(q{>>Matched production: [desc_option]<<},
12481             Parse::RecDescent::_tracefirst($text),
12482             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12483             $tracelevel)
12484             if defined $::RD_TRACE;
12485     $_matched = 1;
12486     last;
12487   }
12488
12489
12490         unless ( $_matched || defined($return) || defined($score) )
12491   {
12492
12493
12494     $_[1] = $text;  # NOT SURE THIS IS NEEDED
12495     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12496            Parse::RecDescent::_tracefirst($_[1]),
12497            q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12498            $tracelevel)
12499           if defined $::RD_TRACE;
12500     return undef;
12501   }
12502   if (!defined($return) && defined($score))
12503   {
12504     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12505             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12506             $tracelevel)
12507             if defined $::RD_TRACE;
12508     $return = $score_return;
12509   }
12510   splice @{$thisparser->{errors}}, $err_at;
12511   $return = $item[$#item] unless defined $return;
12512   if (defined $::RD_TRACE)
12513   {
12514     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12515             $return . q{])}, "",
12516             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12517             $tracelevel);
12518     Parse::RecDescent::_trace(q{(consumed: [} .
12519             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12520             Parse::RecDescent::_tracefirst($text),
12521             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause},
12522             $tracelevel)
12523   }
12524   $_[1] = $text;
12525   return $return;
12526 }
12527
12528 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12529 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression
12530 {
12531   my $thisparser = $_[0];
12532   use vars q{$tracelevel};
12533   local $tracelevel = ($tracelevel||0)+1;
12534   $ERRORS = 0;
12535   my $thisrule = $thisparser->{"rules"}{"result_expression"};
12536
12537   Parse::RecDescent::_trace(q{Trying rule: [result_expression]},
12538           Parse::RecDescent::_tracefirst($_[1]),
12539           q{result_expression},
12540           $tracelevel)
12541           if defined $::RD_TRACE;
12542
12543
12544   my $err_at = @{$thisparser->{errors}};
12545
12546   my $score;
12547   my $score_return;
12548   my $_tok;
12549   my $return = undef;
12550   my $_matched=0;
12551   my $commit=0;
12552   my @item = ();
12553   my %item = ();
12554   my $repeating =  defined($_[2]) && $_[2];
12555   my $_noactions = defined($_[3]) && $_[3];
12556    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12557   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12558   my $text;
12559   my $lastsep="";
12560   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12561   $expectation->at($_[1]);
12562
12563   my $thisline;
12564   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12565
12566
12567
12568   while (!$_matched && !$commit)
12569   {
12570
12571     Parse::RecDescent::_trace(q{Trying production: [expression]},
12572             Parse::RecDescent::_tracefirst($_[1]),
12573             q{result_expression},
12574             $tracelevel)
12575             if defined $::RD_TRACE;
12576     my $thisprod = $thisrule->{"prods"}[0];
12577     $text = $_[1];
12578     my $_savetext;
12579     @item = (q{result_expression});
12580     %item = (__RULE__ => q{result_expression});
12581     my $repcount = 0;
12582
12583
12584     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
12585           Parse::RecDescent::_tracefirst($text),
12586           q{result_expression},
12587           $tracelevel)
12588           if defined $::RD_TRACE;
12589     if (1) { no strict qw{refs};
12590     $expectation->is(q{})->at($text);
12591     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12592     {
12593
12594       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
12595               Parse::RecDescent::_tracefirst($text),
12596               q{result_expression},
12597               $tracelevel)
12598               if defined $::RD_TRACE;
12599       $expectation->failed();
12600       last;
12601     }
12602     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
12603           . $_tok . q{]},
12604
12605             Parse::RecDescent::_tracefirst($text),
12606             q{result_expression},
12607             $tracelevel)
12608             if defined $::RD_TRACE;
12609     $item{q{expression}} = $_tok;
12610     push @item, $_tok;
12611
12612     }
12613
12614
12615     Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
12616             Parse::RecDescent::_tracefirst($text),
12617             q{result_expression},
12618             $tracelevel)
12619             if defined $::RD_TRACE;
12620     $_matched = 1;
12621     last;
12622   }
12623
12624
12625         unless ( $_matched || defined($return) || defined($score) )
12626   {
12627
12628
12629     $_[1] = $text;  # NOT SURE THIS IS NEEDED
12630     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12631            Parse::RecDescent::_tracefirst($_[1]),
12632            q{result_expression},
12633            $tracelevel)
12634           if defined $::RD_TRACE;
12635     return undef;
12636   }
12637   if (!defined($return) && defined($score))
12638   {
12639     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12640             q{result_expression},
12641             $tracelevel)
12642             if defined $::RD_TRACE;
12643     $return = $score_return;
12644   }
12645   splice @{$thisparser->{errors}}, $err_at;
12646   $return = $item[$#item] unless defined $return;
12647   if (defined $::RD_TRACE)
12648   {
12649     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12650             $return . q{])}, "",
12651             q{result_expression},
12652             $tracelevel);
12653     Parse::RecDescent::_trace(q{(consumed: [} .
12654             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12655             Parse::RecDescent::_tracefirst($text),
12656             , q{result_expression},
12657             $tracelevel)
12658   }
12659   $_[1] = $text;
12660   return $return;
12661 }
12662
12663 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12664 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression
12665 {
12666   my $thisparser = $_[0];
12667   use vars q{$tracelevel};
12668   local $tracelevel = ($tracelevel||0)+1;
12669   $ERRORS = 0;
12670   my $thisrule = $thisparser->{"rules"}{"scoped_reference_expression"};
12671
12672   Parse::RecDescent::_trace(q{Trying rule: [scoped_reference_expression]},
12673           Parse::RecDescent::_tracefirst($_[1]),
12674           q{scoped_reference_expression},
12675           $tracelevel)
12676           if defined $::RD_TRACE;
12677
12678
12679   my $err_at = @{$thisparser->{errors}};
12680
12681   my $score;
12682   my $score_return;
12683   my $_tok;
12684   my $return = undef;
12685   my $_matched=0;
12686   my $commit=0;
12687   my @item = ();
12688   my %item = ();
12689   my $repeating =  defined($_[2]) && $_[2];
12690   my $_noactions = defined($_[3]) && $_[3];
12691    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12692   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12693   my $text;
12694   my $lastsep="";
12695   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12696   $expectation->at($_[1]);
12697
12698   my $thisline;
12699   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12700
12701
12702
12703   while (!$_matched && !$commit)
12704   {
12705
12706     Parse::RecDescent::_trace(q{Trying production: [expression]},
12707             Parse::RecDescent::_tracefirst($_[1]),
12708             q{scoped_reference_expression},
12709             $tracelevel)
12710             if defined $::RD_TRACE;
12711     my $thisprod = $thisrule->{"prods"}[0];
12712     $text = $_[1];
12713     my $_savetext;
12714     @item = (q{scoped_reference_expression});
12715     %item = (__RULE__ => q{scoped_reference_expression});
12716     my $repcount = 0;
12717
12718
12719     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
12720           Parse::RecDescent::_tracefirst($text),
12721           q{scoped_reference_expression},
12722           $tracelevel)
12723           if defined $::RD_TRACE;
12724     if (1) { no strict qw{refs};
12725     $expectation->is(q{})->at($text);
12726     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12727     {
12728
12729       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
12730               Parse::RecDescent::_tracefirst($text),
12731               q{scoped_reference_expression},
12732               $tracelevel)
12733               if defined $::RD_TRACE;
12734       $expectation->failed();
12735       last;
12736     }
12737     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
12738           . $_tok . q{]},
12739
12740             Parse::RecDescent::_tracefirst($text),
12741             q{scoped_reference_expression},
12742             $tracelevel)
12743             if defined $::RD_TRACE;
12744     $item{q{expression}} = $_tok;
12745     push @item, $_tok;
12746
12747     }
12748
12749     Parse::RecDescent::_trace(q{Trying action},
12750             Parse::RecDescent::_tracefirst($text),
12751             q{scoped_reference_expression},
12752             $tracelevel)
12753             if defined $::RD_TRACE;
12754
12755
12756     $_tok = ($_noactions) ? 0 : do { # scoped, reference
12757 };
12758     unless (defined $_tok)
12759     {
12760       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
12761           if defined $::RD_TRACE;
12762       last;
12763     }
12764     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
12765             . $_tok . q{])},
12766             Parse::RecDescent::_tracefirst($text))
12767             if defined $::RD_TRACE;
12768     push @item, $_tok;
12769     $item{__ACTION1__}=$_tok;
12770
12771
12772
12773     Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
12774             Parse::RecDescent::_tracefirst($text),
12775             q{scoped_reference_expression},
12776             $tracelevel)
12777             if defined $::RD_TRACE;
12778     $_matched = 1;
12779     last;
12780   }
12781
12782
12783         unless ( $_matched || defined($return) || defined($score) )
12784   {
12785
12786
12787     $_[1] = $text;  # NOT SURE THIS IS NEEDED
12788     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12789            Parse::RecDescent::_tracefirst($_[1]),
12790            q{scoped_reference_expression},
12791            $tracelevel)
12792           if defined $::RD_TRACE;
12793     return undef;
12794   }
12795   if (!defined($return) && defined($score))
12796   {
12797     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12798             q{scoped_reference_expression},
12799             $tracelevel)
12800             if defined $::RD_TRACE;
12801     $return = $score_return;
12802   }
12803   splice @{$thisparser->{errors}}, $err_at;
12804   $return = $item[$#item] unless defined $return;
12805   if (defined $::RD_TRACE)
12806   {
12807     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
12808             $return . q{])}, "",
12809             q{scoped_reference_expression},
12810             $tracelevel);
12811     Parse::RecDescent::_trace(q{(consumed: [} .
12812             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
12813             Parse::RecDescent::_tracefirst($text),
12814             , q{scoped_reference_expression},
12815             $tracelevel)
12816   }
12817   $_[1] = $text;
12818   return $return;
12819 }
12820
12821 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
12822 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification
12823 {
12824   my $thisparser = $_[0];
12825   use vars q{$tracelevel};
12826   local $tracelevel = ($tracelevel||0)+1;
12827   $ERRORS = 0;
12828   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification"};
12829
12830   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification]},
12831           Parse::RecDescent::_tracefirst($_[1]),
12832           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12833           $tracelevel)
12834           if defined $::RD_TRACE;
12835
12836
12837   my $err_at = @{$thisparser->{errors}};
12838
12839   my $score;
12840   my $score_return;
12841   my $_tok;
12842   my $return = undef;
12843   my $_matched=0;
12844   my $commit=0;
12845   my @item = ();
12846   my %item = ();
12847   my $repeating =  defined($_[2]) && $_[2];
12848   my $_noactions = defined($_[3]) && $_[3];
12849    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
12850   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
12851   my $text;
12852   my $lastsep="";
12853   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
12854   $expectation->at($_[1]);
12855
12856   my $thisline;
12857   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
12858
12859
12860
12861   while (!$_matched && !$commit)
12862   {
12863
12864     Parse::RecDescent::_trace(q{Trying production: [typed_table_name]},
12865             Parse::RecDescent::_tracefirst($_[1]),
12866             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12867             $tracelevel)
12868             if defined $::RD_TRACE;
12869     my $thisprod = $thisrule->{"prods"}[0];
12870     $text = $_[1];
12871     my $_savetext;
12872     @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12873     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12874     my $repcount = 0;
12875
12876
12877     Parse::RecDescent::_trace(q{Trying subrule: [typed_table_name]},
12878           Parse::RecDescent::_tracefirst($text),
12879           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12880           $tracelevel)
12881           if defined $::RD_TRACE;
12882     if (1) { no strict qw{refs};
12883     $expectation->is(q{})->at($text);
12884     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12885     {
12886
12887       Parse::RecDescent::_trace(q{<<Didn't match subrule: [typed_table_name]>>},
12888               Parse::RecDescent::_tracefirst($text),
12889               q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12890               $tracelevel)
12891               if defined $::RD_TRACE;
12892       $expectation->failed();
12893       last;
12894     }
12895     Parse::RecDescent::_trace(q{>>Matched subrule: [typed_table_name]<< (return value: [}
12896           . $_tok . q{]},
12897
12898             Parse::RecDescent::_tracefirst($text),
12899             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12900             $tracelevel)
12901             if defined $::RD_TRACE;
12902     $item{q{typed_table_name}} = $_tok;
12903     push @item, $_tok;
12904
12905     }
12906
12907
12908     Parse::RecDescent::_trace(q{>>Matched production: [typed_table_name]<<},
12909             Parse::RecDescent::_tracefirst($text),
12910             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12911             $tracelevel)
12912             if defined $::RD_TRACE;
12913     $_matched = 1;
12914     last;
12915   }
12916
12917
12918   while (!$_matched && !$commit)
12919   {
12920
12921     Parse::RecDescent::_trace(q{Trying production: [typed_view_name]},
12922             Parse::RecDescent::_tracefirst($_[1]),
12923             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12924             $tracelevel)
12925             if defined $::RD_TRACE;
12926     my $thisprod = $thisrule->{"prods"}[1];
12927     $text = $_[1];
12928     my $_savetext;
12929     @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12930     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification});
12931     my $repcount = 0;
12932
12933
12934     Parse::RecDescent::_trace(q{Trying subrule: [typed_view_name]},
12935           Parse::RecDescent::_tracefirst($text),
12936           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12937           $tracelevel)
12938           if defined $::RD_TRACE;
12939     if (1) { no strict qw{refs};
12940     $expectation->is(q{})->at($text);
12941     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::typed_view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
12942     {
12943
12944       Parse::RecDescent::_trace(q{<<Didn't match subrule: [typed_view_name]>>},
12945               Parse::RecDescent::_tracefirst($text),
12946               q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12947               $tracelevel)
12948               if defined $::RD_TRACE;
12949       $expectation->failed();
12950       last;
12951     }
12952     Parse::RecDescent::_trace(q{>>Matched subrule: [typed_view_name]<< (return value: [}
12953           . $_tok . q{]},
12954
12955             Parse::RecDescent::_tracefirst($text),
12956             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12957             $tracelevel)
12958             if defined $::RD_TRACE;
12959     $item{q{typed_view_name}} = $_tok;
12960     push @item, $_tok;
12961
12962     }
12963
12964
12965     Parse::RecDescent::_trace(q{>>Matched production: [typed_view_name]<<},
12966             Parse::RecDescent::_tracefirst($text),
12967             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12968             $tracelevel)
12969             if defined $::RD_TRACE;
12970     $_matched = 1;
12971     last;
12972   }
12973
12974
12975         unless ( $_matched || defined($return) || defined($score) )
12976   {
12977
12978
12979     $_[1] = $text;  # NOT SURE THIS IS NEEDED
12980     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
12981            Parse::RecDescent::_tracefirst($_[1]),
12982            q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12983            $tracelevel)
12984           if defined $::RD_TRACE;
12985     return undef;
12986   }
12987   if (!defined($return) && defined($score))
12988   {
12989     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
12990             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
12991             $tracelevel)
12992             if defined $::RD_TRACE;
12993     $return = $score_return;
12994   }
12995   splice @{$thisparser->{errors}}, $err_at;
12996   $return = $item[$#item] unless defined $return;
12997   if (defined $::RD_TRACE)
12998   {
12999     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13000             $return . q{])}, "",
13001             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
13002             $tracelevel);
13003     Parse::RecDescent::_trace(q{(consumed: [} .
13004             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13005             Parse::RecDescent::_tracefirst($text),
13006             , q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification},
13007             $tracelevel)
13008   }
13009   $_[1] = $text;
13010   return $return;
13011 }
13012
13013 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13014 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::when_clause
13015 {
13016   my $thisparser = $_[0];
13017   use vars q{$tracelevel};
13018   local $tracelevel = ($tracelevel||0)+1;
13019   $ERRORS = 0;
13020   my $thisrule = $thisparser->{"rules"}{"when_clause"};
13021
13022   Parse::RecDescent::_trace(q{Trying rule: [when_clause]},
13023           Parse::RecDescent::_tracefirst($_[1]),
13024           q{when_clause},
13025           $tracelevel)
13026           if defined $::RD_TRACE;
13027
13028
13029   my $err_at = @{$thisparser->{errors}};
13030
13031   my $score;
13032   my $score_return;
13033   my $_tok;
13034   my $return = undef;
13035   my $_matched=0;
13036   my $commit=0;
13037   my @item = ();
13038   my %item = ();
13039   my $repeating =  defined($_[2]) && $_[2];
13040   my $_noactions = defined($_[3]) && $_[3];
13041    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
13042   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
13043   my $text;
13044   my $lastsep="";
13045   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13046   $expectation->at($_[1]);
13047
13048   my $thisline;
13049   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13050
13051
13052
13053   while (!$_matched && !$commit)
13054   {
13055
13056     Parse::RecDescent::_trace(q{Trying production: [/WHEN/i '(' search_condition ')']},
13057             Parse::RecDescent::_tracefirst($_[1]),
13058             q{when_clause},
13059             $tracelevel)
13060             if defined $::RD_TRACE;
13061     my $thisprod = $thisrule->{"prods"}[0];
13062     $text = $_[1];
13063     my $_savetext;
13064     @item = (q{when_clause});
13065     %item = (__RULE__ => q{when_clause});
13066     my $repcount = 0;
13067
13068
13069     Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
13070             q{when_clause},
13071             $tracelevel)
13072             if defined $::RD_TRACE;
13073     $lastsep = "";
13074     $expectation->is(q{})->at($text);
13075
13076
13077     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WHEN)//i)
13078     {
13079
13080       $expectation->failed();
13081       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13082               Parse::RecDescent::_tracefirst($text))
13083           if defined $::RD_TRACE;
13084
13085       last;
13086     }
13087     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13088             . $& . q{])},
13089               Parse::RecDescent::_tracefirst($text))
13090           if defined $::RD_TRACE;
13091     push @item, $item{__PATTERN1__}=$&;
13092
13093
13094     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
13095             Parse::RecDescent::_tracefirst($text),
13096             q{when_clause},
13097             $tracelevel)
13098             if defined $::RD_TRACE;
13099     $lastsep = "";
13100     $expectation->is(q{'('})->at($text);
13101
13102
13103     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
13104     {
13105
13106       $expectation->failed();
13107       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
13108               Parse::RecDescent::_tracefirst($text))
13109               if defined $::RD_TRACE;
13110       last;
13111     }
13112     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13113             . $& . q{])},
13114               Parse::RecDescent::_tracefirst($text))
13115               if defined $::RD_TRACE;
13116     push @item, $item{__STRING1__}=$&;
13117
13118
13119     Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
13120           Parse::RecDescent::_tracefirst($text),
13121           q{when_clause},
13122           $tracelevel)
13123           if defined $::RD_TRACE;
13124     if (1) { no strict qw{refs};
13125     $expectation->is(q{search_condition})->at($text);
13126     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
13127     {
13128
13129       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
13130               Parse::RecDescent::_tracefirst($text),
13131               q{when_clause},
13132               $tracelevel)
13133               if defined $::RD_TRACE;
13134       $expectation->failed();
13135       last;
13136     }
13137     Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
13138           . $_tok . q{]},
13139
13140             Parse::RecDescent::_tracefirst($text),
13141             q{when_clause},
13142             $tracelevel)
13143             if defined $::RD_TRACE;
13144     $item{q{search_condition}} = $_tok;
13145     push @item, $_tok;
13146
13147     }
13148
13149     Parse::RecDescent::_trace(q{Trying terminal: [')']},
13150             Parse::RecDescent::_tracefirst($text),
13151             q{when_clause},
13152             $tracelevel)
13153             if defined $::RD_TRACE;
13154     $lastsep = "";
13155     $expectation->is(q{')'})->at($text);
13156
13157
13158     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
13159     {
13160
13161       $expectation->failed();
13162       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
13163               Parse::RecDescent::_tracefirst($text))
13164               if defined $::RD_TRACE;
13165       last;
13166     }
13167     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13168             . $& . q{])},
13169               Parse::RecDescent::_tracefirst($text))
13170               if defined $::RD_TRACE;
13171     push @item, $item{__STRING2__}=$&;
13172
13173
13174     Parse::RecDescent::_trace(q{Trying action},
13175             Parse::RecDescent::_tracefirst($text),
13176             q{when_clause},
13177             $tracelevel)
13178             if defined $::RD_TRACE;
13179
13180
13181     $_tok = ($_noactions) ? 0 : do {$return = $item[3]};
13182     unless (defined $_tok)
13183     {
13184       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
13185           if defined $::RD_TRACE;
13186       last;
13187     }
13188     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
13189             . $_tok . q{])},
13190             Parse::RecDescent::_tracefirst($text))
13191             if defined $::RD_TRACE;
13192     push @item, $_tok;
13193     $item{__ACTION1__}=$_tok;
13194
13195
13196
13197     Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i '(' search_condition ')']<<},
13198             Parse::RecDescent::_tracefirst($text),
13199             q{when_clause},
13200             $tracelevel)
13201             if defined $::RD_TRACE;
13202     $_matched = 1;
13203     last;
13204   }
13205
13206
13207         unless ( $_matched || defined($return) || defined($score) )
13208   {
13209
13210
13211     $_[1] = $text;  # NOT SURE THIS IS NEEDED
13212     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
13213            Parse::RecDescent::_tracefirst($_[1]),
13214            q{when_clause},
13215            $tracelevel)
13216           if defined $::RD_TRACE;
13217     return undef;
13218   }
13219   if (!defined($return) && defined($score))
13220   {
13221     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13222             q{when_clause},
13223             $tracelevel)
13224             if defined $::RD_TRACE;
13225     $return = $score_return;
13226   }
13227   splice @{$thisparser->{errors}}, $err_at;
13228   $return = $item[$#item] unless defined $return;
13229   if (defined $::RD_TRACE)
13230   {
13231     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13232             $return . q{])}, "",
13233             q{when_clause},
13234             $tracelevel);
13235     Parse::RecDescent::_trace(q{(consumed: [} .
13236             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13237             Parse::RecDescent::_tracefirst($text),
13238             , q{when_clause},
13239             $tracelevel)
13240   }
13241   $_[1] = $text;
13242   return $return;
13243 }
13244
13245 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13246 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option
13247 {
13248   my $thisparser = $_[0];
13249   use vars q{$tracelevel};
13250   local $tracelevel = ($tracelevel||0)+1;
13251   $ERRORS = 0;
13252   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_asc_option"};
13253
13254   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_asc_option]},
13255           Parse::RecDescent::_tracefirst($_[1]),
13256           q{_alternation_1_of_production_1_of_rule_asc_option},
13257           $tracelevel)
13258           if defined $::RD_TRACE;
13259
13260
13261   my $err_at = @{$thisparser->{errors}};
13262
13263   my $score;
13264   my $score_return;
13265   my $_tok;
13266   my $return = undef;
13267   my $_matched=0;
13268   my $commit=0;
13269   my @item = ();
13270   my %item = ();
13271   my $repeating =  defined($_[2]) && $_[2];
13272   my $_noactions = defined($_[3]) && $_[3];
13273    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
13274   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
13275   my $text;
13276   my $lastsep="";
13277   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13278   $expectation->at($_[1]);
13279
13280   my $thisline;
13281   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13282
13283
13284
13285   while (!$_matched && !$commit)
13286   {
13287
13288     Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+FIRST/i]},
13289             Parse::RecDescent::_tracefirst($_[1]),
13290             q{_alternation_1_of_production_1_of_rule_asc_option},
13291             $tracelevel)
13292             if defined $::RD_TRACE;
13293     my $thisprod = $thisrule->{"prods"}[0];
13294     $text = $_[1];
13295     my $_savetext;
13296     @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
13297     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
13298     my $repcount = 0;
13299
13300
13301     Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+FIRST/i]}, Parse::RecDescent::_tracefirst($text),
13302             q{_alternation_1_of_production_1_of_rule_asc_option},
13303             $tracelevel)
13304             if defined $::RD_TRACE;
13305     $lastsep = "";
13306     $expectation->is(q{})->at($text);
13307
13308
13309     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+FIRST)//i)
13310     {
13311
13312       $expectation->failed();
13313       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13314               Parse::RecDescent::_tracefirst($text))
13315           if defined $::RD_TRACE;
13316
13317       last;
13318     }
13319     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13320             . $& . q{])},
13321               Parse::RecDescent::_tracefirst($text))
13322           if defined $::RD_TRACE;
13323     push @item, $item{__PATTERN1__}=$&;
13324
13325
13326
13327     Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+FIRST/i]<<},
13328             Parse::RecDescent::_tracefirst($text),
13329             q{_alternation_1_of_production_1_of_rule_asc_option},
13330             $tracelevel)
13331             if defined $::RD_TRACE;
13332     $_matched = 1;
13333     last;
13334   }
13335
13336
13337   while (!$_matched && !$commit)
13338   {
13339
13340     Parse::RecDescent::_trace(q{Trying production: [/NULLS\\s+LAST/i]},
13341             Parse::RecDescent::_tracefirst($_[1]),
13342             q{_alternation_1_of_production_1_of_rule_asc_option},
13343             $tracelevel)
13344             if defined $::RD_TRACE;
13345     my $thisprod = $thisrule->{"prods"}[1];
13346     $text = $_[1];
13347     my $_savetext;
13348     @item = (q{_alternation_1_of_production_1_of_rule_asc_option});
13349     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_asc_option});
13350     my $repcount = 0;
13351
13352
13353     Parse::RecDescent::_trace(q{Trying terminal: [/NULLS\\s+LAST/i]}, Parse::RecDescent::_tracefirst($text),
13354             q{_alternation_1_of_production_1_of_rule_asc_option},
13355             $tracelevel)
13356             if defined $::RD_TRACE;
13357     $lastsep = "";
13358     $expectation->is(q{})->at($text);
13359
13360
13361     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULLS\s+LAST)//i)
13362     {
13363
13364       $expectation->failed();
13365       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13366               Parse::RecDescent::_tracefirst($text))
13367           if defined $::RD_TRACE;
13368
13369       last;
13370     }
13371     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13372             . $& . q{])},
13373               Parse::RecDescent::_tracefirst($text))
13374           if defined $::RD_TRACE;
13375     push @item, $item{__PATTERN1__}=$&;
13376
13377
13378
13379     Parse::RecDescent::_trace(q{>>Matched production: [/NULLS\\s+LAST/i]<<},
13380             Parse::RecDescent::_tracefirst($text),
13381             q{_alternation_1_of_production_1_of_rule_asc_option},
13382             $tracelevel)
13383             if defined $::RD_TRACE;
13384     $_matched = 1;
13385     last;
13386   }
13387
13388
13389         unless ( $_matched || defined($return) || defined($score) )
13390   {
13391
13392
13393     $_[1] = $text;  # NOT SURE THIS IS NEEDED
13394     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
13395            Parse::RecDescent::_tracefirst($_[1]),
13396            q{_alternation_1_of_production_1_of_rule_asc_option},
13397            $tracelevel)
13398           if defined $::RD_TRACE;
13399     return undef;
13400   }
13401   if (!defined($return) && defined($score))
13402   {
13403     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13404             q{_alternation_1_of_production_1_of_rule_asc_option},
13405             $tracelevel)
13406             if defined $::RD_TRACE;
13407     $return = $score_return;
13408   }
13409   splice @{$thisparser->{errors}}, $err_at;
13410   $return = $item[$#item] unless defined $return;
13411   if (defined $::RD_TRACE)
13412   {
13413     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13414             $return . q{])}, "",
13415             q{_alternation_1_of_production_1_of_rule_asc_option},
13416             $tracelevel);
13417     Parse::RecDescent::_trace(q{(consumed: [} .
13418             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13419             Parse::RecDescent::_tracefirst($text),
13420             , q{_alternation_1_of_production_1_of_rule_asc_option},
13421             $tracelevel)
13422   }
13423   $_[1] = $text;
13424   return $return;
13425 }
13426
13427 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13428 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name
13429 {
13430   my $thisparser = $_[0];
13431   use vars q{$tracelevel};
13432   local $tracelevel = ($tracelevel||0)+1;
13433   $ERRORS = 0;
13434   my $thisrule = $thisparser->{"rules"}{"sequence_name"};
13435
13436   Parse::RecDescent::_trace(q{Trying rule: [sequence_name]},
13437           Parse::RecDescent::_tracefirst($_[1]),
13438           q{sequence_name},
13439           $tracelevel)
13440           if defined $::RD_TRACE;
13441
13442
13443   my $err_at = @{$thisparser->{errors}};
13444
13445   my $score;
13446   my $score_return;
13447   my $_tok;
13448   my $return = undef;
13449   my $_matched=0;
13450   my $commit=0;
13451   my @item = ();
13452   my %item = ();
13453   my $repeating =  defined($_[2]) && $_[2];
13454   my $_noactions = defined($_[3]) && $_[3];
13455    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
13456   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
13457   my $text;
13458   my $lastsep="";
13459   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13460   $expectation->at($_[1]);
13461
13462   my $thisline;
13463   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13464
13465
13466
13467   while (!$_matched && !$commit)
13468   {
13469
13470     Parse::RecDescent::_trace(q{Trying production: [NAME]},
13471             Parse::RecDescent::_tracefirst($_[1]),
13472             q{sequence_name},
13473             $tracelevel)
13474             if defined $::RD_TRACE;
13475     my $thisprod = $thisrule->{"prods"}[0];
13476     $text = $_[1];
13477     my $_savetext;
13478     @item = (q{sequence_name});
13479     %item = (__RULE__ => q{sequence_name});
13480     my $repcount = 0;
13481
13482
13483     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
13484           Parse::RecDescent::_tracefirst($text),
13485           q{sequence_name},
13486           $tracelevel)
13487           if defined $::RD_TRACE;
13488     if (1) { no strict qw{refs};
13489     $expectation->is(q{})->at($text);
13490     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
13491     {
13492
13493       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
13494               Parse::RecDescent::_tracefirst($text),
13495               q{sequence_name},
13496               $tracelevel)
13497               if defined $::RD_TRACE;
13498       $expectation->failed();
13499       last;
13500     }
13501     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
13502           . $_tok . q{]},
13503
13504             Parse::RecDescent::_tracefirst($text),
13505             q{sequence_name},
13506             $tracelevel)
13507             if defined $::RD_TRACE;
13508     $item{q{NAME}} = $_tok;
13509     push @item, $_tok;
13510
13511     }
13512
13513
13514     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
13515             Parse::RecDescent::_tracefirst($text),
13516             q{sequence_name},
13517             $tracelevel)
13518             if defined $::RD_TRACE;
13519     $_matched = 1;
13520     last;
13521   }
13522
13523
13524         unless ( $_matched || defined($return) || defined($score) )
13525   {
13526
13527
13528     $_[1] = $text;  # NOT SURE THIS IS NEEDED
13529     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
13530            Parse::RecDescent::_tracefirst($_[1]),
13531            q{sequence_name},
13532            $tracelevel)
13533           if defined $::RD_TRACE;
13534     return undef;
13535   }
13536   if (!defined($return) && defined($score))
13537   {
13538     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13539             q{sequence_name},
13540             $tracelevel)
13541             if defined $::RD_TRACE;
13542     $return = $score_return;
13543   }
13544   splice @{$thisparser->{errors}}, $err_at;
13545   $return = $item[$#item] unless defined $return;
13546   if (defined $::RD_TRACE)
13547   {
13548     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13549             $return . q{])}, "",
13550             q{sequence_name},
13551             $tracelevel);
13552     Parse::RecDescent::_trace(q{(consumed: [} .
13553             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13554             Parse::RecDescent::_tracefirst($text),
13555             , q{sequence_name},
13556             $tracelevel)
13557   }
13558   $_[1] = $text;
13559   return $return;
13560 }
13561
13562 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
13563 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_duration
13564 {
13565   my $thisparser = $_[0];
13566   use vars q{$tracelevel};
13567   local $tracelevel = ($tracelevel||0)+1;
13568   $ERRORS = 0;
13569   my $thisrule = $thisparser->{"rules"}{"ld_duration"};
13570
13571   Parse::RecDescent::_trace(q{Trying rule: [ld_duration]},
13572           Parse::RecDescent::_tracefirst($_[1]),
13573           q{ld_duration},
13574           $tracelevel)
13575           if defined $::RD_TRACE;
13576
13577
13578   my $err_at = @{$thisparser->{errors}};
13579
13580   my $score;
13581   my $score_return;
13582   my $_tok;
13583   my $return = undef;
13584   my $_matched=0;
13585   my $commit=0;
13586   my @item = ();
13587   my %item = ();
13588   my $repeating =  defined($_[2]) && $_[2];
13589   my $_noactions = defined($_[3]) && $_[3];
13590    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
13591   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
13592   my $text;
13593   my $lastsep="";
13594   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
13595   $expectation->at($_[1]);
13596
13597   my $thisline;
13598   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
13599
13600
13601
13602   while (!$_matched && !$commit)
13603   {
13604
13605     Parse::RecDescent::_trace(q{Trying production: [/YEARS?/i]},
13606             Parse::RecDescent::_tracefirst($_[1]),
13607             q{ld_duration},
13608             $tracelevel)
13609             if defined $::RD_TRACE;
13610     my $thisprod = $thisrule->{"prods"}[0];
13611     $text = $_[1];
13612     my $_savetext;
13613     @item = (q{ld_duration});
13614     %item = (__RULE__ => q{ld_duration});
13615     my $repcount = 0;
13616
13617
13618     Parse::RecDescent::_trace(q{Trying terminal: [/YEARS?/i]}, Parse::RecDescent::_tracefirst($text),
13619             q{ld_duration},
13620             $tracelevel)
13621             if defined $::RD_TRACE;
13622     $lastsep = "";
13623     $expectation->is(q{})->at($text);
13624
13625
13626     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:YEARS?)//i)
13627     {
13628
13629       $expectation->failed();
13630       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13631               Parse::RecDescent::_tracefirst($text))
13632           if defined $::RD_TRACE;
13633
13634       last;
13635     }
13636     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13637             . $& . q{])},
13638               Parse::RecDescent::_tracefirst($text))
13639           if defined $::RD_TRACE;
13640     push @item, $item{__PATTERN1__}=$&;
13641
13642
13643
13644     Parse::RecDescent::_trace(q{>>Matched production: [/YEARS?/i]<<},
13645             Parse::RecDescent::_tracefirst($text),
13646             q{ld_duration},
13647             $tracelevel)
13648             if defined $::RD_TRACE;
13649     $_matched = 1;
13650     last;
13651   }
13652
13653
13654   while (!$_matched && !$commit)
13655   {
13656
13657     Parse::RecDescent::_trace(q{Trying production: [/MONTHS?/i]},
13658             Parse::RecDescent::_tracefirst($_[1]),
13659             q{ld_duration},
13660             $tracelevel)
13661             if defined $::RD_TRACE;
13662     my $thisprod = $thisrule->{"prods"}[1];
13663     $text = $_[1];
13664     my $_savetext;
13665     @item = (q{ld_duration});
13666     %item = (__RULE__ => q{ld_duration});
13667     my $repcount = 0;
13668
13669
13670     Parse::RecDescent::_trace(q{Trying terminal: [/MONTHS?/i]}, Parse::RecDescent::_tracefirst($text),
13671             q{ld_duration},
13672             $tracelevel)
13673             if defined $::RD_TRACE;
13674     $lastsep = "";
13675     $expectation->is(q{})->at($text);
13676
13677
13678     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTHS?)//i)
13679     {
13680
13681       $expectation->failed();
13682       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13683               Parse::RecDescent::_tracefirst($text))
13684           if defined $::RD_TRACE;
13685
13686       last;
13687     }
13688     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13689             . $& . q{])},
13690               Parse::RecDescent::_tracefirst($text))
13691           if defined $::RD_TRACE;
13692     push @item, $item{__PATTERN1__}=$&;
13693
13694
13695
13696     Parse::RecDescent::_trace(q{>>Matched production: [/MONTHS?/i]<<},
13697             Parse::RecDescent::_tracefirst($text),
13698             q{ld_duration},
13699             $tracelevel)
13700             if defined $::RD_TRACE;
13701     $_matched = 1;
13702     last;
13703   }
13704
13705
13706   while (!$_matched && !$commit)
13707   {
13708
13709     Parse::RecDescent::_trace(q{Trying production: [/DAYS?/i]},
13710             Parse::RecDescent::_tracefirst($_[1]),
13711             q{ld_duration},
13712             $tracelevel)
13713             if defined $::RD_TRACE;
13714     my $thisprod = $thisrule->{"prods"}[2];
13715     $text = $_[1];
13716     my $_savetext;
13717     @item = (q{ld_duration});
13718     %item = (__RULE__ => q{ld_duration});
13719     my $repcount = 0;
13720
13721
13722     Parse::RecDescent::_trace(q{Trying terminal: [/DAYS?/i]}, Parse::RecDescent::_tracefirst($text),
13723             q{ld_duration},
13724             $tracelevel)
13725             if defined $::RD_TRACE;
13726     $lastsep = "";
13727     $expectation->is(q{})->at($text);
13728
13729
13730     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYS?)//i)
13731     {
13732
13733       $expectation->failed();
13734       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13735               Parse::RecDescent::_tracefirst($text))
13736           if defined $::RD_TRACE;
13737
13738       last;
13739     }
13740     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13741             . $& . q{])},
13742               Parse::RecDescent::_tracefirst($text))
13743           if defined $::RD_TRACE;
13744     push @item, $item{__PATTERN1__}=$&;
13745
13746
13747
13748     Parse::RecDescent::_trace(q{>>Matched production: [/DAYS?/i]<<},
13749             Parse::RecDescent::_tracefirst($text),
13750             q{ld_duration},
13751             $tracelevel)
13752             if defined $::RD_TRACE;
13753     $_matched = 1;
13754     last;
13755   }
13756
13757
13758   while (!$_matched && !$commit)
13759   {
13760
13761     Parse::RecDescent::_trace(q{Trying production: [/HOURS?/i]},
13762             Parse::RecDescent::_tracefirst($_[1]),
13763             q{ld_duration},
13764             $tracelevel)
13765             if defined $::RD_TRACE;
13766     my $thisprod = $thisrule->{"prods"}[3];
13767     $text = $_[1];
13768     my $_savetext;
13769     @item = (q{ld_duration});
13770     %item = (__RULE__ => q{ld_duration});
13771     my $repcount = 0;
13772
13773
13774     Parse::RecDescent::_trace(q{Trying terminal: [/HOURS?/i]}, Parse::RecDescent::_tracefirst($text),
13775             q{ld_duration},
13776             $tracelevel)
13777             if defined $::RD_TRACE;
13778     $lastsep = "";
13779     $expectation->is(q{})->at($text);
13780
13781
13782     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:HOURS?)//i)
13783     {
13784
13785       $expectation->failed();
13786       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13787               Parse::RecDescent::_tracefirst($text))
13788           if defined $::RD_TRACE;
13789
13790       last;
13791     }
13792     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13793             . $& . q{])},
13794               Parse::RecDescent::_tracefirst($text))
13795           if defined $::RD_TRACE;
13796     push @item, $item{__PATTERN1__}=$&;
13797
13798
13799
13800     Parse::RecDescent::_trace(q{>>Matched production: [/HOURS?/i]<<},
13801             Parse::RecDescent::_tracefirst($text),
13802             q{ld_duration},
13803             $tracelevel)
13804             if defined $::RD_TRACE;
13805     $_matched = 1;
13806     last;
13807   }
13808
13809
13810   while (!$_matched && !$commit)
13811   {
13812
13813     Parse::RecDescent::_trace(q{Trying production: [/MINUTES?/i]},
13814             Parse::RecDescent::_tracefirst($_[1]),
13815             q{ld_duration},
13816             $tracelevel)
13817             if defined $::RD_TRACE;
13818     my $thisprod = $thisrule->{"prods"}[4];
13819     $text = $_[1];
13820     my $_savetext;
13821     @item = (q{ld_duration});
13822     %item = (__RULE__ => q{ld_duration});
13823     my $repcount = 0;
13824
13825
13826     Parse::RecDescent::_trace(q{Trying terminal: [/MINUTES?/i]}, Parse::RecDescent::_tracefirst($text),
13827             q{ld_duration},
13828             $tracelevel)
13829             if defined $::RD_TRACE;
13830     $lastsep = "";
13831     $expectation->is(q{})->at($text);
13832
13833
13834     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MINUTES?)//i)
13835     {
13836
13837       $expectation->failed();
13838       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13839               Parse::RecDescent::_tracefirst($text))
13840           if defined $::RD_TRACE;
13841
13842       last;
13843     }
13844     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13845             . $& . q{])},
13846               Parse::RecDescent::_tracefirst($text))
13847           if defined $::RD_TRACE;
13848     push @item, $item{__PATTERN1__}=$&;
13849
13850
13851
13852     Parse::RecDescent::_trace(q{>>Matched production: [/MINUTES?/i]<<},
13853             Parse::RecDescent::_tracefirst($text),
13854             q{ld_duration},
13855             $tracelevel)
13856             if defined $::RD_TRACE;
13857     $_matched = 1;
13858     last;
13859   }
13860
13861
13862   while (!$_matched && !$commit)
13863   {
13864
13865     Parse::RecDescent::_trace(q{Trying production: [/SECONDS?/i]},
13866             Parse::RecDescent::_tracefirst($_[1]),
13867             q{ld_duration},
13868             $tracelevel)
13869             if defined $::RD_TRACE;
13870     my $thisprod = $thisrule->{"prods"}[5];
13871     $text = $_[1];
13872     my $_savetext;
13873     @item = (q{ld_duration});
13874     %item = (__RULE__ => q{ld_duration});
13875     my $repcount = 0;
13876
13877
13878     Parse::RecDescent::_trace(q{Trying terminal: [/SECONDS?/i]}, Parse::RecDescent::_tracefirst($text),
13879             q{ld_duration},
13880             $tracelevel)
13881             if defined $::RD_TRACE;
13882     $lastsep = "";
13883     $expectation->is(q{})->at($text);
13884
13885
13886     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SECONDS?)//i)
13887     {
13888
13889       $expectation->failed();
13890       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13891               Parse::RecDescent::_tracefirst($text))
13892           if defined $::RD_TRACE;
13893
13894       last;
13895     }
13896     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13897             . $& . q{])},
13898               Parse::RecDescent::_tracefirst($text))
13899           if defined $::RD_TRACE;
13900     push @item, $item{__PATTERN1__}=$&;
13901
13902
13903
13904     Parse::RecDescent::_trace(q{>>Matched production: [/SECONDS?/i]<<},
13905             Parse::RecDescent::_tracefirst($text),
13906             q{ld_duration},
13907             $tracelevel)
13908             if defined $::RD_TRACE;
13909     $_matched = 1;
13910     last;
13911   }
13912
13913
13914   while (!$_matched && !$commit)
13915   {
13916
13917     Parse::RecDescent::_trace(q{Trying production: [/MICROSECONDS?/i]},
13918             Parse::RecDescent::_tracefirst($_[1]),
13919             q{ld_duration},
13920             $tracelevel)
13921             if defined $::RD_TRACE;
13922     my $thisprod = $thisrule->{"prods"}[6];
13923     $text = $_[1];
13924     my $_savetext;
13925     @item = (q{ld_duration});
13926     %item = (__RULE__ => q{ld_duration});
13927     my $repcount = 0;
13928
13929
13930     Parse::RecDescent::_trace(q{Trying terminal: [/MICROSECONDS?/i]}, Parse::RecDescent::_tracefirst($text),
13931             q{ld_duration},
13932             $tracelevel)
13933             if defined $::RD_TRACE;
13934     $lastsep = "";
13935     $expectation->is(q{})->at($text);
13936
13937
13938     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MICROSECONDS?)//i)
13939     {
13940
13941       $expectation->failed();
13942       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
13943               Parse::RecDescent::_tracefirst($text))
13944           if defined $::RD_TRACE;
13945
13946       last;
13947     }
13948     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
13949             . $& . q{])},
13950               Parse::RecDescent::_tracefirst($text))
13951           if defined $::RD_TRACE;
13952     push @item, $item{__PATTERN1__}=$&;
13953
13954
13955
13956     Parse::RecDescent::_trace(q{>>Matched production: [/MICROSECONDS?/i]<<},
13957             Parse::RecDescent::_tracefirst($text),
13958             q{ld_duration},
13959             $tracelevel)
13960             if defined $::RD_TRACE;
13961     $_matched = 1;
13962     last;
13963   }
13964
13965
13966         unless ( $_matched || defined($return) || defined($score) )
13967   {
13968
13969
13970     $_[1] = $text;  # NOT SURE THIS IS NEEDED
13971     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
13972            Parse::RecDescent::_tracefirst($_[1]),
13973            q{ld_duration},
13974            $tracelevel)
13975           if defined $::RD_TRACE;
13976     return undef;
13977   }
13978   if (!defined($return) && defined($score))
13979   {
13980     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
13981             q{ld_duration},
13982             $tracelevel)
13983             if defined $::RD_TRACE;
13984     $return = $score_return;
13985   }
13986   splice @{$thisparser->{errors}}, $err_at;
13987   $return = $item[$#item] unless defined $return;
13988   if (defined $::RD_TRACE)
13989   {
13990     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
13991             $return . q{])}, "",
13992             q{ld_duration},
13993             $tracelevel);
13994     Parse::RecDescent::_trace(q{(consumed: [} .
13995             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
13996             Parse::RecDescent::_tracefirst($text),
13997             , q{ld_duration},
13998             $tracelevel)
13999   }
14000   $_[1] = $text;
14001   return $return;
14002 }
14003
14004 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14005 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a
14006 {
14007   my $thisparser = $_[0];
14008   use vars q{$tracelevel};
14009   local $tracelevel = ($tracelevel||0)+1;
14010   $ERRORS = 0;
14011   my $thisrule = $thisparser->{"rules"}{"reference_a"};
14012
14013   Parse::RecDescent::_trace(q{Trying rule: [reference_a]},
14014           Parse::RecDescent::_tracefirst($_[1]),
14015           q{reference_a},
14016           $tracelevel)
14017           if defined $::RD_TRACE;
14018
14019
14020   my $err_at = @{$thisparser->{errors}};
14021
14022   my $score;
14023   my $score_return;
14024   my $_tok;
14025   my $return = undef;
14026   my $_matched=0;
14027   my $commit=0;
14028   my @item = ();
14029   my %item = ();
14030   my $repeating =  defined($_[2]) && $_[2];
14031   my $_noactions = defined($_[3]) && $_[3];
14032    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
14033   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
14034   my $text;
14035   my $lastsep="";
14036   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14037   $expectation->at($_[1]);
14038
14039   my $thisline;
14040   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14041
14042
14043
14044   while (!$_matched && !$commit)
14045   {
14046
14047     Parse::RecDescent::_trace(q{Trying production: [/REFERENCING/i old_new_corr old_new_table]},
14048             Parse::RecDescent::_tracefirst($_[1]),
14049             q{reference_a},
14050             $tracelevel)
14051             if defined $::RD_TRACE;
14052     my $thisprod = $thisrule->{"prods"}[0];
14053     $text = $_[1];
14054     my $_savetext;
14055     @item = (q{reference_a});
14056     %item = (__RULE__ => q{reference_a});
14057     my $repcount = 0;
14058
14059
14060     Parse::RecDescent::_trace(q{Trying terminal: [/REFERENCING/i]}, Parse::RecDescent::_tracefirst($text),
14061             q{reference_a},
14062             $tracelevel)
14063             if defined $::RD_TRACE;
14064     $lastsep = "";
14065     $expectation->is(q{})->at($text);
14066
14067
14068     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REFERENCING)//i)
14069     {
14070
14071       $expectation->failed();
14072       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14073               Parse::RecDescent::_tracefirst($text))
14074           if defined $::RD_TRACE;
14075
14076       last;
14077     }
14078     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14079             . $& . q{])},
14080               Parse::RecDescent::_tracefirst($text))
14081           if defined $::RD_TRACE;
14082     push @item, $item{__PATTERN1__}=$&;
14083
14084
14085     Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_corr]},
14086           Parse::RecDescent::_tracefirst($text),
14087           q{reference_a},
14088           $tracelevel)
14089           if defined $::RD_TRACE;
14090     $expectation->is(q{old_new_corr})->at($text);
14091
14092     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr, 0, 2, $_noactions,$expectation,undef)))
14093     {
14094       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_corr]>>},
14095               Parse::RecDescent::_tracefirst($text),
14096               q{reference_a},
14097               $tracelevel)
14098               if defined $::RD_TRACE;
14099       last;
14100     }
14101     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_corr]<< (}
14102           . @$_tok . q{ times)},
14103
14104             Parse::RecDescent::_tracefirst($text),
14105             q{reference_a},
14106             $tracelevel)
14107             if defined $::RD_TRACE;
14108     $item{q{old_new_corr(0..2)}} = $_tok;
14109     push @item, $_tok;
14110
14111
14112
14113     Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_table]},
14114           Parse::RecDescent::_tracefirst($text),
14115           q{reference_a},
14116           $tracelevel)
14117           if defined $::RD_TRACE;
14118     $expectation->is(q{old_new_table})->at($text);
14119
14120     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table, 0, 2, $_noactions,$expectation,undef)))
14121     {
14122       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_table]>>},
14123               Parse::RecDescent::_tracefirst($text),
14124               q{reference_a},
14125               $tracelevel)
14126               if defined $::RD_TRACE;
14127       last;
14128     }
14129     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_table]<< (}
14130           . @$_tok . q{ times)},
14131
14132             Parse::RecDescent::_tracefirst($text),
14133             q{reference_a},
14134             $tracelevel)
14135             if defined $::RD_TRACE;
14136     $item{q{old_new_table(0..2)}} = $_tok;
14137     push @item, $_tok;
14138
14139
14140
14141     Parse::RecDescent::_trace(q{Trying action},
14142             Parse::RecDescent::_tracefirst($text),
14143             q{reference_a},
14144             $tracelevel)
14145             if defined $::RD_TRACE;
14146
14147
14148     $_tok = ($_noactions) ? 0 : do { $return = join(' ', $item[1], join(' ', @{$item[2]}), join(' ', @{$item[3]})  ) };
14149     unless (defined $_tok)
14150     {
14151       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
14152           if defined $::RD_TRACE;
14153       last;
14154     }
14155     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14156             . $_tok . q{])},
14157             Parse::RecDescent::_tracefirst($text))
14158             if defined $::RD_TRACE;
14159     push @item, $_tok;
14160     $item{__ACTION1__}=$_tok;
14161
14162
14163
14164     Parse::RecDescent::_trace(q{>>Matched production: [/REFERENCING/i old_new_corr old_new_table]<<},
14165             Parse::RecDescent::_tracefirst($text),
14166             q{reference_a},
14167             $tracelevel)
14168             if defined $::RD_TRACE;
14169     $_matched = 1;
14170     last;
14171   }
14172
14173
14174         unless ( $_matched || defined($return) || defined($score) )
14175   {
14176
14177
14178     $_[1] = $text;  # NOT SURE THIS IS NEEDED
14179     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
14180            Parse::RecDescent::_tracefirst($_[1]),
14181            q{reference_a},
14182            $tracelevel)
14183           if defined $::RD_TRACE;
14184     return undef;
14185   }
14186   if (!defined($return) && defined($score))
14187   {
14188     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14189             q{reference_a},
14190             $tracelevel)
14191             if defined $::RD_TRACE;
14192     $return = $score_return;
14193   }
14194   splice @{$thisparser->{errors}}, $err_at;
14195   $return = $item[$#item] unless defined $return;
14196   if (defined $::RD_TRACE)
14197   {
14198     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14199             $return . q{])}, "",
14200             q{reference_a},
14201             $tracelevel);
14202     Parse::RecDescent::_trace(q{(consumed: [} .
14203             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
14204             Parse::RecDescent::_tracefirst($text),
14205             , q{reference_a},
14206             $tracelevel)
14207   }
14208   $_[1] = $text;
14209   return $return;
14210 }
14211
14212 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14213 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification
14214 {
14215   my $thisparser = $_[0];
14216   use vars q{$tracelevel};
14217   local $tracelevel = ($tracelevel||0)+1;
14218   $ERRORS = 0;
14219   my $thisrule = $thisparser->{"rules"}{"cast_specification"};
14220
14221   Parse::RecDescent::_trace(q{Trying rule: [cast_specification]},
14222           Parse::RecDescent::_tracefirst($_[1]),
14223           q{cast_specification},
14224           $tracelevel)
14225           if defined $::RD_TRACE;
14226
14227
14228   my $err_at = @{$thisparser->{errors}};
14229
14230   my $score;
14231   my $score_return;
14232   my $_tok;
14233   my $return = undef;
14234   my $_matched=0;
14235   my $commit=0;
14236   my @item = ();
14237   my %item = ();
14238   my $repeating =  defined($_[2]) && $_[2];
14239   my $_noactions = defined($_[3]) && $_[3];
14240    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
14241   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
14242   my $text;
14243   my $lastsep="";
14244   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14245   $expectation->at($_[1]);
14246
14247   my $thisline;
14248   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14249
14250
14251
14252   while (!$_matched && !$commit)
14253   {
14254
14255     Parse::RecDescent::_trace(q{Trying production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']},
14256             Parse::RecDescent::_tracefirst($_[1]),
14257             q{cast_specification},
14258             $tracelevel)
14259             if defined $::RD_TRACE;
14260     my $thisprod = $thisrule->{"prods"}[0];
14261     $text = $_[1];
14262     my $_savetext;
14263     @item = (q{cast_specification});
14264     %item = (__RULE__ => q{cast_specification});
14265     my $repcount = 0;
14266
14267
14268     Parse::RecDescent::_trace(q{Trying terminal: [/CAST/i]}, Parse::RecDescent::_tracefirst($text),
14269             q{cast_specification},
14270             $tracelevel)
14271             if defined $::RD_TRACE;
14272     $lastsep = "";
14273     $expectation->is(q{})->at($text);
14274
14275
14276     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CAST)//i)
14277     {
14278
14279       $expectation->failed();
14280       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14281               Parse::RecDescent::_tracefirst($text))
14282           if defined $::RD_TRACE;
14283
14284       last;
14285     }
14286     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14287             . $& . q{])},
14288               Parse::RecDescent::_tracefirst($text))
14289           if defined $::RD_TRACE;
14290     push @item, $item{__PATTERN1__}=$&;
14291
14292
14293     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
14294             Parse::RecDescent::_tracefirst($text),
14295             q{cast_specification},
14296             $tracelevel)
14297             if defined $::RD_TRACE;
14298     $lastsep = "";
14299     $expectation->is(q{'('})->at($text);
14300
14301
14302     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
14303     {
14304
14305       $expectation->failed();
14306       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
14307               Parse::RecDescent::_tracefirst($text))
14308               if defined $::RD_TRACE;
14309       last;
14310     }
14311     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14312             . $& . q{])},
14313               Parse::RecDescent::_tracefirst($text))
14314               if defined $::RD_TRACE;
14315     push @item, $item{__STRING1__}=$&;
14316
14317
14318     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_cast_specification]},
14319           Parse::RecDescent::_tracefirst($text),
14320           q{cast_specification},
14321           $tracelevel)
14322           if defined $::RD_TRACE;
14323     if (1) { no strict qw{refs};
14324     $expectation->is(q{expression, or /NULL/i, or parameter_marker})->at($text);
14325     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cast_specification($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14326     {
14327
14328       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_cast_specification]>>},
14329               Parse::RecDescent::_tracefirst($text),
14330               q{cast_specification},
14331               $tracelevel)
14332               if defined $::RD_TRACE;
14333       $expectation->failed();
14334       last;
14335     }
14336     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cast_specification]<< (return value: [}
14337           . $_tok . q{]},
14338
14339             Parse::RecDescent::_tracefirst($text),
14340             q{cast_specification},
14341             $tracelevel)
14342             if defined $::RD_TRACE;
14343     $item{q{_alternation_1_of_production_1_of_rule_cast_specification}} = $_tok;
14344     push @item, $_tok;
14345
14346     }
14347
14348     Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
14349             q{cast_specification},
14350             $tracelevel)
14351             if defined $::RD_TRACE;
14352     $lastsep = "";
14353     $expectation->is(q{/AS/i})->at($text);
14354
14355
14356     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
14357     {
14358
14359       $expectation->failed();
14360       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14361               Parse::RecDescent::_tracefirst($text))
14362           if defined $::RD_TRACE;
14363
14364       last;
14365     }
14366     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14367             . $& . q{])},
14368               Parse::RecDescent::_tracefirst($text))
14369           if defined $::RD_TRACE;
14370     push @item, $item{__PATTERN2__}=$&;
14371
14372
14373     Parse::RecDescent::_trace(q{Trying subrule: [data_type]},
14374           Parse::RecDescent::_tracefirst($text),
14375           q{cast_specification},
14376           $tracelevel)
14377           if defined $::RD_TRACE;
14378     if (1) { no strict qw{refs};
14379     $expectation->is(q{data_type})->at($text);
14380     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14381     {
14382
14383       Parse::RecDescent::_trace(q{<<Didn't match subrule: [data_type]>>},
14384               Parse::RecDescent::_tracefirst($text),
14385               q{cast_specification},
14386               $tracelevel)
14387               if defined $::RD_TRACE;
14388       $expectation->failed();
14389       last;
14390     }
14391     Parse::RecDescent::_trace(q{>>Matched subrule: [data_type]<< (return value: [}
14392           . $_tok . q{]},
14393
14394             Parse::RecDescent::_tracefirst($text),
14395             q{cast_specification},
14396             $tracelevel)
14397             if defined $::RD_TRACE;
14398     $item{q{data_type}} = $_tok;
14399     push @item, $_tok;
14400
14401     }
14402
14403     Parse::RecDescent::_trace(q{Trying repeated subrule: [/SCOPE/]},
14404           Parse::RecDescent::_tracefirst($text),
14405           q{cast_specification},
14406           $tracelevel)
14407           if defined $::RD_TRACE;
14408     $expectation->is(q{/SCOPE/})->at($text);
14409
14410     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cast_specification, 0, 1, $_noactions,$expectation,undef)))
14411     {
14412       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/SCOPE/]>>},
14413               Parse::RecDescent::_tracefirst($text),
14414               q{cast_specification},
14415               $tracelevel)
14416               if defined $::RD_TRACE;
14417       last;
14418     }
14419     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_2_of_production_1_of_rule_cast_specification]<< (}
14420           . @$_tok . q{ times)},
14421
14422             Parse::RecDescent::_tracefirst($text),
14423             q{cast_specification},
14424             $tracelevel)
14425             if defined $::RD_TRACE;
14426     $item{q{_alternation_2_of_production_1_of_rule_cast_specification(?)}} = $_tok;
14427     push @item, $_tok;
14428
14429
14430
14431     Parse::RecDescent::_trace(q{Trying terminal: [')']},
14432             Parse::RecDescent::_tracefirst($text),
14433             q{cast_specification},
14434             $tracelevel)
14435             if defined $::RD_TRACE;
14436     $lastsep = "";
14437     $expectation->is(q{')'})->at($text);
14438
14439
14440     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
14441     {
14442
14443       $expectation->failed();
14444       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
14445               Parse::RecDescent::_tracefirst($text))
14446               if defined $::RD_TRACE;
14447       last;
14448     }
14449     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14450             . $& . q{])},
14451               Parse::RecDescent::_tracefirst($text))
14452               if defined $::RD_TRACE;
14453     push @item, $item{__STRING2__}=$&;
14454
14455
14456
14457     Parse::RecDescent::_trace(q{>>Matched production: [/CAST/i '(' expression, or /NULL/i, or parameter_marker /AS/i data_type /SCOPE/ ')']<<},
14458             Parse::RecDescent::_tracefirst($text),
14459             q{cast_specification},
14460             $tracelevel)
14461             if defined $::RD_TRACE;
14462     $_matched = 1;
14463     last;
14464   }
14465
14466
14467         unless ( $_matched || defined($return) || defined($score) )
14468   {
14469
14470
14471     $_[1] = $text;  # NOT SURE THIS IS NEEDED
14472     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
14473            Parse::RecDescent::_tracefirst($_[1]),
14474            q{cast_specification},
14475            $tracelevel)
14476           if defined $::RD_TRACE;
14477     return undef;
14478   }
14479   if (!defined($return) && defined($score))
14480   {
14481     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14482             q{cast_specification},
14483             $tracelevel)
14484             if defined $::RD_TRACE;
14485     $return = $score_return;
14486   }
14487   splice @{$thisparser->{errors}}, $err_at;
14488   $return = $item[$#item] unless defined $return;
14489   if (defined $::RD_TRACE)
14490   {
14491     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14492             $return . q{])}, "",
14493             q{cast_specification},
14494             $tracelevel);
14495     Parse::RecDescent::_trace(q{(consumed: [} .
14496             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
14497             Parse::RecDescent::_tracefirst($text),
14498             , q{cast_specification},
14499             $tracelevel)
14500   }
14501   $_[1] = $text;
14502   return $return;
14503 }
14504
14505 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14506 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type
14507 {
14508   my $thisparser = $_[0];
14509   use vars q{$tracelevel};
14510   local $tracelevel = ($tracelevel||0)+1;
14511   $ERRORS = 0;
14512   my $thisrule = $thisparser->{"rules"}{"type"};
14513
14514   Parse::RecDescent::_trace(q{Trying rule: [type]},
14515           Parse::RecDescent::_tracefirst($_[1]),
14516           q{type},
14517           $tracelevel)
14518           if defined $::RD_TRACE;
14519
14520
14521   my $err_at = @{$thisparser->{errors}};
14522
14523   my $score;
14524   my $score_return;
14525   my $_tok;
14526   my $return = undef;
14527   my $_matched=0;
14528   my $commit=0;
14529   my @item = ();
14530   my %item = ();
14531   my $repeating =  defined($_[2]) && $_[2];
14532   my $_noactions = defined($_[3]) && $_[3];
14533    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
14534   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
14535   my $text;
14536   my $lastsep="";
14537   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14538   $expectation->at($_[1]);
14539
14540   my $thisline;
14541   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14542
14543
14544
14545   while (!$_matched && !$commit)
14546   {
14547
14548     Parse::RecDescent::_trace(q{Trying production: [/UPDATE/i /OF/i <leftop: column_name /,/ column_name>]},
14549             Parse::RecDescent::_tracefirst($_[1]),
14550             q{type},
14551             $tracelevel)
14552             if defined $::RD_TRACE;
14553     my $thisprod = $thisrule->{"prods"}[0];
14554     $text = $_[1];
14555     my $_savetext;
14556     @item = (q{type});
14557     %item = (__RULE__ => q{type});
14558     my $repcount = 0;
14559
14560
14561     Parse::RecDescent::_trace(q{Trying terminal: [/UPDATE/i]}, Parse::RecDescent::_tracefirst($text),
14562             q{type},
14563             $tracelevel)
14564             if defined $::RD_TRACE;
14565     $lastsep = "";
14566     $expectation->is(q{})->at($text);
14567
14568
14569     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UPDATE)//i)
14570     {
14571
14572       $expectation->failed();
14573       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14574               Parse::RecDescent::_tracefirst($text))
14575           if defined $::RD_TRACE;
14576
14577       last;
14578     }
14579     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14580             . $& . q{])},
14581               Parse::RecDescent::_tracefirst($text))
14582           if defined $::RD_TRACE;
14583     push @item, $item{__PATTERN1__}=$&;
14584
14585
14586     Parse::RecDescent::_trace(q{Trying terminal: [/OF/i]}, Parse::RecDescent::_tracefirst($text),
14587             q{type},
14588             $tracelevel)
14589             if defined $::RD_TRACE;
14590     $lastsep = "";
14591     $expectation->is(q{/OF/i})->at($text);
14592
14593
14594     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OF)//i)
14595     {
14596
14597       $expectation->failed();
14598       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14599               Parse::RecDescent::_tracefirst($text))
14600           if defined $::RD_TRACE;
14601
14602       last;
14603     }
14604     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14605             . $& . q{])},
14606               Parse::RecDescent::_tracefirst($text))
14607           if defined $::RD_TRACE;
14608     push @item, $item{__PATTERN2__}=$&;
14609
14610
14611     Parse::RecDescent::_trace(q{Trying operator: [<leftop: column_name /,/ column_name>]},
14612           Parse::RecDescent::_tracefirst($text),
14613           q{type},
14614           $tracelevel)
14615           if defined $::RD_TRACE;
14616     $expectation->is(q{<leftop: column_name /,/ column_name>})->at($text);
14617
14618     $_tok = undef;
14619     OPLOOP: while (1)
14620     {
14621       $repcount = 0;
14622       my  @item;
14623
14624       # MATCH LEFTARG
14625
14626     Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
14627           Parse::RecDescent::_tracefirst($text),
14628           q{type},
14629           $tracelevel)
14630           if defined $::RD_TRACE;
14631     if (1) { no strict qw{refs};
14632     $expectation->is(q{column_name})->at($text);
14633     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14634     {
14635
14636       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
14637               Parse::RecDescent::_tracefirst($text),
14638               q{type},
14639               $tracelevel)
14640               if defined $::RD_TRACE;
14641       $expectation->failed();
14642       last;
14643     }
14644     Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
14645           . $_tok . q{]},
14646
14647             Parse::RecDescent::_tracefirst($text),
14648             q{type},
14649             $tracelevel)
14650             if defined $::RD_TRACE;
14651     $item{q{column_name}} = $_tok;
14652     push @item, $_tok;
14653
14654     }
14655
14656
14657       $repcount++;
14658
14659       my $savetext = $text;
14660       my $backtrack;
14661
14662       # MATCH (OP RIGHTARG)(s)
14663       while ($repcount < 100000000)
14664       {
14665       $backtrack = 0;
14666
14667     Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
14668             q{type},
14669             $tracelevel)
14670             if defined $::RD_TRACE;
14671     $lastsep = "";
14672     $expectation->is(q{/,/})->at($text);
14673
14674
14675     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
14676     {
14677
14678       $expectation->failed();
14679       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14680               Parse::RecDescent::_tracefirst($text))
14681           if defined $::RD_TRACE;
14682
14683       last;
14684     }
14685     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14686             . $& . q{])},
14687               Parse::RecDescent::_tracefirst($text))
14688           if defined $::RD_TRACE;
14689     push @item, $item{__PATTERN3__}=$&;
14690
14691
14692       pop @item;
14693       if (defined $1) {push @item, $item{'column_name(s)'}=$1; $backtrack=1;}
14694
14695     Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
14696           Parse::RecDescent::_tracefirst($text),
14697           q{type},
14698           $tracelevel)
14699           if defined $::RD_TRACE;
14700     if (1) { no strict qw{refs};
14701     $expectation->is(q{column_name})->at($text);
14702     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14703     {
14704
14705       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
14706               Parse::RecDescent::_tracefirst($text),
14707               q{type},
14708               $tracelevel)
14709               if defined $::RD_TRACE;
14710       $expectation->failed();
14711       last;
14712     }
14713     Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
14714           . $_tok . q{]},
14715
14716             Parse::RecDescent::_tracefirst($text),
14717             q{type},
14718             $tracelevel)
14719             if defined $::RD_TRACE;
14720     $item{q{column_name}} = $_tok;
14721     push @item, $_tok;
14722
14723     }
14724
14725       $savetext = $text;
14726       $repcount++;
14727       }
14728       $text = $savetext;
14729       pop @item if $backtrack;
14730
14731       unless (@item) { undef $_tok; last }
14732       $_tok = [ @item ];
14733       last;
14734     }
14735
14736     unless ($repcount>=1)
14737     {
14738       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: column_name /,/ column_name>]>>},
14739               Parse::RecDescent::_tracefirst($text),
14740               q{type},
14741               $tracelevel)
14742               if defined $::RD_TRACE;
14743       $expectation->failed();
14744       last;
14745     }
14746     Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: column_name /,/ column_name>]<< (return value: [}
14747             . qq{@{$_tok||[]}} . q{]},
14748             Parse::RecDescent::_tracefirst($text),
14749             q{type},
14750             $tracelevel)
14751             if defined $::RD_TRACE;
14752
14753     push @item, $item{'column_name(s)'}=$_tok||[];
14754
14755
14756     Parse::RecDescent::_trace(q{Trying action},
14757             Parse::RecDescent::_tracefirst($text),
14758             q{type},
14759             $tracelevel)
14760             if defined $::RD_TRACE;
14761
14762
14763     $_tok = ($_noactions) ? 0 : do { $return = { event  => 'update_on',
14764               fields => $item[3] }
14765 };
14766     unless (defined $_tok)
14767     {
14768       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
14769           if defined $::RD_TRACE;
14770       last;
14771     }
14772     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14773             . $_tok . q{])},
14774             Parse::RecDescent::_tracefirst($text))
14775             if defined $::RD_TRACE;
14776     push @item, $_tok;
14777     $item{__ACTION1__}=$_tok;
14778
14779
14780
14781     Parse::RecDescent::_trace(q{>>Matched production: [/UPDATE/i /OF/i <leftop: column_name /,/ column_name>]<<},
14782             Parse::RecDescent::_tracefirst($text),
14783             q{type},
14784             $tracelevel)
14785             if defined $::RD_TRACE;
14786     $_matched = 1;
14787     last;
14788   }
14789
14790
14791   while (!$_matched && !$commit)
14792   {
14793
14794     Parse::RecDescent::_trace(q{Trying production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]},
14795             Parse::RecDescent::_tracefirst($_[1]),
14796             q{type},
14797             $tracelevel)
14798             if defined $::RD_TRACE;
14799     my $thisprod = $thisrule->{"prods"}[1];
14800     $text = $_[1];
14801     my $_savetext;
14802     @item = (q{type});
14803     %item = (__RULE__ => q{type});
14804     my $repcount = 0;
14805
14806
14807     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_2_of_rule_type]},
14808           Parse::RecDescent::_tracefirst($text),
14809           q{type},
14810           $tracelevel)
14811           if defined $::RD_TRACE;
14812     if (1) { no strict qw{refs};
14813     $expectation->is(q{})->at($text);
14814     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
14815     {
14816
14817       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_2_of_rule_type]>>},
14818               Parse::RecDescent::_tracefirst($text),
14819               q{type},
14820               $tracelevel)
14821               if defined $::RD_TRACE;
14822       $expectation->failed();
14823       last;
14824     }
14825     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_type]<< (return value: [}
14826           . $_tok . q{]},
14827
14828             Parse::RecDescent::_tracefirst($text),
14829             q{type},
14830             $tracelevel)
14831             if defined $::RD_TRACE;
14832     $item{q{_alternation_1_of_production_2_of_rule_type}} = $_tok;
14833     push @item, $_tok;
14834
14835     }
14836
14837     Parse::RecDescent::_trace(q{Trying action},
14838             Parse::RecDescent::_tracefirst($text),
14839             q{type},
14840             $tracelevel)
14841             if defined $::RD_TRACE;
14842
14843
14844     $_tok = ($_noactions) ? 0 : do { $return = { event => $item[1] } };
14845     unless (defined $_tok)
14846     {
14847       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
14848           if defined $::RD_TRACE;
14849       last;
14850     }
14851     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
14852             . $_tok . q{])},
14853             Parse::RecDescent::_tracefirst($text))
14854             if defined $::RD_TRACE;
14855     push @item, $_tok;
14856     $item{__ACTION1__}=$_tok;
14857
14858
14859
14860     Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i, or /DELETE/i, or /UPDATE/i]<<},
14861             Parse::RecDescent::_tracefirst($text),
14862             q{type},
14863             $tracelevel)
14864             if defined $::RD_TRACE;
14865     $_matched = 1;
14866     last;
14867   }
14868
14869
14870         unless ( $_matched || defined($return) || defined($score) )
14871   {
14872
14873
14874     $_[1] = $text;  # NOT SURE THIS IS NEEDED
14875     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
14876            Parse::RecDescent::_tracefirst($_[1]),
14877            q{type},
14878            $tracelevel)
14879           if defined $::RD_TRACE;
14880     return undef;
14881   }
14882   if (!defined($return) && defined($score))
14883   {
14884     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
14885             q{type},
14886             $tracelevel)
14887             if defined $::RD_TRACE;
14888     $return = $score_return;
14889   }
14890   splice @{$thisparser->{errors}}, $err_at;
14891   $return = $item[$#item] unless defined $return;
14892   if (defined $::RD_TRACE)
14893   {
14894     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
14895             $return . q{])}, "",
14896             q{type},
14897             $tracelevel);
14898     Parse::RecDescent::_trace(q{(consumed: [} .
14899             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
14900             Parse::RecDescent::_tracefirst($text),
14901             , q{type},
14902             $tracelevel)
14903   }
14904   $_[1] = $text;
14905   return $return;
14906 }
14907
14908 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
14909 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_12_of_rule_sysibm_function
14910 {
14911   my $thisparser = $_[0];
14912   use vars q{$tracelevel};
14913   local $tracelevel = ($tracelevel||0)+1;
14914   $ERRORS = 0;
14915   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_12_of_rule_sysibm_function"};
14916
14917   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_12_of_rule_sysibm_function]},
14918           Parse::RecDescent::_tracefirst($_[1]),
14919           q{_alternation_1_of_production_12_of_rule_sysibm_function},
14920           $tracelevel)
14921           if defined $::RD_TRACE;
14922
14923
14924   my $err_at = @{$thisparser->{errors}};
14925
14926   my $score;
14927   my $score_return;
14928   my $_tok;
14929   my $return = undef;
14930   my $_matched=0;
14931   my $commit=0;
14932   my @item = ();
14933   my %item = ();
14934   my $repeating =  defined($_[2]) && $_[2];
14935   my $_noactions = defined($_[3]) && $_[3];
14936    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
14937   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
14938   my $text;
14939   my $lastsep="";
14940   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
14941   $expectation->at($_[1]);
14942
14943   my $thisline;
14944   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
14945
14946
14947
14948   while (!$_matched && !$commit)
14949   {
14950
14951     Parse::RecDescent::_trace(q{Trying production: [/COVARIANCE/i]},
14952             Parse::RecDescent::_tracefirst($_[1]),
14953             q{_alternation_1_of_production_12_of_rule_sysibm_function},
14954             $tracelevel)
14955             if defined $::RD_TRACE;
14956     my $thisprod = $thisrule->{"prods"}[0];
14957     $text = $_[1];
14958     my $_savetext;
14959     @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
14960     %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
14961     my $repcount = 0;
14962
14963
14964     Parse::RecDescent::_trace(q{Trying terminal: [/COVARIANCE/i]}, Parse::RecDescent::_tracefirst($text),
14965             q{_alternation_1_of_production_12_of_rule_sysibm_function},
14966             $tracelevel)
14967             if defined $::RD_TRACE;
14968     $lastsep = "";
14969     $expectation->is(q{})->at($text);
14970
14971
14972     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COVARIANCE)//i)
14973     {
14974
14975       $expectation->failed();
14976       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
14977               Parse::RecDescent::_tracefirst($text))
14978           if defined $::RD_TRACE;
14979
14980       last;
14981     }
14982     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
14983             . $& . q{])},
14984               Parse::RecDescent::_tracefirst($text))
14985           if defined $::RD_TRACE;
14986     push @item, $item{__PATTERN1__}=$&;
14987
14988
14989
14990     Parse::RecDescent::_trace(q{>>Matched production: [/COVARIANCE/i]<<},
14991             Parse::RecDescent::_tracefirst($text),
14992             q{_alternation_1_of_production_12_of_rule_sysibm_function},
14993             $tracelevel)
14994             if defined $::RD_TRACE;
14995     $_matched = 1;
14996     last;
14997   }
14998
14999
15000   while (!$_matched && !$commit)
15001   {
15002
15003     Parse::RecDescent::_trace(q{Trying production: [/COVAR/i]},
15004             Parse::RecDescent::_tracefirst($_[1]),
15005             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15006             $tracelevel)
15007             if defined $::RD_TRACE;
15008     my $thisprod = $thisrule->{"prods"}[1];
15009     $text = $_[1];
15010     my $_savetext;
15011     @item = (q{_alternation_1_of_production_12_of_rule_sysibm_function});
15012     %item = (__RULE__ => q{_alternation_1_of_production_12_of_rule_sysibm_function});
15013     my $repcount = 0;
15014
15015
15016     Parse::RecDescent::_trace(q{Trying terminal: [/COVAR/i]}, Parse::RecDescent::_tracefirst($text),
15017             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15018             $tracelevel)
15019             if defined $::RD_TRACE;
15020     $lastsep = "";
15021     $expectation->is(q{})->at($text);
15022
15023
15024     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COVAR)//i)
15025     {
15026
15027       $expectation->failed();
15028       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
15029               Parse::RecDescent::_tracefirst($text))
15030           if defined $::RD_TRACE;
15031
15032       last;
15033     }
15034     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15035             . $& . q{])},
15036               Parse::RecDescent::_tracefirst($text))
15037           if defined $::RD_TRACE;
15038     push @item, $item{__PATTERN1__}=$&;
15039
15040
15041
15042     Parse::RecDescent::_trace(q{>>Matched production: [/COVAR/i]<<},
15043             Parse::RecDescent::_tracefirst($text),
15044             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15045             $tracelevel)
15046             if defined $::RD_TRACE;
15047     $_matched = 1;
15048     last;
15049   }
15050
15051
15052         unless ( $_matched || defined($return) || defined($score) )
15053   {
15054
15055
15056     $_[1] = $text;  # NOT SURE THIS IS NEEDED
15057     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15058            Parse::RecDescent::_tracefirst($_[1]),
15059            q{_alternation_1_of_production_12_of_rule_sysibm_function},
15060            $tracelevel)
15061           if defined $::RD_TRACE;
15062     return undef;
15063   }
15064   if (!defined($return) && defined($score))
15065   {
15066     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15067             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15068             $tracelevel)
15069             if defined $::RD_TRACE;
15070     $return = $score_return;
15071   }
15072   splice @{$thisparser->{errors}}, $err_at;
15073   $return = $item[$#item] unless defined $return;
15074   if (defined $::RD_TRACE)
15075   {
15076     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15077             $return . q{])}, "",
15078             q{_alternation_1_of_production_12_of_rule_sysibm_function},
15079             $tracelevel);
15080     Parse::RecDescent::_trace(q{(consumed: [} .
15081             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15082             Parse::RecDescent::_tracefirst($text),
15083             , q{_alternation_1_of_production_12_of_rule_sysibm_function},
15084             $tracelevel)
15085   }
15086   $_[1] = $text;
15087   return $return;
15088 }
15089
15090 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15091 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect
15092 {
15093   my $thisparser = $_[0];
15094   use vars q{$tracelevel};
15095   local $tracelevel = ($tracelevel||0)+1;
15096   $ERRORS = 0;
15097   my $thisrule = $thisparser->{"rules"}{"scalar_fullselect"};
15098
15099   Parse::RecDescent::_trace(q{Trying rule: [scalar_fullselect]},
15100           Parse::RecDescent::_tracefirst($_[1]),
15101           q{scalar_fullselect},
15102           $tracelevel)
15103           if defined $::RD_TRACE;
15104
15105
15106   my $err_at = @{$thisparser->{errors}};
15107
15108   my $score;
15109   my $score_return;
15110   my $_tok;
15111   my $return = undef;
15112   my $_matched=0;
15113   my $commit=0;
15114   my @item = ();
15115   my %item = ();
15116   my $repeating =  defined($_[2]) && $_[2];
15117   my $_noactions = defined($_[3]) && $_[3];
15118    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15119   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15120   my $text;
15121   my $lastsep="";
15122   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15123   $expectation->at($_[1]);
15124
15125   my $thisline;
15126   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15127
15128
15129
15130   while (!$_matched && !$commit)
15131   {
15132
15133     Parse::RecDescent::_trace(q{Trying production: ['(' fullselect ')']},
15134             Parse::RecDescent::_tracefirst($_[1]),
15135             q{scalar_fullselect},
15136             $tracelevel)
15137             if defined $::RD_TRACE;
15138     my $thisprod = $thisrule->{"prods"}[0];
15139     $text = $_[1];
15140     my $_savetext;
15141     @item = (q{scalar_fullselect});
15142     %item = (__RULE__ => q{scalar_fullselect});
15143     my $repcount = 0;
15144
15145
15146     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
15147             Parse::RecDescent::_tracefirst($text),
15148             q{scalar_fullselect},
15149             $tracelevel)
15150             if defined $::RD_TRACE;
15151     $lastsep = "";
15152     $expectation->is(q{})->at($text);
15153
15154
15155     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
15156     {
15157
15158       $expectation->failed();
15159       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
15160               Parse::RecDescent::_tracefirst($text))
15161               if defined $::RD_TRACE;
15162       last;
15163     }
15164     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15165             . $& . q{])},
15166               Parse::RecDescent::_tracefirst($text))
15167               if defined $::RD_TRACE;
15168     push @item, $item{__STRING1__}=$&;
15169
15170
15171     Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
15172           Parse::RecDescent::_tracefirst($text),
15173           q{scalar_fullselect},
15174           $tracelevel)
15175           if defined $::RD_TRACE;
15176     if (1) { no strict qw{refs};
15177     $expectation->is(q{fullselect})->at($text);
15178     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15179     {
15180
15181       Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
15182               Parse::RecDescent::_tracefirst($text),
15183               q{scalar_fullselect},
15184               $tracelevel)
15185               if defined $::RD_TRACE;
15186       $expectation->failed();
15187       last;
15188     }
15189     Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
15190           . $_tok . q{]},
15191
15192             Parse::RecDescent::_tracefirst($text),
15193             q{scalar_fullselect},
15194             $tracelevel)
15195             if defined $::RD_TRACE;
15196     $item{q{fullselect}} = $_tok;
15197     push @item, $_tok;
15198
15199     }
15200
15201     Parse::RecDescent::_trace(q{Trying terminal: [')']},
15202             Parse::RecDescent::_tracefirst($text),
15203             q{scalar_fullselect},
15204             $tracelevel)
15205             if defined $::RD_TRACE;
15206     $lastsep = "";
15207     $expectation->is(q{')'})->at($text);
15208
15209
15210     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
15211     {
15212
15213       $expectation->failed();
15214       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
15215               Parse::RecDescent::_tracefirst($text))
15216               if defined $::RD_TRACE;
15217       last;
15218     }
15219     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15220             . $& . q{])},
15221               Parse::RecDescent::_tracefirst($text))
15222               if defined $::RD_TRACE;
15223     push @item, $item{__STRING2__}=$&;
15224
15225
15226
15227     Parse::RecDescent::_trace(q{>>Matched production: ['(' fullselect ')']<<},
15228             Parse::RecDescent::_tracefirst($text),
15229             q{scalar_fullselect},
15230             $tracelevel)
15231             if defined $::RD_TRACE;
15232     $_matched = 1;
15233     last;
15234   }
15235
15236
15237         unless ( $_matched || defined($return) || defined($score) )
15238   {
15239
15240
15241     $_[1] = $text;  # NOT SURE THIS IS NEEDED
15242     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15243            Parse::RecDescent::_tracefirst($_[1]),
15244            q{scalar_fullselect},
15245            $tracelevel)
15246           if defined $::RD_TRACE;
15247     return undef;
15248   }
15249   if (!defined($return) && defined($score))
15250   {
15251     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15252             q{scalar_fullselect},
15253             $tracelevel)
15254             if defined $::RD_TRACE;
15255     $return = $score_return;
15256   }
15257   splice @{$thisparser->{errors}}, $err_at;
15258   $return = $item[$#item] unless defined $return;
15259   if (defined $::RD_TRACE)
15260   {
15261     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15262             $return . q{])}, "",
15263             q{scalar_fullselect},
15264             $tracelevel);
15265     Parse::RecDescent::_trace(q{(consumed: [} .
15266             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15267             Parse::RecDescent::_tracefirst($text),
15268             , q{scalar_fullselect},
15269             $tracelevel)
15270   }
15271   $_[1] = $text;
15272   return $return;
15273 }
15274
15275 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15276 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options
15277 {
15278   my $thisparser = $_[0];
15279   use vars q{$tracelevel};
15280   local $tracelevel = ($tracelevel||0)+1;
15281   $ERRORS = 0;
15282   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_options"};
15283
15284   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_options]},
15285           Parse::RecDescent::_tracefirst($_[1]),
15286           q{_alternation_1_of_production_1_of_rule_options},
15287           $tracelevel)
15288           if defined $::RD_TRACE;
15289
15290
15291   my $err_at = @{$thisparser->{errors}};
15292
15293   my $score;
15294   my $score_return;
15295   my $_tok;
15296   my $return = undef;
15297   my $_matched=0;
15298   my $commit=0;
15299   my @item = ();
15300   my %item = ();
15301   my $repeating =  defined($_[2]) && $_[2];
15302   my $_noactions = defined($_[3]) && $_[3];
15303    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15304   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15305   my $text;
15306   my $lastsep="";
15307   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15308   $expectation->at($_[1]);
15309
15310   my $thisline;
15311   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15312
15313
15314
15315   while (!$_matched && !$commit)
15316   {
15317
15318     Parse::RecDescent::_trace(q{Trying production: [/CASCADED/i]},
15319             Parse::RecDescent::_tracefirst($_[1]),
15320             q{_alternation_1_of_production_1_of_rule_options},
15321             $tracelevel)
15322             if defined $::RD_TRACE;
15323     my $thisprod = $thisrule->{"prods"}[0];
15324     $text = $_[1];
15325     my $_savetext;
15326     @item = (q{_alternation_1_of_production_1_of_rule_options});
15327     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
15328     my $repcount = 0;
15329
15330
15331     Parse::RecDescent::_trace(q{Trying terminal: [/CASCADED/i]}, Parse::RecDescent::_tracefirst($text),
15332             q{_alternation_1_of_production_1_of_rule_options},
15333             $tracelevel)
15334             if defined $::RD_TRACE;
15335     $lastsep = "";
15336     $expectation->is(q{})->at($text);
15337
15338
15339     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CASCADED)//i)
15340     {
15341
15342       $expectation->failed();
15343       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
15344               Parse::RecDescent::_tracefirst($text))
15345           if defined $::RD_TRACE;
15346
15347       last;
15348     }
15349     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15350             . $& . q{])},
15351               Parse::RecDescent::_tracefirst($text))
15352           if defined $::RD_TRACE;
15353     push @item, $item{__PATTERN1__}=$&;
15354
15355
15356
15357     Parse::RecDescent::_trace(q{>>Matched production: [/CASCADED/i]<<},
15358             Parse::RecDescent::_tracefirst($text),
15359             q{_alternation_1_of_production_1_of_rule_options},
15360             $tracelevel)
15361             if defined $::RD_TRACE;
15362     $_matched = 1;
15363     last;
15364   }
15365
15366
15367   while (!$_matched && !$commit)
15368   {
15369
15370     Parse::RecDescent::_trace(q{Trying production: [/LOCAL/i]},
15371             Parse::RecDescent::_tracefirst($_[1]),
15372             q{_alternation_1_of_production_1_of_rule_options},
15373             $tracelevel)
15374             if defined $::RD_TRACE;
15375     my $thisprod = $thisrule->{"prods"}[1];
15376     $text = $_[1];
15377     my $_savetext;
15378     @item = (q{_alternation_1_of_production_1_of_rule_options});
15379     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_options});
15380     my $repcount = 0;
15381
15382
15383     Parse::RecDescent::_trace(q{Trying terminal: [/LOCAL/i]}, Parse::RecDescent::_tracefirst($text),
15384             q{_alternation_1_of_production_1_of_rule_options},
15385             $tracelevel)
15386             if defined $::RD_TRACE;
15387     $lastsep = "";
15388     $expectation->is(q{})->at($text);
15389
15390
15391     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOCAL)//i)
15392     {
15393
15394       $expectation->failed();
15395       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
15396               Parse::RecDescent::_tracefirst($text))
15397           if defined $::RD_TRACE;
15398
15399       last;
15400     }
15401     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15402             . $& . q{])},
15403               Parse::RecDescent::_tracefirst($text))
15404           if defined $::RD_TRACE;
15405     push @item, $item{__PATTERN1__}=$&;
15406
15407
15408
15409     Parse::RecDescent::_trace(q{>>Matched production: [/LOCAL/i]<<},
15410             Parse::RecDescent::_tracefirst($text),
15411             q{_alternation_1_of_production_1_of_rule_options},
15412             $tracelevel)
15413             if defined $::RD_TRACE;
15414     $_matched = 1;
15415     last;
15416   }
15417
15418
15419         unless ( $_matched || defined($return) || defined($score) )
15420   {
15421
15422
15423     $_[1] = $text;  # NOT SURE THIS IS NEEDED
15424     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15425            Parse::RecDescent::_tracefirst($_[1]),
15426            q{_alternation_1_of_production_1_of_rule_options},
15427            $tracelevel)
15428           if defined $::RD_TRACE;
15429     return undef;
15430   }
15431   if (!defined($return) && defined($score))
15432   {
15433     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15434             q{_alternation_1_of_production_1_of_rule_options},
15435             $tracelevel)
15436             if defined $::RD_TRACE;
15437     $return = $score_return;
15438   }
15439   splice @{$thisparser->{errors}}, $err_at;
15440   $return = $item[$#item] unless defined $return;
15441   if (defined $::RD_TRACE)
15442   {
15443     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15444             $return . q{])}, "",
15445             q{_alternation_1_of_production_1_of_rule_options},
15446             $tracelevel);
15447     Parse::RecDescent::_trace(q{(consumed: [} .
15448             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15449             Parse::RecDescent::_tracefirst($text),
15450             , q{_alternation_1_of_production_1_of_rule_options},
15451             $tracelevel)
15452   }
15453   $_[1] = $text;
15454   return $return;
15455 }
15456
15457 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15458 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args
15459 {
15460   my $thisparser = $_[0];
15461   use vars q{$tracelevel};
15462   local $tracelevel = ($tracelevel||0)+1;
15463   $ERRORS = 0;
15464   my $thisrule = $thisparser->{"rules"}{"func_args"};
15465
15466   Parse::RecDescent::_trace(q{Trying rule: [func_args]},
15467           Parse::RecDescent::_tracefirst($_[1]),
15468           q{func_args},
15469           $tracelevel)
15470           if defined $::RD_TRACE;
15471
15472
15473   my $err_at = @{$thisparser->{errors}};
15474
15475   my $score;
15476   my $score_return;
15477   my $_tok;
15478   my $return = undef;
15479   my $_matched=0;
15480   my $commit=0;
15481   my @item = ();
15482   my %item = ();
15483   my $repeating =  defined($_[2]) && $_[2];
15484   my $_noactions = defined($_[3]) && $_[3];
15485    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15486   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15487   my $text;
15488   my $lastsep="";
15489   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15490   $expectation->at($_[1]);
15491
15492   my $thisline;
15493   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15494
15495
15496
15497   while (!$_matched && !$commit)
15498   {
15499
15500     Parse::RecDescent::_trace(q{Trying production: [expression]},
15501             Parse::RecDescent::_tracefirst($_[1]),
15502             q{func_args},
15503             $tracelevel)
15504             if defined $::RD_TRACE;
15505     my $thisprod = $thisrule->{"prods"}[0];
15506     $text = $_[1];
15507     my $_savetext;
15508     @item = (q{func_args});
15509     %item = (__RULE__ => q{func_args});
15510     my $repcount = 0;
15511
15512
15513     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
15514           Parse::RecDescent::_tracefirst($text),
15515           q{func_args},
15516           $tracelevel)
15517           if defined $::RD_TRACE;
15518     if (1) { no strict qw{refs};
15519     $expectation->is(q{})->at($text);
15520     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15521     {
15522
15523       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
15524               Parse::RecDescent::_tracefirst($text),
15525               q{func_args},
15526               $tracelevel)
15527               if defined $::RD_TRACE;
15528       $expectation->failed();
15529       last;
15530     }
15531     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
15532           . $_tok . q{]},
15533
15534             Parse::RecDescent::_tracefirst($text),
15535             q{func_args},
15536             $tracelevel)
15537             if defined $::RD_TRACE;
15538     $item{q{expression}} = $_tok;
15539     push @item, $_tok;
15540
15541     }
15542
15543
15544     Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
15545             Parse::RecDescent::_tracefirst($text),
15546             q{func_args},
15547             $tracelevel)
15548             if defined $::RD_TRACE;
15549     $_matched = 1;
15550     last;
15551   }
15552
15553
15554         unless ( $_matched || defined($return) || defined($score) )
15555   {
15556
15557
15558     $_[1] = $text;  # NOT SURE THIS IS NEEDED
15559     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15560            Parse::RecDescent::_tracefirst($_[1]),
15561            q{func_args},
15562            $tracelevel)
15563           if defined $::RD_TRACE;
15564     return undef;
15565   }
15566   if (!defined($return) && defined($score))
15567   {
15568     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15569             q{func_args},
15570             $tracelevel)
15571             if defined $::RD_TRACE;
15572     $return = $score_return;
15573   }
15574   splice @{$thisparser->{errors}}, $err_at;
15575   $return = $item[$#item] unless defined $return;
15576   if (defined $::RD_TRACE)
15577   {
15578     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15579             $return . q{])}, "",
15580             q{func_args},
15581             $tracelevel);
15582     Parse::RecDescent::_trace(q{(consumed: [} .
15583             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15584             Parse::RecDescent::_tracefirst($text),
15585             , q{func_args},
15586             $tracelevel)
15587   }
15588   $_[1] = $text;
15589   return $return;
15590 }
15591
15592 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15593 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name
15594 {
15595   my $thisparser = $_[0];
15596   use vars q{$tracelevel};
15597   local $tracelevel = ($tracelevel||0)+1;
15598   $ERRORS = 0;
15599   my $thisrule = $thisparser->{"rules"}{"trigger_name"};
15600
15601   Parse::RecDescent::_trace(q{Trying rule: [trigger_name]},
15602           Parse::RecDescent::_tracefirst($_[1]),
15603           q{trigger_name},
15604           $tracelevel)
15605           if defined $::RD_TRACE;
15606
15607
15608   my $err_at = @{$thisparser->{errors}};
15609
15610   my $score;
15611   my $score_return;
15612   my $_tok;
15613   my $return = undef;
15614   my $_matched=0;
15615   my $commit=0;
15616   my @item = ();
15617   my %item = ();
15618   my $repeating =  defined($_[2]) && $_[2];
15619   my $_noactions = defined($_[3]) && $_[3];
15620    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15621   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15622   my $text;
15623   my $lastsep="";
15624   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15625   $expectation->at($_[1]);
15626
15627   my $thisline;
15628   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15629
15630
15631
15632   while (!$_matched && !$commit)
15633   {
15634
15635     Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
15636             Parse::RecDescent::_tracefirst($_[1]),
15637             q{trigger_name},
15638             $tracelevel)
15639             if defined $::RD_TRACE;
15640     my $thisprod = $thisrule->{"prods"}[0];
15641     $text = $_[1];
15642     my $_savetext;
15643     @item = (q{trigger_name});
15644     %item = (__RULE__ => q{trigger_name});
15645     my $repcount = 0;
15646
15647
15648     Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
15649           Parse::RecDescent::_tracefirst($text),
15650           q{trigger_name},
15651           $tracelevel)
15652           if defined $::RD_TRACE;
15653     if (1) { no strict qw{refs};
15654     $expectation->is(q{})->at($text);
15655     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15656     {
15657
15658       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
15659               Parse::RecDescent::_tracefirst($text),
15660               q{trigger_name},
15661               $tracelevel)
15662               if defined $::RD_TRACE;
15663       $expectation->failed();
15664       last;
15665     }
15666     Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
15667           . $_tok . q{]},
15668
15669             Parse::RecDescent::_tracefirst($text),
15670             q{trigger_name},
15671             $tracelevel)
15672             if defined $::RD_TRACE;
15673     $item{q{SCHEMA}} = $_tok;
15674     push @item, $_tok;
15675
15676     }
15677
15678     Parse::RecDescent::_trace(q{Trying terminal: ['.']},
15679             Parse::RecDescent::_tracefirst($text),
15680             q{trigger_name},
15681             $tracelevel)
15682             if defined $::RD_TRACE;
15683     $lastsep = "";
15684     $expectation->is(q{'.'})->at($text);
15685
15686
15687     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\.//)
15688     {
15689
15690       $expectation->failed();
15691       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
15692               Parse::RecDescent::_tracefirst($text))
15693               if defined $::RD_TRACE;
15694       last;
15695     }
15696     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15697             . $& . q{])},
15698               Parse::RecDescent::_tracefirst($text))
15699               if defined $::RD_TRACE;
15700     push @item, $item{__STRING1__}=$&;
15701
15702
15703     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
15704           Parse::RecDescent::_tracefirst($text),
15705           q{trigger_name},
15706           $tracelevel)
15707           if defined $::RD_TRACE;
15708     if (1) { no strict qw{refs};
15709     $expectation->is(q{NAME})->at($text);
15710     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15711     {
15712
15713       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
15714               Parse::RecDescent::_tracefirst($text),
15715               q{trigger_name},
15716               $tracelevel)
15717               if defined $::RD_TRACE;
15718       $expectation->failed();
15719       last;
15720     }
15721     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
15722           . $_tok . q{]},
15723
15724             Parse::RecDescent::_tracefirst($text),
15725             q{trigger_name},
15726             $tracelevel)
15727             if defined $::RD_TRACE;
15728     $item{q{NAME}} = $_tok;
15729     push @item, $_tok;
15730
15731     }
15732
15733     Parse::RecDescent::_trace(q{Trying action},
15734             Parse::RecDescent::_tracefirst($text),
15735             q{trigger_name},
15736             $tracelevel)
15737             if defined $::RD_TRACE;
15738
15739
15740     $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
15741     unless (defined $_tok)
15742     {
15743       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
15744           if defined $::RD_TRACE;
15745       last;
15746     }
15747     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
15748             . $_tok . q{])},
15749             Parse::RecDescent::_tracefirst($text))
15750             if defined $::RD_TRACE;
15751     push @item, $_tok;
15752     $item{__ACTION1__}=$_tok;
15753
15754
15755
15756     Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
15757             Parse::RecDescent::_tracefirst($text),
15758             q{trigger_name},
15759             $tracelevel)
15760             if defined $::RD_TRACE;
15761     $_matched = 1;
15762     last;
15763   }
15764
15765
15766   while (!$_matched && !$commit)
15767   {
15768
15769     Parse::RecDescent::_trace(q{Trying production: [NAME]},
15770             Parse::RecDescent::_tracefirst($_[1]),
15771             q{trigger_name},
15772             $tracelevel)
15773             if defined $::RD_TRACE;
15774     my $thisprod = $thisrule->{"prods"}[1];
15775     $text = $_[1];
15776     my $_savetext;
15777     @item = (q{trigger_name});
15778     %item = (__RULE__ => q{trigger_name});
15779     my $repcount = 0;
15780
15781
15782     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
15783           Parse::RecDescent::_tracefirst($text),
15784           q{trigger_name},
15785           $tracelevel)
15786           if defined $::RD_TRACE;
15787     if (1) { no strict qw{refs};
15788     $expectation->is(q{})->at($text);
15789     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15790     {
15791
15792       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
15793               Parse::RecDescent::_tracefirst($text),
15794               q{trigger_name},
15795               $tracelevel)
15796               if defined $::RD_TRACE;
15797       $expectation->failed();
15798       last;
15799     }
15800     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
15801           . $_tok . q{]},
15802
15803             Parse::RecDescent::_tracefirst($text),
15804             q{trigger_name},
15805             $tracelevel)
15806             if defined $::RD_TRACE;
15807     $item{q{NAME}} = $_tok;
15808     push @item, $_tok;
15809
15810     }
15811
15812     Parse::RecDescent::_trace(q{Trying action},
15813             Parse::RecDescent::_tracefirst($text),
15814             q{trigger_name},
15815             $tracelevel)
15816             if defined $::RD_TRACE;
15817
15818
15819     $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
15820     unless (defined $_tok)
15821     {
15822       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
15823           if defined $::RD_TRACE;
15824       last;
15825     }
15826     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
15827             . $_tok . q{])},
15828             Parse::RecDescent::_tracefirst($text))
15829             if defined $::RD_TRACE;
15830     push @item, $_tok;
15831     $item{__ACTION1__}=$_tok;
15832
15833
15834
15835     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
15836             Parse::RecDescent::_tracefirst($text),
15837             q{trigger_name},
15838             $tracelevel)
15839             if defined $::RD_TRACE;
15840     $_matched = 1;
15841     last;
15842   }
15843
15844
15845         unless ( $_matched || defined($return) || defined($score) )
15846   {
15847
15848
15849     $_[1] = $text;  # NOT SURE THIS IS NEEDED
15850     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
15851            Parse::RecDescent::_tracefirst($_[1]),
15852            q{trigger_name},
15853            $tracelevel)
15854           if defined $::RD_TRACE;
15855     return undef;
15856   }
15857   if (!defined($return) && defined($score))
15858   {
15859     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
15860             q{trigger_name},
15861             $tracelevel)
15862             if defined $::RD_TRACE;
15863     $return = $score_return;
15864   }
15865   splice @{$thisparser->{errors}}, $err_at;
15866   $return = $item[$#item] unless defined $return;
15867   if (defined $::RD_TRACE)
15868   {
15869     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
15870             $return . q{])}, "",
15871             q{trigger_name},
15872             $tracelevel);
15873     Parse::RecDescent::_trace(q{(consumed: [} .
15874             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
15875             Parse::RecDescent::_tracefirst($text),
15876             , q{trigger_name},
15877             $tracelevel)
15878   }
15879   $_[1] = $text;
15880   return $return;
15881 }
15882
15883 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
15884 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_numbering_function
15885 {
15886   my $thisparser = $_[0];
15887   use vars q{$tracelevel};
15888   local $tracelevel = ($tracelevel||0)+1;
15889   $ERRORS = 0;
15890   my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_numbering_function"};
15891
15892   Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_numbering_function]},
15893           Parse::RecDescent::_tracefirst($_[1]),
15894           q{_alternation_2_of_production_1_of_rule_numbering_function},
15895           $tracelevel)
15896           if defined $::RD_TRACE;
15897
15898
15899   my $err_at = @{$thisparser->{errors}};
15900
15901   my $score;
15902   my $score_return;
15903   my $_tok;
15904   my $return = undef;
15905   my $_matched=0;
15906   my $commit=0;
15907   my @item = ();
15908   my %item = ();
15909   my $repeating =  defined($_[2]) && $_[2];
15910   my $_noactions = defined($_[3]) && $_[3];
15911    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
15912   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
15913   my $text;
15914   my $lastsep="";
15915   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
15916   $expectation->at($_[1]);
15917
15918   my $thisline;
15919   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
15920
15921
15922
15923   while (!$_matched && !$commit)
15924   {
15925
15926     Parse::RecDescent::_trace(q{Trying production: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]},
15927             Parse::RecDescent::_tracefirst($_[1]),
15928             q{_alternation_2_of_production_1_of_rule_numbering_function},
15929             $tracelevel)
15930             if defined $::RD_TRACE;
15931     my $thisprod = $thisrule->{"prods"}[0];
15932     $text = $_[1];
15933     my $_savetext;
15934     @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
15935     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
15936     my $repcount = 0;
15937
15938
15939     Parse::RecDescent::_trace(q{Trying terminal: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
15940             q{_alternation_2_of_production_1_of_rule_numbering_function},
15941             $tracelevel)
15942             if defined $::RD_TRACE;
15943     $lastsep = "";
15944     $expectation->is(q{})->at($text);
15945
15946
15947     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RANGE\s+BETWEEN\s+UNBOUNDED\s+PRECEDING\s+AND\s+UNBBOUNDED\s+FOLLOWING)//i)
15948     {
15949
15950       $expectation->failed();
15951       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
15952               Parse::RecDescent::_tracefirst($text))
15953           if defined $::RD_TRACE;
15954
15955       last;
15956     }
15957     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
15958             . $& . q{])},
15959               Parse::RecDescent::_tracefirst($text))
15960           if defined $::RD_TRACE;
15961     push @item, $item{__PATTERN1__}=$&;
15962
15963
15964
15965     Parse::RecDescent::_trace(q{>>Matched production: [/RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING/i]<<},
15966             Parse::RecDescent::_tracefirst($text),
15967             q{_alternation_2_of_production_1_of_rule_numbering_function},
15968             $tracelevel)
15969             if defined $::RD_TRACE;
15970     $_matched = 1;
15971     last;
15972   }
15973
15974
15975   while (!$_matched && !$commit)
15976   {
15977
15978     Parse::RecDescent::_trace(q{Trying production: [window_aggregation_group_clause]},
15979             Parse::RecDescent::_tracefirst($_[1]),
15980             q{_alternation_2_of_production_1_of_rule_numbering_function},
15981             $tracelevel)
15982             if defined $::RD_TRACE;
15983     my $thisprod = $thisrule->{"prods"}[1];
15984     $text = $_[1];
15985     my $_savetext;
15986     @item = (q{_alternation_2_of_production_1_of_rule_numbering_function});
15987     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_numbering_function});
15988     my $repcount = 0;
15989
15990
15991     Parse::RecDescent::_trace(q{Trying subrule: [window_aggregation_group_clause]},
15992           Parse::RecDescent::_tracefirst($text),
15993           q{_alternation_2_of_production_1_of_rule_numbering_function},
15994           $tracelevel)
15995           if defined $::RD_TRACE;
15996     if (1) { no strict qw{refs};
15997     $expectation->is(q{})->at($text);
15998     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
15999     {
16000
16001       Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_aggregation_group_clause]>>},
16002               Parse::RecDescent::_tracefirst($text),
16003               q{_alternation_2_of_production_1_of_rule_numbering_function},
16004               $tracelevel)
16005               if defined $::RD_TRACE;
16006       $expectation->failed();
16007       last;
16008     }
16009     Parse::RecDescent::_trace(q{>>Matched subrule: [window_aggregation_group_clause]<< (return value: [}
16010           . $_tok . q{]},
16011
16012             Parse::RecDescent::_tracefirst($text),
16013             q{_alternation_2_of_production_1_of_rule_numbering_function},
16014             $tracelevel)
16015             if defined $::RD_TRACE;
16016     $item{q{window_aggregation_group_clause}} = $_tok;
16017     push @item, $_tok;
16018
16019     }
16020
16021
16022     Parse::RecDescent::_trace(q{>>Matched production: [window_aggregation_group_clause]<<},
16023             Parse::RecDescent::_tracefirst($text),
16024             q{_alternation_2_of_production_1_of_rule_numbering_function},
16025             $tracelevel)
16026             if defined $::RD_TRACE;
16027     $_matched = 1;
16028     last;
16029   }
16030
16031
16032         unless ( $_matched || defined($return) || defined($score) )
16033   {
16034
16035
16036     $_[1] = $text;  # NOT SURE THIS IS NEEDED
16037     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
16038            Parse::RecDescent::_tracefirst($_[1]),
16039            q{_alternation_2_of_production_1_of_rule_numbering_function},
16040            $tracelevel)
16041           if defined $::RD_TRACE;
16042     return undef;
16043   }
16044   if (!defined($return) && defined($score))
16045   {
16046     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16047             q{_alternation_2_of_production_1_of_rule_numbering_function},
16048             $tracelevel)
16049             if defined $::RD_TRACE;
16050     $return = $score_return;
16051   }
16052   splice @{$thisparser->{errors}}, $err_at;
16053   $return = $item[$#item] unless defined $return;
16054   if (defined $::RD_TRACE)
16055   {
16056     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16057             $return . q{])}, "",
16058             q{_alternation_2_of_production_1_of_rule_numbering_function},
16059             $tracelevel);
16060     Parse::RecDescent::_trace(q{(consumed: [} .
16061             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
16062             Parse::RecDescent::_tracefirst($text),
16063             , q{_alternation_2_of_production_1_of_rule_numbering_function},
16064             $tracelevel)
16065   }
16066   $_[1] = $text;
16067   return $return;
16068 }
16069
16070 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16071 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name
16072 {
16073   my $thisparser = $_[0];
16074   use vars q{$tracelevel};
16075   local $tracelevel = ($tracelevel||0)+1;
16076   $ERRORS = 0;
16077   my $thisrule = $thisparser->{"rules"}{"method_name"};
16078
16079   Parse::RecDescent::_trace(q{Trying rule: [method_name]},
16080           Parse::RecDescent::_tracefirst($_[1]),
16081           q{method_name},
16082           $tracelevel)
16083           if defined $::RD_TRACE;
16084
16085
16086   my $err_at = @{$thisparser->{errors}};
16087
16088   my $score;
16089   my $score_return;
16090   my $_tok;
16091   my $return = undef;
16092   my $_matched=0;
16093   my $commit=0;
16094   my @item = ();
16095   my %item = ();
16096   my $repeating =  defined($_[2]) && $_[2];
16097   my $_noactions = defined($_[3]) && $_[3];
16098    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
16099   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
16100   my $text;
16101   my $lastsep="";
16102   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16103   $expectation->at($_[1]);
16104
16105   my $thisline;
16106   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16107
16108
16109
16110   while (!$_matched && !$commit)
16111   {
16112
16113     Parse::RecDescent::_trace(q{Trying production: [NAME]},
16114             Parse::RecDescent::_tracefirst($_[1]),
16115             q{method_name},
16116             $tracelevel)
16117             if defined $::RD_TRACE;
16118     my $thisprod = $thisrule->{"prods"}[0];
16119     $text = $_[1];
16120     my $_savetext;
16121     @item = (q{method_name});
16122     %item = (__RULE__ => q{method_name});
16123     my $repcount = 0;
16124
16125
16126     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
16127           Parse::RecDescent::_tracefirst($text),
16128           q{method_name},
16129           $tracelevel)
16130           if defined $::RD_TRACE;
16131     if (1) { no strict qw{refs};
16132     $expectation->is(q{})->at($text);
16133     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16134     {
16135
16136       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
16137               Parse::RecDescent::_tracefirst($text),
16138               q{method_name},
16139               $tracelevel)
16140               if defined $::RD_TRACE;
16141       $expectation->failed();
16142       last;
16143     }
16144     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
16145           . $_tok . q{]},
16146
16147             Parse::RecDescent::_tracefirst($text),
16148             q{method_name},
16149             $tracelevel)
16150             if defined $::RD_TRACE;
16151     $item{q{NAME}} = $_tok;
16152     push @item, $_tok;
16153
16154     }
16155
16156     Parse::RecDescent::_trace(q{Trying action},
16157             Parse::RecDescent::_tracefirst($text),
16158             q{method_name},
16159             $tracelevel)
16160             if defined $::RD_TRACE;
16161
16162
16163     $_tok = ($_noactions) ? 0 : do { # must be a method of subject_expression
16164 };
16165     unless (defined $_tok)
16166     {
16167       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
16168           if defined $::RD_TRACE;
16169       last;
16170     }
16171     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
16172             . $_tok . q{])},
16173             Parse::RecDescent::_tracefirst($text))
16174             if defined $::RD_TRACE;
16175     push @item, $_tok;
16176     $item{__ACTION1__}=$_tok;
16177
16178
16179
16180     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
16181             Parse::RecDescent::_tracefirst($text),
16182             q{method_name},
16183             $tracelevel)
16184             if defined $::RD_TRACE;
16185     $_matched = 1;
16186     last;
16187   }
16188
16189
16190         unless ( $_matched || defined($return) || defined($score) )
16191   {
16192
16193
16194     $_[1] = $text;  # NOT SURE THIS IS NEEDED
16195     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
16196            Parse::RecDescent::_tracefirst($_[1]),
16197            q{method_name},
16198            $tracelevel)
16199           if defined $::RD_TRACE;
16200     return undef;
16201   }
16202   if (!defined($return) && defined($score))
16203   {
16204     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16205             q{method_name},
16206             $tracelevel)
16207             if defined $::RD_TRACE;
16208     $return = $score_return;
16209   }
16210   splice @{$thisparser->{errors}}, $err_at;
16211   $return = $item[$#item] unless defined $return;
16212   if (defined $::RD_TRACE)
16213   {
16214     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16215             $return . q{])}, "",
16216             q{method_name},
16217             $tracelevel);
16218     Parse::RecDescent::_trace(q{(consumed: [} .
16219             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
16220             Parse::RecDescent::_tracefirst($text),
16221             , q{method_name},
16222             $tracelevel)
16223   }
16224   $_[1] = $text;
16225   return $return;
16226 }
16227
16228 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16229 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p
16230 {
16231   my $thisparser = $_[0];
16232   use vars q{$tracelevel};
16233   local $tracelevel = ($tracelevel||0)+1;
16234   $ERRORS = 0;
16235   my $thisrule = $thisparser->{"rules"}{"quantified_p"};
16236
16237   Parse::RecDescent::_trace(q{Trying rule: [quantified_p]},
16238           Parse::RecDescent::_tracefirst($_[1]),
16239           q{quantified_p},
16240           $tracelevel)
16241           if defined $::RD_TRACE;
16242
16243
16244   my $err_at = @{$thisparser->{errors}};
16245
16246   my $score;
16247   my $score_return;
16248   my $_tok;
16249   my $return = undef;
16250   my $_matched=0;
16251   my $commit=0;
16252   my @item = ();
16253   my %item = ();
16254   my $repeating =  defined($_[2]) && $_[2];
16255   my $_noactions = defined($_[3]) && $_[3];
16256    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
16257   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
16258   my $text;
16259   my $lastsep="";
16260   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16261   $expectation->at($_[1]);
16262
16263   my $thisline;
16264   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16265
16266
16267
16268   while (!$_matched && !$commit)
16269   {
16270
16271     Parse::RecDescent::_trace(q{Trying production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']},
16272             Parse::RecDescent::_tracefirst($_[1]),
16273             q{quantified_p},
16274             $tracelevel)
16275             if defined $::RD_TRACE;
16276     my $thisprod = $thisrule->{"prods"}[0];
16277     $text = $_[1];
16278     my $_savetext;
16279     @item = (q{quantified_p});
16280     %item = (__RULE__ => q{quantified_p});
16281     my $repcount = 0;
16282
16283
16284     Parse::RecDescent::_trace(q{Trying subrule: [expression1]},
16285           Parse::RecDescent::_tracefirst($text),
16286           q{quantified_p},
16287           $tracelevel)
16288           if defined $::RD_TRACE;
16289     if (1) { no strict qw{refs};
16290     $expectation->is(q{})->at($text);
16291     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16292     {
16293
16294       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression1]>>},
16295               Parse::RecDescent::_tracefirst($text),
16296               q{quantified_p},
16297               $tracelevel)
16298               if defined $::RD_TRACE;
16299       $expectation->failed();
16300       last;
16301     }
16302     Parse::RecDescent::_trace(q{>>Matched subrule: [expression1]<< (return value: [}
16303           . $_tok . q{]},
16304
16305             Parse::RecDescent::_tracefirst($text),
16306             q{quantified_p},
16307             $tracelevel)
16308             if defined $::RD_TRACE;
16309     $item{q{expression1}} = $_tok;
16310     push @item, $_tok;
16311
16312     }
16313
16314     Parse::RecDescent::_trace(q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]}, Parse::RecDescent::_tracefirst($text),
16315             q{quantified_p},
16316             $tracelevel)
16317             if defined $::RD_TRACE;
16318     $lastsep = "";
16319     $expectation->is(q{/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/})->at($text);
16320
16321
16322     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=))//)
16323     {
16324
16325       $expectation->failed();
16326       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
16327               Parse::RecDescent::_tracefirst($text))
16328           if defined $::RD_TRACE;
16329
16330       last;
16331     }
16332     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16333             . $& . q{])},
16334               Parse::RecDescent::_tracefirst($text))
16335           if defined $::RD_TRACE;
16336     push @item, $item{__PATTERN1__}=$&;
16337
16338
16339     Parse::RecDescent::_trace(q{Trying terminal: [/SOME|ANY|ALL/i]}, Parse::RecDescent::_tracefirst($text),
16340             q{quantified_p},
16341             $tracelevel)
16342             if defined $::RD_TRACE;
16343     $lastsep = "";
16344     $expectation->is(q{/SOME|ANY|ALL/i})->at($text);
16345
16346
16347     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SOME|ANY|ALL)//i)
16348     {
16349
16350       $expectation->failed();
16351       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
16352               Parse::RecDescent::_tracefirst($text))
16353           if defined $::RD_TRACE;
16354
16355       last;
16356     }
16357     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16358             . $& . q{])},
16359               Parse::RecDescent::_tracefirst($text))
16360           if defined $::RD_TRACE;
16361     push @item, $item{__PATTERN2__}=$&;
16362
16363
16364     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
16365             Parse::RecDescent::_tracefirst($text),
16366             q{quantified_p},
16367             $tracelevel)
16368             if defined $::RD_TRACE;
16369     $lastsep = "";
16370     $expectation->is(q{'('})->at($text);
16371
16372
16373     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
16374     {
16375
16376       $expectation->failed();
16377       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
16378               Parse::RecDescent::_tracefirst($text))
16379               if defined $::RD_TRACE;
16380       last;
16381     }
16382     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16383             . $& . q{])},
16384               Parse::RecDescent::_tracefirst($text))
16385               if defined $::RD_TRACE;
16386     push @item, $item{__STRING1__}=$&;
16387
16388
16389     Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
16390           Parse::RecDescent::_tracefirst($text),
16391           q{quantified_p},
16392           $tracelevel)
16393           if defined $::RD_TRACE;
16394     if (1) { no strict qw{refs};
16395     $expectation->is(q{fullselect})->at($text);
16396     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16397     {
16398
16399       Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
16400               Parse::RecDescent::_tracefirst($text),
16401               q{quantified_p},
16402               $tracelevel)
16403               if defined $::RD_TRACE;
16404       $expectation->failed();
16405       last;
16406     }
16407     Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
16408           . $_tok . q{]},
16409
16410             Parse::RecDescent::_tracefirst($text),
16411             q{quantified_p},
16412             $tracelevel)
16413             if defined $::RD_TRACE;
16414     $item{q{fullselect}} = $_tok;
16415     push @item, $_tok;
16416
16417     }
16418
16419     Parse::RecDescent::_trace(q{Trying terminal: [')']},
16420             Parse::RecDescent::_tracefirst($text),
16421             q{quantified_p},
16422             $tracelevel)
16423             if defined $::RD_TRACE;
16424     $lastsep = "";
16425     $expectation->is(q{')'})->at($text);
16426
16427
16428     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
16429     {
16430
16431       $expectation->failed();
16432       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
16433               Parse::RecDescent::_tracefirst($text))
16434               if defined $::RD_TRACE;
16435       last;
16436     }
16437     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16438             . $& . q{])},
16439               Parse::RecDescent::_tracefirst($text))
16440               if defined $::RD_TRACE;
16441     push @item, $item{__STRING2__}=$&;
16442
16443
16444
16445     Parse::RecDescent::_trace(q{>>Matched production: [expression1 /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ /SOME|ANY|ALL/i '(' fullselect ')']<<},
16446             Parse::RecDescent::_tracefirst($text),
16447             q{quantified_p},
16448             $tracelevel)
16449             if defined $::RD_TRACE;
16450     $_matched = 1;
16451     last;
16452   }
16453
16454
16455         unless ( $_matched || defined($return) || defined($score) )
16456   {
16457
16458
16459     $_[1] = $text;  # NOT SURE THIS IS NEEDED
16460     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
16461            Parse::RecDescent::_tracefirst($_[1]),
16462            q{quantified_p},
16463            $tracelevel)
16464           if defined $::RD_TRACE;
16465     return undef;
16466   }
16467   if (!defined($return) && defined($score))
16468   {
16469     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16470             q{quantified_p},
16471             $tracelevel)
16472             if defined $::RD_TRACE;
16473     $return = $score_return;
16474   }
16475   splice @{$thisparser->{errors}}, $err_at;
16476   $return = $item[$#item] unless defined $return;
16477   if (defined $::RD_TRACE)
16478   {
16479     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16480             $return . q{])}, "",
16481             q{quantified_p},
16482             $tracelevel);
16483     Parse::RecDescent::_trace(q{(consumed: [} .
16484             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
16485             Parse::RecDescent::_tracefirst($text),
16486             , q{quantified_p},
16487             $tracelevel)
16488   }
16489   $_[1] = $text;
16490   return $return;
16491 }
16492
16493 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16494 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression
16495 {
16496   my $thisparser = $_[0];
16497   use vars q{$tracelevel};
16498   local $tracelevel = ($tracelevel||0)+1;
16499   $ERRORS = 0;
16500   my $thisrule = $thisparser->{"rules"}{"common_table_expression"};
16501
16502   Parse::RecDescent::_trace(q{Trying rule: [common_table_expression]},
16503           Parse::RecDescent::_tracefirst($_[1]),
16504           q{common_table_expression},
16505           $tracelevel)
16506           if defined $::RD_TRACE;
16507
16508
16509   my $err_at = @{$thisparser->{errors}};
16510
16511   my $score;
16512   my $score_return;
16513   my $_tok;
16514   my $return = undef;
16515   my $_matched=0;
16516   my $commit=0;
16517   my @item = ();
16518   my %item = ();
16519   my $repeating =  defined($_[2]) && $_[2];
16520   my $_noactions = defined($_[3]) && $_[3];
16521    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
16522   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
16523   my $text;
16524   my $lastsep="";
16525   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16526   $expectation->at($_[1]);
16527
16528   my $thisline;
16529   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16530
16531
16532
16533   while (!$_matched && !$commit)
16534   {
16535
16536     Parse::RecDescent::_trace(q{Trying production: [table_name column_list /AS/i get_bracketed]},
16537             Parse::RecDescent::_tracefirst($_[1]),
16538             q{common_table_expression},
16539             $tracelevel)
16540             if defined $::RD_TRACE;
16541     my $thisprod = $thisrule->{"prods"}[0];
16542     $text = $_[1];
16543     my $_savetext;
16544     @item = (q{common_table_expression});
16545     %item = (__RULE__ => q{common_table_expression});
16546     my $repcount = 0;
16547
16548
16549     Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
16550           Parse::RecDescent::_tracefirst($text),
16551           q{common_table_expression},
16552           $tracelevel)
16553           if defined $::RD_TRACE;
16554     if (1) { no strict qw{refs};
16555     $expectation->is(q{})->at($text);
16556     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16557     {
16558
16559       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
16560               Parse::RecDescent::_tracefirst($text),
16561               q{common_table_expression},
16562               $tracelevel)
16563               if defined $::RD_TRACE;
16564       $expectation->failed();
16565       last;
16566     }
16567     Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
16568           . $_tok . q{]},
16569
16570             Parse::RecDescent::_tracefirst($text),
16571             q{common_table_expression},
16572             $tracelevel)
16573             if defined $::RD_TRACE;
16574     $item{q{table_name}} = $_tok;
16575     push @item, $_tok;
16576
16577     }
16578
16579     Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
16580           Parse::RecDescent::_tracefirst($text),
16581           q{common_table_expression},
16582           $tracelevel)
16583           if defined $::RD_TRACE;
16584     if (1) { no strict qw{refs};
16585     $expectation->is(q{column_list})->at($text);
16586     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16587     {
16588
16589       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_list]>>},
16590               Parse::RecDescent::_tracefirst($text),
16591               q{common_table_expression},
16592               $tracelevel)
16593               if defined $::RD_TRACE;
16594       $expectation->failed();
16595       last;
16596     }
16597     Parse::RecDescent::_trace(q{>>Matched subrule: [column_list]<< (return value: [}
16598           . $_tok . q{]},
16599
16600             Parse::RecDescent::_tracefirst($text),
16601             q{common_table_expression},
16602             $tracelevel)
16603             if defined $::RD_TRACE;
16604     $item{q{column_list}} = $_tok;
16605     push @item, $_tok;
16606
16607     }
16608
16609     Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
16610             q{common_table_expression},
16611             $tracelevel)
16612             if defined $::RD_TRACE;
16613     $lastsep = "";
16614     $expectation->is(q{/AS/i})->at($text);
16615
16616
16617     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
16618     {
16619
16620       $expectation->failed();
16621       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
16622               Parse::RecDescent::_tracefirst($text))
16623           if defined $::RD_TRACE;
16624
16625       last;
16626     }
16627     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16628             . $& . q{])},
16629               Parse::RecDescent::_tracefirst($text))
16630           if defined $::RD_TRACE;
16631     push @item, $item{__PATTERN1__}=$&;
16632
16633
16634     Parse::RecDescent::_trace(q{Trying subrule: [get_bracketed]},
16635           Parse::RecDescent::_tracefirst($text),
16636           q{common_table_expression},
16637           $tracelevel)
16638           if defined $::RD_TRACE;
16639     if (1) { no strict qw{refs};
16640     $expectation->is(q{get_bracketed})->at($text);
16641     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::get_bracketed($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16642     {
16643
16644       Parse::RecDescent::_trace(q{<<Didn't match subrule: [get_bracketed]>>},
16645               Parse::RecDescent::_tracefirst($text),
16646               q{common_table_expression},
16647               $tracelevel)
16648               if defined $::RD_TRACE;
16649       $expectation->failed();
16650       last;
16651     }
16652     Parse::RecDescent::_trace(q{>>Matched subrule: [get_bracketed]<< (return value: [}
16653           . $_tok . q{]},
16654
16655             Parse::RecDescent::_tracefirst($text),
16656             q{common_table_expression},
16657             $tracelevel)
16658             if defined $::RD_TRACE;
16659     $item{q{get_bracketed}} = $_tok;
16660     push @item, $_tok;
16661
16662     }
16663
16664     Parse::RecDescent::_trace(q{Trying action},
16665             Parse::RecDescent::_tracefirst($text),
16666             q{common_table_expression},
16667             $tracelevel)
16668             if defined $::RD_TRACE;
16669
16670
16671     $_tok = ($_noactions) ? 0 : do {
16672     $return = { name  => $item{table_name}{name},
16673                 query => $item[4]
16674                 };
16675 };
16676     unless (defined $_tok)
16677     {
16678       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
16679           if defined $::RD_TRACE;
16680       last;
16681     }
16682     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
16683             . $_tok . q{])},
16684             Parse::RecDescent::_tracefirst($text))
16685             if defined $::RD_TRACE;
16686     push @item, $_tok;
16687     $item{__ACTION1__}=$_tok;
16688
16689
16690
16691     Parse::RecDescent::_trace(q{>>Matched production: [table_name column_list /AS/i get_bracketed]<<},
16692             Parse::RecDescent::_tracefirst($text),
16693             q{common_table_expression},
16694             $tracelevel)
16695             if defined $::RD_TRACE;
16696     $_matched = 1;
16697     last;
16698   }
16699
16700
16701   while (!$_matched && !$commit)
16702   {
16703
16704     Parse::RecDescent::_trace(q{Trying production: [table_name column_list /AS/i '(' fullselect ')']},
16705             Parse::RecDescent::_tracefirst($_[1]),
16706             q{common_table_expression},
16707             $tracelevel)
16708             if defined $::RD_TRACE;
16709     my $thisprod = $thisrule->{"prods"}[1];
16710     $text = $_[1];
16711     my $_savetext;
16712     @item = (q{common_table_expression});
16713     %item = (__RULE__ => q{common_table_expression});
16714     my $repcount = 0;
16715
16716
16717     Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
16718           Parse::RecDescent::_tracefirst($text),
16719           q{common_table_expression},
16720           $tracelevel)
16721           if defined $::RD_TRACE;
16722     if (1) { no strict qw{refs};
16723     $expectation->is(q{})->at($text);
16724     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16725     {
16726
16727       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
16728               Parse::RecDescent::_tracefirst($text),
16729               q{common_table_expression},
16730               $tracelevel)
16731               if defined $::RD_TRACE;
16732       $expectation->failed();
16733       last;
16734     }
16735     Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
16736           . $_tok . q{]},
16737
16738             Parse::RecDescent::_tracefirst($text),
16739             q{common_table_expression},
16740             $tracelevel)
16741             if defined $::RD_TRACE;
16742     $item{q{table_name}} = $_tok;
16743     push @item, $_tok;
16744
16745     }
16746
16747     Parse::RecDescent::_trace(q{Trying subrule: [column_list]},
16748           Parse::RecDescent::_tracefirst($text),
16749           q{common_table_expression},
16750           $tracelevel)
16751           if defined $::RD_TRACE;
16752     if (1) { no strict qw{refs};
16753     $expectation->is(q{column_list})->at($text);
16754     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16755     {
16756
16757       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_list]>>},
16758               Parse::RecDescent::_tracefirst($text),
16759               q{common_table_expression},
16760               $tracelevel)
16761               if defined $::RD_TRACE;
16762       $expectation->failed();
16763       last;
16764     }
16765     Parse::RecDescent::_trace(q{>>Matched subrule: [column_list]<< (return value: [}
16766           . $_tok . q{]},
16767
16768             Parse::RecDescent::_tracefirst($text),
16769             q{common_table_expression},
16770             $tracelevel)
16771             if defined $::RD_TRACE;
16772     $item{q{column_list}} = $_tok;
16773     push @item, $_tok;
16774
16775     }
16776
16777     Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
16778             q{common_table_expression},
16779             $tracelevel)
16780             if defined $::RD_TRACE;
16781     $lastsep = "";
16782     $expectation->is(q{/AS/i})->at($text);
16783
16784
16785     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
16786     {
16787
16788       $expectation->failed();
16789       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
16790               Parse::RecDescent::_tracefirst($text))
16791           if defined $::RD_TRACE;
16792
16793       last;
16794     }
16795     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16796             . $& . q{])},
16797               Parse::RecDescent::_tracefirst($text))
16798           if defined $::RD_TRACE;
16799     push @item, $item{__PATTERN1__}=$&;
16800
16801
16802     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
16803             Parse::RecDescent::_tracefirst($text),
16804             q{common_table_expression},
16805             $tracelevel)
16806             if defined $::RD_TRACE;
16807     $lastsep = "";
16808     $expectation->is(q{'('})->at($text);
16809
16810
16811     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
16812     {
16813
16814       $expectation->failed();
16815       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
16816               Parse::RecDescent::_tracefirst($text))
16817               if defined $::RD_TRACE;
16818       last;
16819     }
16820     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16821             . $& . q{])},
16822               Parse::RecDescent::_tracefirst($text))
16823               if defined $::RD_TRACE;
16824     push @item, $item{__STRING1__}=$&;
16825
16826
16827     Parse::RecDescent::_trace(q{Trying subrule: [fullselect]},
16828           Parse::RecDescent::_tracefirst($text),
16829           q{common_table_expression},
16830           $tracelevel)
16831           if defined $::RD_TRACE;
16832     if (1) { no strict qw{refs};
16833     $expectation->is(q{fullselect})->at($text);
16834     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
16835     {
16836
16837       Parse::RecDescent::_trace(q{<<Didn't match subrule: [fullselect]>>},
16838               Parse::RecDescent::_tracefirst($text),
16839               q{common_table_expression},
16840               $tracelevel)
16841               if defined $::RD_TRACE;
16842       $expectation->failed();
16843       last;
16844     }
16845     Parse::RecDescent::_trace(q{>>Matched subrule: [fullselect]<< (return value: [}
16846           . $_tok . q{]},
16847
16848             Parse::RecDescent::_tracefirst($text),
16849             q{common_table_expression},
16850             $tracelevel)
16851             if defined $::RD_TRACE;
16852     $item{q{fullselect}} = $_tok;
16853     push @item, $_tok;
16854
16855     }
16856
16857     Parse::RecDescent::_trace(q{Trying terminal: [')']},
16858             Parse::RecDescent::_tracefirst($text),
16859             q{common_table_expression},
16860             $tracelevel)
16861             if defined $::RD_TRACE;
16862     $lastsep = "";
16863     $expectation->is(q{')'})->at($text);
16864
16865
16866     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
16867     {
16868
16869       $expectation->failed();
16870       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
16871               Parse::RecDescent::_tracefirst($text))
16872               if defined $::RD_TRACE;
16873       last;
16874     }
16875     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
16876             . $& . q{])},
16877               Parse::RecDescent::_tracefirst($text))
16878               if defined $::RD_TRACE;
16879     push @item, $item{__STRING2__}=$&;
16880
16881
16882
16883     Parse::RecDescent::_trace(q{>>Matched production: [table_name column_list /AS/i '(' fullselect ')']<<},
16884             Parse::RecDescent::_tracefirst($text),
16885             q{common_table_expression},
16886             $tracelevel)
16887             if defined $::RD_TRACE;
16888     $_matched = 1;
16889     last;
16890   }
16891
16892
16893         unless ( $_matched || defined($return) || defined($score) )
16894   {
16895
16896
16897     $_[1] = $text;  # NOT SURE THIS IS NEEDED
16898     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
16899            Parse::RecDescent::_tracefirst($_[1]),
16900            q{common_table_expression},
16901            $tracelevel)
16902           if defined $::RD_TRACE;
16903     return undef;
16904   }
16905   if (!defined($return) && defined($score))
16906   {
16907     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
16908             q{common_table_expression},
16909             $tracelevel)
16910             if defined $::RD_TRACE;
16911     $return = $score_return;
16912   }
16913   splice @{$thisparser->{errors}}, $err_at;
16914   $return = $item[$#item] unless defined $return;
16915   if (defined $::RD_TRACE)
16916   {
16917     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
16918             $return . q{])}, "",
16919             q{common_table_expression},
16920             $tracelevel);
16921     Parse::RecDescent::_trace(q{(consumed: [} .
16922             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
16923             Parse::RecDescent::_tracefirst($text),
16924             , q{common_table_expression},
16925             $tracelevel)
16926   }
16927   $_[1] = $text;
16928   return $return;
16929 }
16930
16931 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
16932 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after
16933 {
16934   my $thisparser = $_[0];
16935   use vars q{$tracelevel};
16936   local $tracelevel = ($tracelevel||0)+1;
16937   $ERRORS = 0;
16938   my $thisrule = $thisparser->{"rules"}{"after"};
16939
16940   Parse::RecDescent::_trace(q{Trying rule: [after]},
16941           Parse::RecDescent::_tracefirst($_[1]),
16942           q{after},
16943           $tracelevel)
16944           if defined $::RD_TRACE;
16945
16946
16947   my $err_at = @{$thisparser->{errors}};
16948
16949   my $score;
16950   my $score_return;
16951   my $_tok;
16952   my $return = undef;
16953   my $_matched=0;
16954   my $commit=0;
16955   my @item = ();
16956   my %item = ();
16957   my $repeating =  defined($_[2]) && $_[2];
16958   my $_noactions = defined($_[3]) && $_[3];
16959    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
16960   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
16961   my $text;
16962   my $lastsep="";
16963   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
16964   $expectation->at($_[1]);
16965
16966   my $thisline;
16967   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
16968
16969
16970
16971   while (!$_matched && !$commit)
16972   {
16973
16974     Parse::RecDescent::_trace(q{Trying production: [/AFTER/i]},
16975             Parse::RecDescent::_tracefirst($_[1]),
16976             q{after},
16977             $tracelevel)
16978             if defined $::RD_TRACE;
16979     my $thisprod = $thisrule->{"prods"}[0];
16980     $text = $_[1];
16981     my $_savetext;
16982     @item = (q{after});
16983     %item = (__RULE__ => q{after});
16984     my $repcount = 0;
16985
16986
16987     Parse::RecDescent::_trace(q{Trying terminal: [/AFTER/i]}, Parse::RecDescent::_tracefirst($text),
16988             q{after},
16989             $tracelevel)
16990             if defined $::RD_TRACE;
16991     $lastsep = "";
16992     $expectation->is(q{})->at($text);
16993
16994
16995     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AFTER)//i)
16996     {
16997
16998       $expectation->failed();
16999       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
17000               Parse::RecDescent::_tracefirst($text))
17001           if defined $::RD_TRACE;
17002
17003       last;
17004     }
17005     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
17006             . $& . q{])},
17007               Parse::RecDescent::_tracefirst($text))
17008           if defined $::RD_TRACE;
17009     push @item, $item{__PATTERN1__}=$&;
17010
17011
17012
17013     Parse::RecDescent::_trace(q{>>Matched production: [/AFTER/i]<<},
17014             Parse::RecDescent::_tracefirst($text),
17015             q{after},
17016             $tracelevel)
17017             if defined $::RD_TRACE;
17018     $_matched = 1;
17019     last;
17020   }
17021
17022
17023         unless ( $_matched || defined($return) || defined($score) )
17024   {
17025
17026
17027     $_[1] = $text;  # NOT SURE THIS IS NEEDED
17028     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
17029            Parse::RecDescent::_tracefirst($_[1]),
17030            q{after},
17031            $tracelevel)
17032           if defined $::RD_TRACE;
17033     return undef;
17034   }
17035   if (!defined($return) && defined($score))
17036   {
17037     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17038             q{after},
17039             $tracelevel)
17040             if defined $::RD_TRACE;
17041     $return = $score_return;
17042   }
17043   splice @{$thisparser->{errors}}, $err_at;
17044   $return = $item[$#item] unless defined $return;
17045   if (defined $::RD_TRACE)
17046   {
17047     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17048             $return . q{])}, "",
17049             q{after},
17050             $tracelevel);
17051     Parse::RecDescent::_trace(q{(consumed: [} .
17052             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
17053             Parse::RecDescent::_tracefirst($text),
17054             , q{after},
17055             $tracelevel)
17056   }
17057   $_[1] = $text;
17058   return $return;
17059 }
17060
17061 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17062 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::predicate
17063 {
17064   my $thisparser = $_[0];
17065   use vars q{$tracelevel};
17066   local $tracelevel = ($tracelevel||0)+1;
17067   $ERRORS = 0;
17068   my $thisrule = $thisparser->{"rules"}{"predicate"};
17069
17070   Parse::RecDescent::_trace(q{Trying rule: [predicate]},
17071           Parse::RecDescent::_tracefirst($_[1]),
17072           q{predicate},
17073           $tracelevel)
17074           if defined $::RD_TRACE;
17075
17076
17077   my $err_at = @{$thisparser->{errors}};
17078
17079   my $score;
17080   my $score_return;
17081   my $_tok;
17082   my $return = undef;
17083   my $_matched=0;
17084   my $commit=0;
17085   my @item = ();
17086   my %item = ();
17087   my $repeating =  defined($_[2]) && $_[2];
17088   my $_noactions = defined($_[3]) && $_[3];
17089    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
17090   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
17091   my $text;
17092   my $lastsep="";
17093   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17094   $expectation->at($_[1]);
17095
17096   my $thisline;
17097   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17098
17099
17100
17101   while (!$_matched && !$commit)
17102   {
17103
17104     Parse::RecDescent::_trace(q{Trying production: [basic_p]},
17105             Parse::RecDescent::_tracefirst($_[1]),
17106             q{predicate},
17107             $tracelevel)
17108             if defined $::RD_TRACE;
17109     my $thisprod = $thisrule->{"prods"}[0];
17110     $text = $_[1];
17111     my $_savetext;
17112     @item = (q{predicate});
17113     %item = (__RULE__ => q{predicate});
17114     my $repcount = 0;
17115
17116
17117     Parse::RecDescent::_trace(q{Trying subrule: [basic_p]},
17118           Parse::RecDescent::_tracefirst($text),
17119           q{predicate},
17120           $tracelevel)
17121           if defined $::RD_TRACE;
17122     if (1) { no strict qw{refs};
17123     $expectation->is(q{})->at($text);
17124     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17125     {
17126
17127       Parse::RecDescent::_trace(q{<<Didn't match subrule: [basic_p]>>},
17128               Parse::RecDescent::_tracefirst($text),
17129               q{predicate},
17130               $tracelevel)
17131               if defined $::RD_TRACE;
17132       $expectation->failed();
17133       last;
17134     }
17135     Parse::RecDescent::_trace(q{>>Matched subrule: [basic_p]<< (return value: [}
17136           . $_tok . q{]},
17137
17138             Parse::RecDescent::_tracefirst($text),
17139             q{predicate},
17140             $tracelevel)
17141             if defined $::RD_TRACE;
17142     $item{q{basic_p}} = $_tok;
17143     push @item, $_tok;
17144
17145     }
17146
17147
17148     Parse::RecDescent::_trace(q{>>Matched production: [basic_p]<<},
17149             Parse::RecDescent::_tracefirst($text),
17150             q{predicate},
17151             $tracelevel)
17152             if defined $::RD_TRACE;
17153     $_matched = 1;
17154     last;
17155   }
17156
17157
17158   while (!$_matched && !$commit)
17159   {
17160
17161     Parse::RecDescent::_trace(q{Trying production: [quantified_p]},
17162             Parse::RecDescent::_tracefirst($_[1]),
17163             q{predicate},
17164             $tracelevel)
17165             if defined $::RD_TRACE;
17166     my $thisprod = $thisrule->{"prods"}[1];
17167     $text = $_[1];
17168     my $_savetext;
17169     @item = (q{predicate});
17170     %item = (__RULE__ => q{predicate});
17171     my $repcount = 0;
17172
17173
17174     Parse::RecDescent::_trace(q{Trying subrule: [quantified_p]},
17175           Parse::RecDescent::_tracefirst($text),
17176           q{predicate},
17177           $tracelevel)
17178           if defined $::RD_TRACE;
17179     if (1) { no strict qw{refs};
17180     $expectation->is(q{})->at($text);
17181     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::quantified_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17182     {
17183
17184       Parse::RecDescent::_trace(q{<<Didn't match subrule: [quantified_p]>>},
17185               Parse::RecDescent::_tracefirst($text),
17186               q{predicate},
17187               $tracelevel)
17188               if defined $::RD_TRACE;
17189       $expectation->failed();
17190       last;
17191     }
17192     Parse::RecDescent::_trace(q{>>Matched subrule: [quantified_p]<< (return value: [}
17193           . $_tok . q{]},
17194
17195             Parse::RecDescent::_tracefirst($text),
17196             q{predicate},
17197             $tracelevel)
17198             if defined $::RD_TRACE;
17199     $item{q{quantified_p}} = $_tok;
17200     push @item, $_tok;
17201
17202     }
17203
17204
17205     Parse::RecDescent::_trace(q{>>Matched production: [quantified_p]<<},
17206             Parse::RecDescent::_tracefirst($text),
17207             q{predicate},
17208             $tracelevel)
17209             if defined $::RD_TRACE;
17210     $_matched = 1;
17211     last;
17212   }
17213
17214
17215   while (!$_matched && !$commit)
17216   {
17217
17218     Parse::RecDescent::_trace(q{Trying production: [between_p]},
17219             Parse::RecDescent::_tracefirst($_[1]),
17220             q{predicate},
17221             $tracelevel)
17222             if defined $::RD_TRACE;
17223     my $thisprod = $thisrule->{"prods"}[2];
17224     $text = $_[1];
17225     my $_savetext;
17226     @item = (q{predicate});
17227     %item = (__RULE__ => q{predicate});
17228     my $repcount = 0;
17229
17230
17231     Parse::RecDescent::_trace(q{Trying subrule: [between_p]},
17232           Parse::RecDescent::_tracefirst($text),
17233           q{predicate},
17234           $tracelevel)
17235           if defined $::RD_TRACE;
17236     if (1) { no strict qw{refs};
17237     $expectation->is(q{})->at($text);
17238     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::between_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17239     {
17240
17241       Parse::RecDescent::_trace(q{<<Didn't match subrule: [between_p]>>},
17242               Parse::RecDescent::_tracefirst($text),
17243               q{predicate},
17244               $tracelevel)
17245               if defined $::RD_TRACE;
17246       $expectation->failed();
17247       last;
17248     }
17249     Parse::RecDescent::_trace(q{>>Matched subrule: [between_p]<< (return value: [}
17250           . $_tok . q{]},
17251
17252             Parse::RecDescent::_tracefirst($text),
17253             q{predicate},
17254             $tracelevel)
17255             if defined $::RD_TRACE;
17256     $item{q{between_p}} = $_tok;
17257     push @item, $_tok;
17258
17259     }
17260
17261
17262     Parse::RecDescent::_trace(q{>>Matched production: [between_p]<<},
17263             Parse::RecDescent::_tracefirst($text),
17264             q{predicate},
17265             $tracelevel)
17266             if defined $::RD_TRACE;
17267     $_matched = 1;
17268     last;
17269   }
17270
17271
17272   while (!$_matched && !$commit)
17273   {
17274
17275     Parse::RecDescent::_trace(q{Trying production: [exists_p]},
17276             Parse::RecDescent::_tracefirst($_[1]),
17277             q{predicate},
17278             $tracelevel)
17279             if defined $::RD_TRACE;
17280     my $thisprod = $thisrule->{"prods"}[3];
17281     $text = $_[1];
17282     my $_savetext;
17283     @item = (q{predicate});
17284     %item = (__RULE__ => q{predicate});
17285     my $repcount = 0;
17286
17287
17288     Parse::RecDescent::_trace(q{Trying subrule: [exists_p]},
17289           Parse::RecDescent::_tracefirst($text),
17290           q{predicate},
17291           $tracelevel)
17292           if defined $::RD_TRACE;
17293     if (1) { no strict qw{refs};
17294     $expectation->is(q{})->at($text);
17295     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::exists_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17296     {
17297
17298       Parse::RecDescent::_trace(q{<<Didn't match subrule: [exists_p]>>},
17299               Parse::RecDescent::_tracefirst($text),
17300               q{predicate},
17301               $tracelevel)
17302               if defined $::RD_TRACE;
17303       $expectation->failed();
17304       last;
17305     }
17306     Parse::RecDescent::_trace(q{>>Matched subrule: [exists_p]<< (return value: [}
17307           . $_tok . q{]},
17308
17309             Parse::RecDescent::_tracefirst($text),
17310             q{predicate},
17311             $tracelevel)
17312             if defined $::RD_TRACE;
17313     $item{q{exists_p}} = $_tok;
17314     push @item, $_tok;
17315
17316     }
17317
17318
17319     Parse::RecDescent::_trace(q{>>Matched production: [exists_p]<<},
17320             Parse::RecDescent::_tracefirst($text),
17321             q{predicate},
17322             $tracelevel)
17323             if defined $::RD_TRACE;
17324     $_matched = 1;
17325     last;
17326   }
17327
17328
17329   while (!$_matched && !$commit)
17330   {
17331
17332     Parse::RecDescent::_trace(q{Trying production: [in_p]},
17333             Parse::RecDescent::_tracefirst($_[1]),
17334             q{predicate},
17335             $tracelevel)
17336             if defined $::RD_TRACE;
17337     my $thisprod = $thisrule->{"prods"}[4];
17338     $text = $_[1];
17339     my $_savetext;
17340     @item = (q{predicate});
17341     %item = (__RULE__ => q{predicate});
17342     my $repcount = 0;
17343
17344
17345     Parse::RecDescent::_trace(q{Trying subrule: [in_p]},
17346           Parse::RecDescent::_tracefirst($text),
17347           q{predicate},
17348           $tracelevel)
17349           if defined $::RD_TRACE;
17350     if (1) { no strict qw{refs};
17351     $expectation->is(q{})->at($text);
17352     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::in_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17353     {
17354
17355       Parse::RecDescent::_trace(q{<<Didn't match subrule: [in_p]>>},
17356               Parse::RecDescent::_tracefirst($text),
17357               q{predicate},
17358               $tracelevel)
17359               if defined $::RD_TRACE;
17360       $expectation->failed();
17361       last;
17362     }
17363     Parse::RecDescent::_trace(q{>>Matched subrule: [in_p]<< (return value: [}
17364           . $_tok . q{]},
17365
17366             Parse::RecDescent::_tracefirst($text),
17367             q{predicate},
17368             $tracelevel)
17369             if defined $::RD_TRACE;
17370     $item{q{in_p}} = $_tok;
17371     push @item, $_tok;
17372
17373     }
17374
17375
17376     Parse::RecDescent::_trace(q{>>Matched production: [in_p]<<},
17377             Parse::RecDescent::_tracefirst($text),
17378             q{predicate},
17379             $tracelevel)
17380             if defined $::RD_TRACE;
17381     $_matched = 1;
17382     last;
17383   }
17384
17385
17386   while (!$_matched && !$commit)
17387   {
17388
17389     Parse::RecDescent::_trace(q{Trying production: [like_p]},
17390             Parse::RecDescent::_tracefirst($_[1]),
17391             q{predicate},
17392             $tracelevel)
17393             if defined $::RD_TRACE;
17394     my $thisprod = $thisrule->{"prods"}[5];
17395     $text = $_[1];
17396     my $_savetext;
17397     @item = (q{predicate});
17398     %item = (__RULE__ => q{predicate});
17399     my $repcount = 0;
17400
17401
17402     Parse::RecDescent::_trace(q{Trying subrule: [like_p]},
17403           Parse::RecDescent::_tracefirst($text),
17404           q{predicate},
17405           $tracelevel)
17406           if defined $::RD_TRACE;
17407     if (1) { no strict qw{refs};
17408     $expectation->is(q{})->at($text);
17409     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::like_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17410     {
17411
17412       Parse::RecDescent::_trace(q{<<Didn't match subrule: [like_p]>>},
17413               Parse::RecDescent::_tracefirst($text),
17414               q{predicate},
17415               $tracelevel)
17416               if defined $::RD_TRACE;
17417       $expectation->failed();
17418       last;
17419     }
17420     Parse::RecDescent::_trace(q{>>Matched subrule: [like_p]<< (return value: [}
17421           . $_tok . q{]},
17422
17423             Parse::RecDescent::_tracefirst($text),
17424             q{predicate},
17425             $tracelevel)
17426             if defined $::RD_TRACE;
17427     $item{q{like_p}} = $_tok;
17428     push @item, $_tok;
17429
17430     }
17431
17432
17433     Parse::RecDescent::_trace(q{>>Matched production: [like_p]<<},
17434             Parse::RecDescent::_tracefirst($text),
17435             q{predicate},
17436             $tracelevel)
17437             if defined $::RD_TRACE;
17438     $_matched = 1;
17439     last;
17440   }
17441
17442
17443   while (!$_matched && !$commit)
17444   {
17445
17446     Parse::RecDescent::_trace(q{Trying production: [null_p]},
17447             Parse::RecDescent::_tracefirst($_[1]),
17448             q{predicate},
17449             $tracelevel)
17450             if defined $::RD_TRACE;
17451     my $thisprod = $thisrule->{"prods"}[6];
17452     $text = $_[1];
17453     my $_savetext;
17454     @item = (q{predicate});
17455     %item = (__RULE__ => q{predicate});
17456     my $repcount = 0;
17457
17458
17459     Parse::RecDescent::_trace(q{Trying subrule: [null_p]},
17460           Parse::RecDescent::_tracefirst($text),
17461           q{predicate},
17462           $tracelevel)
17463           if defined $::RD_TRACE;
17464     if (1) { no strict qw{refs};
17465     $expectation->is(q{})->at($text);
17466     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::null_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17467     {
17468
17469       Parse::RecDescent::_trace(q{<<Didn't match subrule: [null_p]>>},
17470               Parse::RecDescent::_tracefirst($text),
17471               q{predicate},
17472               $tracelevel)
17473               if defined $::RD_TRACE;
17474       $expectation->failed();
17475       last;
17476     }
17477     Parse::RecDescent::_trace(q{>>Matched subrule: [null_p]<< (return value: [}
17478           . $_tok . q{]},
17479
17480             Parse::RecDescent::_tracefirst($text),
17481             q{predicate},
17482             $tracelevel)
17483             if defined $::RD_TRACE;
17484     $item{q{null_p}} = $_tok;
17485     push @item, $_tok;
17486
17487     }
17488
17489
17490     Parse::RecDescent::_trace(q{>>Matched production: [null_p]<<},
17491             Parse::RecDescent::_tracefirst($text),
17492             q{predicate},
17493             $tracelevel)
17494             if defined $::RD_TRACE;
17495     $_matched = 1;
17496     last;
17497   }
17498
17499
17500   while (!$_matched && !$commit)
17501   {
17502
17503     Parse::RecDescent::_trace(q{Trying production: [type_p]},
17504             Parse::RecDescent::_tracefirst($_[1]),
17505             q{predicate},
17506             $tracelevel)
17507             if defined $::RD_TRACE;
17508     my $thisprod = $thisrule->{"prods"}[7];
17509     $text = $_[1];
17510     my $_savetext;
17511     @item = (q{predicate});
17512     %item = (__RULE__ => q{predicate});
17513     my $repcount = 0;
17514
17515
17516     Parse::RecDescent::_trace(q{Trying subrule: [type_p]},
17517           Parse::RecDescent::_tracefirst($text),
17518           q{predicate},
17519           $tracelevel)
17520           if defined $::RD_TRACE;
17521     if (1) { no strict qw{refs};
17522     $expectation->is(q{})->at($text);
17523     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type_p($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17524     {
17525
17526       Parse::RecDescent::_trace(q{<<Didn't match subrule: [type_p]>>},
17527               Parse::RecDescent::_tracefirst($text),
17528               q{predicate},
17529               $tracelevel)
17530               if defined $::RD_TRACE;
17531       $expectation->failed();
17532       last;
17533     }
17534     Parse::RecDescent::_trace(q{>>Matched subrule: [type_p]<< (return value: [}
17535           . $_tok . q{]},
17536
17537             Parse::RecDescent::_tracefirst($text),
17538             q{predicate},
17539             $tracelevel)
17540             if defined $::RD_TRACE;
17541     $item{q{type_p}} = $_tok;
17542     push @item, $_tok;
17543
17544     }
17545
17546
17547     Parse::RecDescent::_trace(q{>>Matched production: [type_p]<<},
17548             Parse::RecDescent::_tracefirst($text),
17549             q{predicate},
17550             $tracelevel)
17551             if defined $::RD_TRACE;
17552     $_matched = 1;
17553     last;
17554   }
17555
17556
17557         unless ( $_matched || defined($return) || defined($score) )
17558   {
17559
17560
17561     $_[1] = $text;  # NOT SURE THIS IS NEEDED
17562     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
17563            Parse::RecDescent::_tracefirst($_[1]),
17564            q{predicate},
17565            $tracelevel)
17566           if defined $::RD_TRACE;
17567     return undef;
17568   }
17569   if (!defined($return) && defined($score))
17570   {
17571     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17572             q{predicate},
17573             $tracelevel)
17574             if defined $::RD_TRACE;
17575     $return = $score_return;
17576   }
17577   splice @{$thisparser->{errors}}, $err_at;
17578   $return = $item[$#item] unless defined $return;
17579   if (defined $::RD_TRACE)
17580   {
17581     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17582             $return . q{])}, "",
17583             q{predicate},
17584             $tracelevel);
17585     Parse::RecDescent::_trace(q{(consumed: [} .
17586             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
17587             Parse::RecDescent::_tracefirst($text),
17588             , q{predicate},
17589             $tracelevel)
17590   }
17591   $_[1] = $text;
17592   return $return;
17593 }
17594
17595 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17596 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name
17597 {
17598   my $thisparser = $_[0];
17599   use vars q{$tracelevel};
17600   local $tracelevel = ($tracelevel||0)+1;
17601   $ERRORS = 0;
17602   my $thisrule = $thisparser->{"rules"}{"column_name"};
17603
17604   Parse::RecDescent::_trace(q{Trying rule: [column_name]},
17605           Parse::RecDescent::_tracefirst($_[1]),
17606           q{column_name},
17607           $tracelevel)
17608           if defined $::RD_TRACE;
17609
17610
17611   my $err_at = @{$thisparser->{errors}};
17612
17613   my $score;
17614   my $score_return;
17615   my $_tok;
17616   my $return = undef;
17617   my $_matched=0;
17618   my $commit=0;
17619   my @item = ();
17620   my %item = ();
17621   my $repeating =  defined($_[2]) && $_[2];
17622   my $_noactions = defined($_[3]) && $_[3];
17623    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
17624   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
17625   my $text;
17626   my $lastsep="";
17627   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17628   $expectation->at($_[1]);
17629
17630   my $thisline;
17631   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17632
17633
17634
17635   while (!$_matched && !$commit)
17636   {
17637
17638     Parse::RecDescent::_trace(q{Trying production: [NAME]},
17639             Parse::RecDescent::_tracefirst($_[1]),
17640             q{column_name},
17641             $tracelevel)
17642             if defined $::RD_TRACE;
17643     my $thisprod = $thisrule->{"prods"}[0];
17644     $text = $_[1];
17645     my $_savetext;
17646     @item = (q{column_name});
17647     %item = (__RULE__ => q{column_name});
17648     my $repcount = 0;
17649
17650
17651     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
17652           Parse::RecDescent::_tracefirst($text),
17653           q{column_name},
17654           $tracelevel)
17655           if defined $::RD_TRACE;
17656     if (1) { no strict qw{refs};
17657     $expectation->is(q{})->at($text);
17658     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17659     {
17660
17661       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
17662               Parse::RecDescent::_tracefirst($text),
17663               q{column_name},
17664               $tracelevel)
17665               if defined $::RD_TRACE;
17666       $expectation->failed();
17667       last;
17668     }
17669     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
17670           . $_tok . q{]},
17671
17672             Parse::RecDescent::_tracefirst($text),
17673             q{column_name},
17674             $tracelevel)
17675             if defined $::RD_TRACE;
17676     $item{q{NAME}} = $_tok;
17677     push @item, $_tok;
17678
17679     }
17680
17681
17682     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
17683             Parse::RecDescent::_tracefirst($text),
17684             q{column_name},
17685             $tracelevel)
17686             if defined $::RD_TRACE;
17687     $_matched = 1;
17688     last;
17689   }
17690
17691
17692         unless ( $_matched || defined($return) || defined($score) )
17693   {
17694
17695
17696     $_[1] = $text;  # NOT SURE THIS IS NEEDED
17697     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
17698            Parse::RecDescent::_tracefirst($_[1]),
17699            q{column_name},
17700            $tracelevel)
17701           if defined $::RD_TRACE;
17702     return undef;
17703   }
17704   if (!defined($return) && defined($score))
17705   {
17706     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17707             q{column_name},
17708             $tracelevel)
17709             if defined $::RD_TRACE;
17710     $return = $score_return;
17711   }
17712   splice @{$thisparser->{errors}}, $err_at;
17713   $return = $item[$#item] unless defined $return;
17714   if (defined $::RD_TRACE)
17715   {
17716     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17717             $return . q{])}, "",
17718             q{column_name},
17719             $tracelevel);
17720     Parse::RecDescent::_trace(q{(consumed: [} .
17721             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
17722             Parse::RecDescent::_tracefirst($text),
17723             , q{column_name},
17724             $tracelevel)
17725   }
17726   $_[1] = $text;
17727   return $return;
17728 }
17729
17730 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17731 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation
17732 {
17733   my $thisparser = $_[0];
17734   use vars q{$tracelevel};
17735   local $tracelevel = ($tracelevel||0)+1;
17736   $ERRORS = 0;
17737   my $thisrule = $thisparser->{"rules"}{"method_invocation"};
17738
17739   Parse::RecDescent::_trace(q{Trying rule: [method_invocation]},
17740           Parse::RecDescent::_tracefirst($_[1]),
17741           q{method_invocation},
17742           $tracelevel)
17743           if defined $::RD_TRACE;
17744
17745
17746   my $err_at = @{$thisparser->{errors}};
17747
17748   my $score;
17749   my $score_return;
17750   my $_tok;
17751   my $return = undef;
17752   my $_matched=0;
17753   my $commit=0;
17754   my @item = ();
17755   my %item = ();
17756   my $repeating =  defined($_[2]) && $_[2];
17757   my $_noactions = defined($_[3]) && $_[3];
17758    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
17759   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
17760   my $text;
17761   my $lastsep="";
17762   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17763   $expectation->at($_[1]);
17764
17765   my $thisline;
17766   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17767
17768
17769
17770   while (!$_matched && !$commit)
17771   {
17772
17773     Parse::RecDescent::_trace(q{Trying production: [subject_expression '..' method_name '(']},
17774             Parse::RecDescent::_tracefirst($_[1]),
17775             q{method_invocation},
17776             $tracelevel)
17777             if defined $::RD_TRACE;
17778     my $thisprod = $thisrule->{"prods"}[0];
17779     $text = $_[1];
17780     my $_savetext;
17781     @item = (q{method_invocation});
17782     %item = (__RULE__ => q{method_invocation});
17783     my $repcount = 0;
17784
17785
17786     Parse::RecDescent::_trace(q{Trying subrule: [subject_expression]},
17787           Parse::RecDescent::_tracefirst($text),
17788           q{method_invocation},
17789           $tracelevel)
17790           if defined $::RD_TRACE;
17791     if (1) { no strict qw{refs};
17792     $expectation->is(q{})->at($text);
17793     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subject_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17794     {
17795
17796       Parse::RecDescent::_trace(q{<<Didn't match subrule: [subject_expression]>>},
17797               Parse::RecDescent::_tracefirst($text),
17798               q{method_invocation},
17799               $tracelevel)
17800               if defined $::RD_TRACE;
17801       $expectation->failed();
17802       last;
17803     }
17804     Parse::RecDescent::_trace(q{>>Matched subrule: [subject_expression]<< (return value: [}
17805           . $_tok . q{]},
17806
17807             Parse::RecDescent::_tracefirst($text),
17808             q{method_invocation},
17809             $tracelevel)
17810             if defined $::RD_TRACE;
17811     $item{q{subject_expression}} = $_tok;
17812     push @item, $_tok;
17813
17814     }
17815
17816     Parse::RecDescent::_trace(q{Trying terminal: ['..']},
17817             Parse::RecDescent::_tracefirst($text),
17818             q{method_invocation},
17819             $tracelevel)
17820             if defined $::RD_TRACE;
17821     $lastsep = "";
17822     $expectation->is(q{'..'})->at($text);
17823
17824
17825     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\.\.//)
17826     {
17827
17828       $expectation->failed();
17829       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
17830               Parse::RecDescent::_tracefirst($text))
17831               if defined $::RD_TRACE;
17832       last;
17833     }
17834     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
17835             . $& . q{])},
17836               Parse::RecDescent::_tracefirst($text))
17837               if defined $::RD_TRACE;
17838     push @item, $item{__STRING1__}=$&;
17839
17840
17841     Parse::RecDescent::_trace(q{Trying subrule: [method_name]},
17842           Parse::RecDescent::_tracefirst($text),
17843           q{method_invocation},
17844           $tracelevel)
17845           if defined $::RD_TRACE;
17846     if (1) { no strict qw{refs};
17847     $expectation->is(q{method_name})->at($text);
17848     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
17849     {
17850
17851       Parse::RecDescent::_trace(q{<<Didn't match subrule: [method_name]>>},
17852               Parse::RecDescent::_tracefirst($text),
17853               q{method_invocation},
17854               $tracelevel)
17855               if defined $::RD_TRACE;
17856       $expectation->failed();
17857       last;
17858     }
17859     Parse::RecDescent::_trace(q{>>Matched subrule: [method_name]<< (return value: [}
17860           . $_tok . q{]},
17861
17862             Parse::RecDescent::_tracefirst($text),
17863             q{method_invocation},
17864             $tracelevel)
17865             if defined $::RD_TRACE;
17866     $item{q{method_name}} = $_tok;
17867     push @item, $_tok;
17868
17869     }
17870
17871     Parse::RecDescent::_trace(q{Trying repeated subrule: ['(']},
17872           Parse::RecDescent::_tracefirst($text),
17873           q{method_invocation},
17874           $tracelevel)
17875           if defined $::RD_TRACE;
17876     $expectation->is(q{'('})->at($text);
17877
17878     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation, 0, 1, $_noactions,$expectation,undef)))
17879     {
17880       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['(']>>},
17881               Parse::RecDescent::_tracefirst($text),
17882               q{method_invocation},
17883               $tracelevel)
17884               if defined $::RD_TRACE;
17885       last;
17886     }
17887     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_method_invocation]<< (}
17888           . @$_tok . q{ times)},
17889
17890             Parse::RecDescent::_tracefirst($text),
17891             q{method_invocation},
17892             $tracelevel)
17893             if defined $::RD_TRACE;
17894     $item{q{_alternation_1_of_production_1_of_rule_method_invocation(?)}} = $_tok;
17895     push @item, $_tok;
17896
17897
17898
17899
17900     Parse::RecDescent::_trace(q{>>Matched production: [subject_expression '..' method_name '(']<<},
17901             Parse::RecDescent::_tracefirst($text),
17902             q{method_invocation},
17903             $tracelevel)
17904             if defined $::RD_TRACE;
17905     $_matched = 1;
17906     last;
17907   }
17908
17909
17910         unless ( $_matched || defined($return) || defined($score) )
17911   {
17912
17913
17914     $_[1] = $text;  # NOT SURE THIS IS NEEDED
17915     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
17916            Parse::RecDescent::_tracefirst($_[1]),
17917            q{method_invocation},
17918            $tracelevel)
17919           if defined $::RD_TRACE;
17920     return undef;
17921   }
17922   if (!defined($return) && defined($score))
17923   {
17924     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
17925             q{method_invocation},
17926             $tracelevel)
17927             if defined $::RD_TRACE;
17928     $return = $score_return;
17929   }
17930   splice @{$thisparser->{errors}}, $err_at;
17931   $return = $item[$#item] unless defined $return;
17932   if (defined $::RD_TRACE)
17933   {
17934     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
17935             $return . q{])}, "",
17936             q{method_invocation},
17937             $tracelevel);
17938     Parse::RecDescent::_trace(q{(consumed: [} .
17939             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
17940             Parse::RecDescent::_tracefirst($text),
17941             , q{method_invocation},
17942             $tracelevel)
17943   }
17944   $_[1] = $text;
17945   return $return;
17946 }
17947
17948 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
17949 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation
17950 {
17951   my $thisparser = $_[0];
17952   use vars q{$tracelevel};
17953   local $tracelevel = ($tracelevel||0)+1;
17954   $ERRORS = 0;
17955   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_dereference_operation"};
17956
17957   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_dereference_operation]},
17958           Parse::RecDescent::_tracefirst($_[1]),
17959           q{_alternation_1_of_production_1_of_rule_dereference_operation},
17960           $tracelevel)
17961           if defined $::RD_TRACE;
17962
17963
17964   my $err_at = @{$thisparser->{errors}};
17965
17966   my $score;
17967   my $score_return;
17968   my $_tok;
17969   my $return = undef;
17970   my $_matched=0;
17971   my $commit=0;
17972   my @item = ();
17973   my %item = ();
17974   my $repeating =  defined($_[2]) && $_[2];
17975   my $_noactions = defined($_[3]) && $_[3];
17976    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
17977   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
17978   my $text;
17979   my $lastsep="";
17980   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
17981   $expectation->at($_[1]);
17982
17983   my $thisline;
17984   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
17985
17986
17987
17988   while (!$_matched && !$commit)
17989   {
17990
17991     Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
17992             Parse::RecDescent::_tracefirst($_[1]),
17993             q{_alternation_1_of_production_1_of_rule_dereference_operation},
17994             $tracelevel)
17995             if defined $::RD_TRACE;
17996     my $thisprod = $thisrule->{"prods"}[0];
17997     $text = $_[1];
17998     my $_savetext;
17999     @item = (q{_alternation_1_of_production_1_of_rule_dereference_operation});
18000     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_dereference_operation});
18001     my $repcount = 0;
18002
18003
18004     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
18005             Parse::RecDescent::_tracefirst($text),
18006             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18007             $tracelevel)
18008             if defined $::RD_TRACE;
18009     $lastsep = "";
18010     $expectation->is(q{})->at($text);
18011
18012
18013     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
18014     {
18015
18016       $expectation->failed();
18017       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
18018               Parse::RecDescent::_tracefirst($text))
18019               if defined $::RD_TRACE;
18020       last;
18021     }
18022     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18023             . $& . q{])},
18024               Parse::RecDescent::_tracefirst($text))
18025               if defined $::RD_TRACE;
18026     push @item, $item{__STRING1__}=$&;
18027
18028
18029     Parse::RecDescent::_trace(q{Trying repeated subrule: [expression]},
18030           Parse::RecDescent::_tracefirst($text),
18031           q{_alternation_1_of_production_1_of_rule_dereference_operation},
18032           $tracelevel)
18033           if defined $::RD_TRACE;
18034     $expectation->is(q{expression})->at($text);
18035
18036     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression, 1, 100000000, $_noactions,$expectation,undef)))
18037     {
18038       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [expression]>>},
18039               Parse::RecDescent::_tracefirst($text),
18040               q{_alternation_1_of_production_1_of_rule_dereference_operation},
18041               $tracelevel)
18042               if defined $::RD_TRACE;
18043       last;
18044     }
18045     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [expression]<< (}
18046           . @$_tok . q{ times)},
18047
18048             Parse::RecDescent::_tracefirst($text),
18049             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18050             $tracelevel)
18051             if defined $::RD_TRACE;
18052     $item{q{expression(s)}} = $_tok;
18053     push @item, $_tok;
18054
18055
18056
18057     Parse::RecDescent::_trace(q{Trying terminal: [')']},
18058             Parse::RecDescent::_tracefirst($text),
18059             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18060             $tracelevel)
18061             if defined $::RD_TRACE;
18062     $lastsep = "";
18063     $expectation->is(q{')'})->at($text);
18064
18065
18066     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
18067     {
18068
18069       $expectation->failed();
18070       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
18071               Parse::RecDescent::_tracefirst($text))
18072               if defined $::RD_TRACE;
18073       last;
18074     }
18075     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18076             . $& . q{])},
18077               Parse::RecDescent::_tracefirst($text))
18078               if defined $::RD_TRACE;
18079     push @item, $item{__STRING2__}=$&;
18080
18081
18082
18083     Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
18084             Parse::RecDescent::_tracefirst($text),
18085             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18086             $tracelevel)
18087             if defined $::RD_TRACE;
18088     $_matched = 1;
18089     last;
18090   }
18091
18092
18093         unless ( $_matched || defined($return) || defined($score) )
18094   {
18095
18096
18097     $_[1] = $text;  # NOT SURE THIS IS NEEDED
18098     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18099            Parse::RecDescent::_tracefirst($_[1]),
18100            q{_alternation_1_of_production_1_of_rule_dereference_operation},
18101            $tracelevel)
18102           if defined $::RD_TRACE;
18103     return undef;
18104   }
18105   if (!defined($return) && defined($score))
18106   {
18107     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18108             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18109             $tracelevel)
18110             if defined $::RD_TRACE;
18111     $return = $score_return;
18112   }
18113   splice @{$thisparser->{errors}}, $err_at;
18114   $return = $item[$#item] unless defined $return;
18115   if (defined $::RD_TRACE)
18116   {
18117     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18118             $return . q{])}, "",
18119             q{_alternation_1_of_production_1_of_rule_dereference_operation},
18120             $tracelevel);
18121     Parse::RecDescent::_trace(q{(consumed: [} .
18122             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
18123             Parse::RecDescent::_tracefirst($text),
18124             , q{_alternation_1_of_production_1_of_rule_dereference_operation},
18125             $tracelevel)
18126   }
18127   $_[1] = $text;
18128   return $return;
18129 }
18130
18131 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18132 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause
18133 {
18134   my $thisparser = $_[0];
18135   use vars q{$tracelevel};
18136   local $tracelevel = ($tracelevel||0)+1;
18137   $ERRORS = 0;
18138   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_searched_when_clause"};
18139
18140   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_searched_when_clause]},
18141           Parse::RecDescent::_tracefirst($_[1]),
18142           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18143           $tracelevel)
18144           if defined $::RD_TRACE;
18145
18146
18147   my $err_at = @{$thisparser->{errors}};
18148
18149   my $score;
18150   my $score_return;
18151   my $_tok;
18152   my $return = undef;
18153   my $_matched=0;
18154   my $commit=0;
18155   my @item = ();
18156   my %item = ();
18157   my $repeating =  defined($_[2]) && $_[2];
18158   my $_noactions = defined($_[3]) && $_[3];
18159    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
18160   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
18161   my $text;
18162   my $lastsep="";
18163   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18164   $expectation->at($_[1]);
18165
18166   my $thisline;
18167   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18168
18169
18170
18171   while (!$_matched && !$commit)
18172   {
18173
18174     Parse::RecDescent::_trace(q{Trying production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
18175             Parse::RecDescent::_tracefirst($_[1]),
18176             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18177             $tracelevel)
18178             if defined $::RD_TRACE;
18179     my $thisprod = $thisrule->{"prods"}[0];
18180     $text = $_[1];
18181     my $_savetext;
18182     @item = (q{_alternation_1_of_production_1_of_rule_searched_when_clause});
18183     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_searched_when_clause});
18184     my $repcount = 0;
18185
18186
18187     Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
18188             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18189             $tracelevel)
18190             if defined $::RD_TRACE;
18191     $lastsep = "";
18192     $expectation->is(q{})->at($text);
18193
18194
18195     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WHEN)//i)
18196     {
18197
18198       $expectation->failed();
18199       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18200               Parse::RecDescent::_tracefirst($text))
18201           if defined $::RD_TRACE;
18202
18203       last;
18204     }
18205     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18206             . $& . q{])},
18207               Parse::RecDescent::_tracefirst($text))
18208           if defined $::RD_TRACE;
18209     push @item, $item{__PATTERN1__}=$&;
18210
18211
18212     Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
18213           Parse::RecDescent::_tracefirst($text),
18214           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18215           $tracelevel)
18216           if defined $::RD_TRACE;
18217     if (1) { no strict qw{refs};
18218     $expectation->is(q{search_condition})->at($text);
18219     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18220     {
18221
18222       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
18223               Parse::RecDescent::_tracefirst($text),
18224               q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18225               $tracelevel)
18226               if defined $::RD_TRACE;
18227       $expectation->failed();
18228       last;
18229     }
18230     Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
18231           . $_tok . q{]},
18232
18233             Parse::RecDescent::_tracefirst($text),
18234             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18235             $tracelevel)
18236             if defined $::RD_TRACE;
18237     $item{q{search_condition}} = $_tok;
18238     push @item, $_tok;
18239
18240     }
18241
18242     Parse::RecDescent::_trace(q{Trying terminal: [/THEN/i]}, Parse::RecDescent::_tracefirst($text),
18243             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18244             $tracelevel)
18245             if defined $::RD_TRACE;
18246     $lastsep = "";
18247     $expectation->is(q{/THEN/i})->at($text);
18248
18249
18250     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:THEN)//i)
18251     {
18252
18253       $expectation->failed();
18254       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18255               Parse::RecDescent::_tracefirst($text))
18256           if defined $::RD_TRACE;
18257
18258       last;
18259     }
18260     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18261             . $& . q{])},
18262               Parse::RecDescent::_tracefirst($text))
18263           if defined $::RD_TRACE;
18264     push @item, $item{__PATTERN2__}=$&;
18265
18266
18267     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
18268           Parse::RecDescent::_tracefirst($text),
18269           q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18270           $tracelevel)
18271           if defined $::RD_TRACE;
18272     if (1) { no strict qw{refs};
18273     $expectation->is(q{result_expression, or /NULL/i})->at($text);
18274     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18275     {
18276
18277       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]>>},
18278               Parse::RecDescent::_tracefirst($text),
18279               q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18280               $tracelevel)
18281               if defined $::RD_TRACE;
18282       $expectation->failed();
18283       last;
18284     }
18285     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]<< (return value: [}
18286           . $_tok . q{]},
18287
18288             Parse::RecDescent::_tracefirst($text),
18289             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18290             $tracelevel)
18291             if defined $::RD_TRACE;
18292     $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause}} = $_tok;
18293     push @item, $_tok;
18294
18295     }
18296
18297
18298     Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
18299             Parse::RecDescent::_tracefirst($text),
18300             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18301             $tracelevel)
18302             if defined $::RD_TRACE;
18303     $_matched = 1;
18304     last;
18305   }
18306
18307
18308         unless ( $_matched || defined($return) || defined($score) )
18309   {
18310
18311
18312     $_[1] = $text;  # NOT SURE THIS IS NEEDED
18313     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18314            Parse::RecDescent::_tracefirst($_[1]),
18315            q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18316            $tracelevel)
18317           if defined $::RD_TRACE;
18318     return undef;
18319   }
18320   if (!defined($return) && defined($score))
18321   {
18322     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18323             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18324             $tracelevel)
18325             if defined $::RD_TRACE;
18326     $return = $score_return;
18327   }
18328   splice @{$thisparser->{errors}}, $err_at;
18329   $return = $item[$#item] unless defined $return;
18330   if (defined $::RD_TRACE)
18331   {
18332     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18333             $return . q{])}, "",
18334             q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18335             $tracelevel);
18336     Parse::RecDescent::_trace(q{(consumed: [} .
18337             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
18338             Parse::RecDescent::_tracefirst($text),
18339             , q{_alternation_1_of_production_1_of_rule_searched_when_clause},
18340             $tracelevel)
18341   }
18342   $_[1] = $text;
18343   return $return;
18344 }
18345
18346 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18347 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2
18348 {
18349   my $thisparser = $_[0];
18350   use vars q{$tracelevel};
18351   local $tracelevel = ($tracelevel||0)+1;
18352   $ERRORS = 0;
18353   my $thisrule = $thisparser->{"rules"}{"group_bound2"};
18354
18355   Parse::RecDescent::_trace(q{Trying rule: [group_bound2]},
18356           Parse::RecDescent::_tracefirst($_[1]),
18357           q{group_bound2},
18358           $tracelevel)
18359           if defined $::RD_TRACE;
18360
18361
18362   my $err_at = @{$thisparser->{errors}};
18363
18364   my $score;
18365   my $score_return;
18366   my $_tok;
18367   my $return = undef;
18368   my $_matched=0;
18369   my $commit=0;
18370   my @item = ();
18371   my %item = ();
18372   my $repeating =  defined($_[2]) && $_[2];
18373   my $_noactions = defined($_[3]) && $_[3];
18374    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
18375   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
18376   my $text;
18377   my $lastsep="";
18378   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18379   $expectation->at($_[1]);
18380
18381   my $thisline;
18382   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18383
18384
18385
18386   while (!$_matched && !$commit)
18387   {
18388
18389     Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
18390             Parse::RecDescent::_tracefirst($_[1]),
18391             q{group_bound2},
18392             $tracelevel)
18393             if defined $::RD_TRACE;
18394     my $thisprod = $thisrule->{"prods"}[0];
18395     $text = $_[1];
18396     my $_savetext;
18397     @item = (q{group_bound2});
18398     %item = (__RULE__ => q{group_bound2});
18399     my $repcount = 0;
18400
18401
18402     Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
18403             q{group_bound2},
18404             $tracelevel)
18405             if defined $::RD_TRACE;
18406     $lastsep = "";
18407     $expectation->is(q{})->at($text);
18408
18409
18410     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
18411     {
18412
18413       $expectation->failed();
18414       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18415               Parse::RecDescent::_tracefirst($text))
18416           if defined $::RD_TRACE;
18417
18418       last;
18419     }
18420     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18421             . $& . q{])},
18422               Parse::RecDescent::_tracefirst($text))
18423           if defined $::RD_TRACE;
18424     push @item, $item{__PATTERN1__}=$&;
18425
18426
18427
18428     Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
18429             Parse::RecDescent::_tracefirst($text),
18430             q{group_bound2},
18431             $tracelevel)
18432             if defined $::RD_TRACE;
18433     $_matched = 1;
18434     last;
18435   }
18436
18437
18438   while (!$_matched && !$commit)
18439   {
18440
18441     Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
18442             Parse::RecDescent::_tracefirst($_[1]),
18443             q{group_bound2},
18444             $tracelevel)
18445             if defined $::RD_TRACE;
18446     my $thisprod = $thisrule->{"prods"}[1];
18447     $text = $_[1];
18448     my $_savetext;
18449     @item = (q{group_bound2});
18450     %item = (__RULE__ => q{group_bound2});
18451     my $repcount = 0;
18452
18453
18454     Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
18455           Parse::RecDescent::_tracefirst($text),
18456           q{group_bound2},
18457           $tracelevel)
18458           if defined $::RD_TRACE;
18459     if (1) { no strict qw{refs};
18460     $expectation->is(q{})->at($text);
18461     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18462     {
18463
18464       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
18465               Parse::RecDescent::_tracefirst($text),
18466               q{group_bound2},
18467               $tracelevel)
18468               if defined $::RD_TRACE;
18469       $expectation->failed();
18470       last;
18471     }
18472     Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
18473           . $_tok . q{]},
18474
18475             Parse::RecDescent::_tracefirst($text),
18476             q{group_bound2},
18477             $tracelevel)
18478             if defined $::RD_TRACE;
18479     $item{q{unsigned_constant}} = $_tok;
18480     push @item, $_tok;
18481
18482     }
18483
18484     Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
18485             q{group_bound2},
18486             $tracelevel)
18487             if defined $::RD_TRACE;
18488     $lastsep = "";
18489     $expectation->is(q{/PRECEDING/i})->at($text);
18490
18491
18492     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//i)
18493     {
18494
18495       $expectation->failed();
18496       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18497               Parse::RecDescent::_tracefirst($text))
18498           if defined $::RD_TRACE;
18499
18500       last;
18501     }
18502     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18503             . $& . q{])},
18504               Parse::RecDescent::_tracefirst($text))
18505           if defined $::RD_TRACE;
18506     push @item, $item{__PATTERN1__}=$&;
18507
18508
18509
18510     Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
18511             Parse::RecDescent::_tracefirst($text),
18512             q{group_bound2},
18513             $tracelevel)
18514             if defined $::RD_TRACE;
18515     $_matched = 1;
18516     last;
18517   }
18518
18519
18520   while (!$_matched && !$commit)
18521   {
18522
18523     Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /FOLLOWING/i]},
18524             Parse::RecDescent::_tracefirst($_[1]),
18525             q{group_bound2},
18526             $tracelevel)
18527             if defined $::RD_TRACE;
18528     my $thisprod = $thisrule->{"prods"}[2];
18529     $text = $_[1];
18530     my $_savetext;
18531     @item = (q{group_bound2});
18532     %item = (__RULE__ => q{group_bound2});
18533     my $repcount = 0;
18534
18535
18536     Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
18537           Parse::RecDescent::_tracefirst($text),
18538           q{group_bound2},
18539           $tracelevel)
18540           if defined $::RD_TRACE;
18541     if (1) { no strict qw{refs};
18542     $expectation->is(q{})->at($text);
18543     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18544     {
18545
18546       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
18547               Parse::RecDescent::_tracefirst($text),
18548               q{group_bound2},
18549               $tracelevel)
18550               if defined $::RD_TRACE;
18551       $expectation->failed();
18552       last;
18553     }
18554     Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
18555           . $_tok . q{]},
18556
18557             Parse::RecDescent::_tracefirst($text),
18558             q{group_bound2},
18559             $tracelevel)
18560             if defined $::RD_TRACE;
18561     $item{q{unsigned_constant}} = $_tok;
18562     push @item, $_tok;
18563
18564     }
18565
18566     Parse::RecDescent::_trace(q{Trying terminal: [/FOLLOWING/i]}, Parse::RecDescent::_tracefirst($text),
18567             q{group_bound2},
18568             $tracelevel)
18569             if defined $::RD_TRACE;
18570     $lastsep = "";
18571     $expectation->is(q{/FOLLOWING/i})->at($text);
18572
18573
18574     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOLLOWING)//i)
18575     {
18576
18577       $expectation->failed();
18578       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18579               Parse::RecDescent::_tracefirst($text))
18580           if defined $::RD_TRACE;
18581
18582       last;
18583     }
18584     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18585             . $& . q{])},
18586               Parse::RecDescent::_tracefirst($text))
18587           if defined $::RD_TRACE;
18588     push @item, $item{__PATTERN1__}=$&;
18589
18590
18591
18592     Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /FOLLOWING/i]<<},
18593             Parse::RecDescent::_tracefirst($text),
18594             q{group_bound2},
18595             $tracelevel)
18596             if defined $::RD_TRACE;
18597     $_matched = 1;
18598     last;
18599   }
18600
18601
18602   while (!$_matched && !$commit)
18603   {
18604
18605     Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
18606             Parse::RecDescent::_tracefirst($_[1]),
18607             q{group_bound2},
18608             $tracelevel)
18609             if defined $::RD_TRACE;
18610     my $thisprod = $thisrule->{"prods"}[3];
18611     $text = $_[1];
18612     my $_savetext;
18613     @item = (q{group_bound2});
18614     %item = (__RULE__ => q{group_bound2});
18615     my $repcount = 0;
18616
18617
18618     Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
18619             q{group_bound2},
18620             $tracelevel)
18621             if defined $::RD_TRACE;
18622     $lastsep = "";
18623     $expectation->is(q{})->at($text);
18624
18625
18626     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CURRENT\s+ROW)//i)
18627     {
18628
18629       $expectation->failed();
18630       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18631               Parse::RecDescent::_tracefirst($text))
18632           if defined $::RD_TRACE;
18633
18634       last;
18635     }
18636     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18637             . $& . q{])},
18638               Parse::RecDescent::_tracefirst($text))
18639           if defined $::RD_TRACE;
18640     push @item, $item{__PATTERN1__}=$&;
18641
18642
18643
18644     Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
18645             Parse::RecDescent::_tracefirst($text),
18646             q{group_bound2},
18647             $tracelevel)
18648             if defined $::RD_TRACE;
18649     $_matched = 1;
18650     last;
18651   }
18652
18653
18654         unless ( $_matched || defined($return) || defined($score) )
18655   {
18656
18657
18658     $_[1] = $text;  # NOT SURE THIS IS NEEDED
18659     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18660            Parse::RecDescent::_tracefirst($_[1]),
18661            q{group_bound2},
18662            $tracelevel)
18663           if defined $::RD_TRACE;
18664     return undef;
18665   }
18666   if (!defined($return) && defined($score))
18667   {
18668     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18669             q{group_bound2},
18670             $tracelevel)
18671             if defined $::RD_TRACE;
18672     $return = $score_return;
18673   }
18674   splice @{$thisparser->{errors}}, $err_at;
18675   $return = $item[$#item] unless defined $return;
18676   if (defined $::RD_TRACE)
18677   {
18678     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18679             $return . q{])}, "",
18680             q{group_bound2},
18681             $tracelevel);
18682     Parse::RecDescent::_trace(q{(consumed: [} .
18683             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
18684             Parse::RecDescent::_tracefirst($text),
18685             , q{group_bound2},
18686             $tracelevel)
18687   }
18688   $_[1] = $text;
18689   return $return;
18690 }
18691
18692 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18693 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause
18694 {
18695   my $thisparser = $_[0];
18696   use vars q{$tracelevel};
18697   local $tracelevel = ($tracelevel||0)+1;
18698   $ERRORS = 0;
18699   my $thisrule = $thisparser->{"rules"}{"searched_when_clause"};
18700
18701   Parse::RecDescent::_trace(q{Trying rule: [searched_when_clause]},
18702           Parse::RecDescent::_tracefirst($_[1]),
18703           q{searched_when_clause},
18704           $tracelevel)
18705           if defined $::RD_TRACE;
18706
18707
18708   my $err_at = @{$thisparser->{errors}};
18709
18710   my $score;
18711   my $score_return;
18712   my $_tok;
18713   my $return = undef;
18714   my $_matched=0;
18715   my $commit=0;
18716   my @item = ();
18717   my %item = ();
18718   my $repeating =  defined($_[2]) && $_[2];
18719   my $_noactions = defined($_[3]) && $_[3];
18720    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
18721   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
18722   my $text;
18723   my $lastsep="";
18724   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18725   $expectation->at($_[1]);
18726
18727   my $thisline;
18728   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18729
18730
18731
18732   while (!$_matched && !$commit)
18733   {
18734
18735     Parse::RecDescent::_trace(q{Trying production: [/WHEN/i]},
18736             Parse::RecDescent::_tracefirst($_[1]),
18737             q{searched_when_clause},
18738             $tracelevel)
18739             if defined $::RD_TRACE;
18740     my $thisprod = $thisrule->{"prods"}[0];
18741     $text = $_[1];
18742     my $_savetext;
18743     @item = (q{searched_when_clause});
18744     %item = (__RULE__ => q{searched_when_clause});
18745     my $repcount = 0;
18746
18747
18748     Parse::RecDescent::_trace(q{Trying repeated subrule: [/WHEN/i]},
18749           Parse::RecDescent::_tracefirst($text),
18750           q{searched_when_clause},
18751           $tracelevel)
18752           if defined $::RD_TRACE;
18753     $expectation->is(q{})->at($text);
18754
18755     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_searched_when_clause, 1, 100000000, $_noactions,$expectation,undef)))
18756     {
18757       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/WHEN/i]>>},
18758               Parse::RecDescent::_tracefirst($text),
18759               q{searched_when_clause},
18760               $tracelevel)
18761               if defined $::RD_TRACE;
18762       last;
18763     }
18764     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_searched_when_clause]<< (}
18765           . @$_tok . q{ times)},
18766
18767             Parse::RecDescent::_tracefirst($text),
18768             q{searched_when_clause},
18769             $tracelevel)
18770             if defined $::RD_TRACE;
18771     $item{q{_alternation_1_of_production_1_of_rule_searched_when_clause(s)}} = $_tok;
18772     push @item, $_tok;
18773
18774
18775
18776
18777     Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i]<<},
18778             Parse::RecDescent::_tracefirst($text),
18779             q{searched_when_clause},
18780             $tracelevel)
18781             if defined $::RD_TRACE;
18782     $_matched = 1;
18783     last;
18784   }
18785
18786
18787         unless ( $_matched || defined($return) || defined($score) )
18788   {
18789
18790
18791     $_[1] = $text;  # NOT SURE THIS IS NEEDED
18792     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18793            Parse::RecDescent::_tracefirst($_[1]),
18794            q{searched_when_clause},
18795            $tracelevel)
18796           if defined $::RD_TRACE;
18797     return undef;
18798   }
18799   if (!defined($return) && defined($score))
18800   {
18801     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18802             q{searched_when_clause},
18803             $tracelevel)
18804             if defined $::RD_TRACE;
18805     $return = $score_return;
18806   }
18807   splice @{$thisparser->{errors}}, $err_at;
18808   $return = $item[$#item] unless defined $return;
18809   if (defined $::RD_TRACE)
18810   {
18811     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
18812             $return . q{])}, "",
18813             q{searched_when_clause},
18814             $tracelevel);
18815     Parse::RecDescent::_trace(q{(consumed: [} .
18816             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
18817             Parse::RecDescent::_tracefirst($text),
18818             , q{searched_when_clause},
18819             $tracelevel)
18820   }
18821   $_[1] = $text;
18822   return $return;
18823 }
18824
18825 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
18826 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::basic_p
18827 {
18828   my $thisparser = $_[0];
18829   use vars q{$tracelevel};
18830   local $tracelevel = ($tracelevel||0)+1;
18831   $ERRORS = 0;
18832   my $thisrule = $thisparser->{"rules"}{"basic_p"};
18833
18834   Parse::RecDescent::_trace(q{Trying rule: [basic_p]},
18835           Parse::RecDescent::_tracefirst($_[1]),
18836           q{basic_p},
18837           $tracelevel)
18838           if defined $::RD_TRACE;
18839
18840
18841   my $err_at = @{$thisparser->{errors}};
18842
18843   my $score;
18844   my $score_return;
18845   my $_tok;
18846   my $return = undef;
18847   my $_matched=0;
18848   my $commit=0;
18849   my @item = ();
18850   my %item = ();
18851   my $repeating =  defined($_[2]) && $_[2];
18852   my $_noactions = defined($_[3]) && $_[3];
18853    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
18854   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
18855   my $text;
18856   my $lastsep="";
18857   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
18858   $expectation->at($_[1]);
18859
18860   my $thisline;
18861   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
18862
18863
18864
18865   while (!$_matched && !$commit)
18866   {
18867
18868     Parse::RecDescent::_trace(q{Trying production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]},
18869             Parse::RecDescent::_tracefirst($_[1]),
18870             q{basic_p},
18871             $tracelevel)
18872             if defined $::RD_TRACE;
18873     my $thisprod = $thisrule->{"prods"}[0];
18874     $text = $_[1];
18875     my $_savetext;
18876     @item = (q{basic_p});
18877     %item = (__RULE__ => q{basic_p});
18878     my $repcount = 0;
18879
18880
18881     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
18882           Parse::RecDescent::_tracefirst($text),
18883           q{basic_p},
18884           $tracelevel)
18885           if defined $::RD_TRACE;
18886     if (1) { no strict qw{refs};
18887     $expectation->is(q{})->at($text);
18888     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18889     {
18890
18891       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
18892               Parse::RecDescent::_tracefirst($text),
18893               q{basic_p},
18894               $tracelevel)
18895               if defined $::RD_TRACE;
18896       $expectation->failed();
18897       last;
18898     }
18899     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
18900           . $_tok . q{]},
18901
18902             Parse::RecDescent::_tracefirst($text),
18903             q{basic_p},
18904             $tracelevel)
18905             if defined $::RD_TRACE;
18906     $item{q{expression}} = $_tok;
18907     push @item, $_tok;
18908
18909     }
18910
18911     Parse::RecDescent::_trace(q{Trying terminal: [/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/]}, Parse::RecDescent::_tracefirst($text),
18912             q{basic_p},
18913             $tracelevel)
18914             if defined $::RD_TRACE;
18915     $lastsep = "";
18916     $expectation->is(q{/(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/})->at($text);
18917
18918
18919     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(=|<>|<|>|<=|=>|\^=|\^<|\^>|\!=))//)
18920     {
18921
18922       $expectation->failed();
18923       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
18924               Parse::RecDescent::_tracefirst($text))
18925           if defined $::RD_TRACE;
18926
18927       last;
18928     }
18929     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
18930             . $& . q{])},
18931               Parse::RecDescent::_tracefirst($text))
18932           if defined $::RD_TRACE;
18933     push @item, $item{__PATTERN1__}=$&;
18934
18935
18936     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
18937           Parse::RecDescent::_tracefirst($text),
18938           q{basic_p},
18939           $tracelevel)
18940           if defined $::RD_TRACE;
18941     if (1) { no strict qw{refs};
18942     $expectation->is(q{expression})->at($text);
18943     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
18944     {
18945
18946       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
18947               Parse::RecDescent::_tracefirst($text),
18948               q{basic_p},
18949               $tracelevel)
18950               if defined $::RD_TRACE;
18951       $expectation->failed();
18952       last;
18953     }
18954     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
18955           . $_tok . q{]},
18956
18957             Parse::RecDescent::_tracefirst($text),
18958             q{basic_p},
18959             $tracelevel)
18960             if defined $::RD_TRACE;
18961     $item{q{expression}} = $_tok;
18962     push @item, $_tok;
18963
18964     }
18965
18966
18967     Parse::RecDescent::_trace(q{>>Matched production: [expression /(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)/ expression]<<},
18968             Parse::RecDescent::_tracefirst($text),
18969             q{basic_p},
18970             $tracelevel)
18971             if defined $::RD_TRACE;
18972     $_matched = 1;
18973     last;
18974   }
18975
18976
18977         unless ( $_matched || defined($return) || defined($score) )
18978   {
18979
18980
18981     $_[1] = $text;  # NOT SURE THIS IS NEEDED
18982     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
18983            Parse::RecDescent::_tracefirst($_[1]),
18984            q{basic_p},
18985            $tracelevel)
18986           if defined $::RD_TRACE;
18987     return undef;
18988   }
18989   if (!defined($return) && defined($score))
18990   {
18991     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
18992             q{basic_p},
18993             $tracelevel)
18994             if defined $::RD_TRACE;
18995     $return = $score_return;
18996   }
18997   splice @{$thisparser->{errors}}, $err_at;
18998   $return = $item[$#item] unless defined $return;
18999   if (defined $::RD_TRACE)
19000   {
19001     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19002             $return . q{])}, "",
19003             q{basic_p},
19004             $tracelevel);
19005     Parse::RecDescent::_trace(q{(consumed: [} .
19006             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19007             Parse::RecDescent::_tracefirst($text),
19008             , q{basic_p},
19009             $tracelevel)
19010   }
19011   $_[1] = $text;
19012   return $return;
19013 }
19014
19015 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19016 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::asc_option
19017 {
19018   my $thisparser = $_[0];
19019   use vars q{$tracelevel};
19020   local $tracelevel = ($tracelevel||0)+1;
19021   $ERRORS = 0;
19022   my $thisrule = $thisparser->{"rules"}{"asc_option"};
19023
19024   Parse::RecDescent::_trace(q{Trying rule: [asc_option]},
19025           Parse::RecDescent::_tracefirst($_[1]),
19026           q{asc_option},
19027           $tracelevel)
19028           if defined $::RD_TRACE;
19029
19030
19031   my $err_at = @{$thisparser->{errors}};
19032
19033   my $score;
19034   my $score_return;
19035   my $_tok;
19036   my $return = undef;
19037   my $_matched=0;
19038   my $commit=0;
19039   my @item = ();
19040   my %item = ();
19041   my $repeating =  defined($_[2]) && $_[2];
19042   my $_noactions = defined($_[3]) && $_[3];
19043    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19044   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19045   my $text;
19046   my $lastsep="";
19047   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19048   $expectation->at($_[1]);
19049
19050   my $thisline;
19051   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19052
19053
19054
19055   while (!$_matched && !$commit)
19056   {
19057
19058     Parse::RecDescent::_trace(q{Trying production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
19059             Parse::RecDescent::_tracefirst($_[1]),
19060             q{asc_option},
19061             $tracelevel)
19062             if defined $::RD_TRACE;
19063     my $thisprod = $thisrule->{"prods"}[0];
19064     $text = $_[1];
19065     my $_savetext;
19066     @item = (q{asc_option});
19067     %item = (__RULE__ => q{asc_option});
19068     my $repcount = 0;
19069
19070
19071     Parse::RecDescent::_trace(q{Trying terminal: [/ASC/i]}, Parse::RecDescent::_tracefirst($text),
19072             q{asc_option},
19073             $tracelevel)
19074             if defined $::RD_TRACE;
19075     $lastsep = "";
19076     $expectation->is(q{})->at($text);
19077
19078
19079     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ASC)//i)
19080     {
19081
19082       $expectation->failed();
19083       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19084               Parse::RecDescent::_tracefirst($text))
19085           if defined $::RD_TRACE;
19086
19087       last;
19088     }
19089     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19090             . $& . q{])},
19091               Parse::RecDescent::_tracefirst($text))
19092           if defined $::RD_TRACE;
19093     push @item, $item{__PATTERN1__}=$&;
19094
19095
19096     Parse::RecDescent::_trace(q{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
19097           Parse::RecDescent::_tracefirst($text),
19098           q{asc_option},
19099           $tracelevel)
19100           if defined $::RD_TRACE;
19101     $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})->at($text);
19102
19103     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_asc_option, 0, 1, $_noactions,$expectation,undef)))
19104     {
19105       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]>>},
19106               Parse::RecDescent::_tracefirst($text),
19107               q{asc_option},
19108               $tracelevel)
19109               if defined $::RD_TRACE;
19110       last;
19111     }
19112     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_asc_option]<< (}
19113           . @$_tok . q{ times)},
19114
19115             Parse::RecDescent::_tracefirst($text),
19116             q{asc_option},
19117             $tracelevel)
19118             if defined $::RD_TRACE;
19119     $item{q{_alternation_1_of_production_1_of_rule_asc_option(?)}} = $_tok;
19120     push @item, $_tok;
19121
19122
19123
19124
19125     Parse::RecDescent::_trace(q{>>Matched production: [/ASC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
19126             Parse::RecDescent::_tracefirst($text),
19127             q{asc_option},
19128             $tracelevel)
19129             if defined $::RD_TRACE;
19130     $_matched = 1;
19131     last;
19132   }
19133
19134
19135         unless ( $_matched || defined($return) || defined($score) )
19136   {
19137
19138
19139     $_[1] = $text;  # NOT SURE THIS IS NEEDED
19140     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19141            Parse::RecDescent::_tracefirst($_[1]),
19142            q{asc_option},
19143            $tracelevel)
19144           if defined $::RD_TRACE;
19145     return undef;
19146   }
19147   if (!defined($return) && defined($score))
19148   {
19149     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19150             q{asc_option},
19151             $tracelevel)
19152             if defined $::RD_TRACE;
19153     $return = $score_return;
19154   }
19155   splice @{$thisparser->{errors}}, $err_at;
19156   $return = $item[$#item] unless defined $return;
19157   if (defined $::RD_TRACE)
19158   {
19159     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19160             $return . q{])}, "",
19161             q{asc_option},
19162             $tracelevel);
19163     Parse::RecDescent::_trace(q{(consumed: [} .
19164             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19165             Parse::RecDescent::_tracefirst($text),
19166             , q{asc_option},
19167             $tracelevel)
19168   }
19169   $_[1] = $text;
19170   return $return;
19171 }
19172
19173 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19174 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition
19175 {
19176   my $thisparser = $_[0];
19177   use vars q{$tracelevel};
19178   local $tracelevel = ($tracelevel||0)+1;
19179   $ERRORS = 0;
19180   my $thisrule = $thisparser->{"rules"}{"search_condition"};
19181
19182   Parse::RecDescent::_trace(q{Trying rule: [search_condition]},
19183           Parse::RecDescent::_tracefirst($_[1]),
19184           q{search_condition},
19185           $tracelevel)
19186           if defined $::RD_TRACE;
19187
19188
19189   my $err_at = @{$thisparser->{errors}};
19190
19191   my $score;
19192   my $score_return;
19193   my $_tok;
19194   my $return = undef;
19195   my $_matched=0;
19196   my $commit=0;
19197   my @item = ();
19198   my %item = ();
19199   my $repeating =  defined($_[2]) && $_[2];
19200   my $_noactions = defined($_[3]) && $_[3];
19201    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19202   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19203   my $text;
19204   my $lastsep="";
19205   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19206   $expectation->at($_[1]);
19207
19208   my $thisline;
19209   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19210
19211
19212
19213   while (!$_matched && !$commit)
19214   {
19215
19216     Parse::RecDescent::_trace(q{Trying production: [/[^)]+/]},
19217             Parse::RecDescent::_tracefirst($_[1]),
19218             q{search_condition},
19219             $tracelevel)
19220             if defined $::RD_TRACE;
19221     my $thisprod = $thisrule->{"prods"}[0];
19222     $text = $_[1];
19223     my $_savetext;
19224     @item = (q{search_condition});
19225     %item = (__RULE__ => q{search_condition});
19226     my $repcount = 0;
19227
19228
19229     Parse::RecDescent::_trace(q{Trying terminal: [/[^)]+/]}, Parse::RecDescent::_tracefirst($text),
19230             q{search_condition},
19231             $tracelevel)
19232             if defined $::RD_TRACE;
19233     $lastsep = "";
19234     $expectation->is(q{})->at($text);
19235
19236
19237     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[^)]+)//)
19238     {
19239
19240       $expectation->failed();
19241       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19242               Parse::RecDescent::_tracefirst($text))
19243           if defined $::RD_TRACE;
19244
19245       last;
19246     }
19247     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19248             . $& . q{])},
19249               Parse::RecDescent::_tracefirst($text))
19250           if defined $::RD_TRACE;
19251     push @item, $item{__PATTERN1__}=$&;
19252
19253
19254
19255     Parse::RecDescent::_trace(q{>>Matched production: [/[^)]+/]<<},
19256             Parse::RecDescent::_tracefirst($text),
19257             q{search_condition},
19258             $tracelevel)
19259             if defined $::RD_TRACE;
19260     $_matched = 1;
19261     last;
19262   }
19263
19264
19265   while (!$_matched && !$commit)
19266   {
19267
19268     Parse::RecDescent::_trace(q{Trying production: [/NOT|/i predicate, or '(' cond]},
19269             Parse::RecDescent::_tracefirst($_[1]),
19270             q{search_condition},
19271             $tracelevel)
19272             if defined $::RD_TRACE;
19273     my $thisprod = $thisrule->{"prods"}[1];
19274     $text = $_[1];
19275     my $_savetext;
19276     @item = (q{search_condition});
19277     %item = (__RULE__ => q{search_condition});
19278     my $repcount = 0;
19279
19280
19281     Parse::RecDescent::_trace(q{Trying terminal: [/NOT|/i]}, Parse::RecDescent::_tracefirst($text),
19282             q{search_condition},
19283             $tracelevel)
19284             if defined $::RD_TRACE;
19285     $lastsep = "";
19286     $expectation->is(q{})->at($text);
19287
19288
19289     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NOT|)//i)
19290     {
19291
19292       $expectation->failed();
19293       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19294               Parse::RecDescent::_tracefirst($text))
19295           if defined $::RD_TRACE;
19296
19297       last;
19298     }
19299     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19300             . $& . q{])},
19301               Parse::RecDescent::_tracefirst($text))
19302           if defined $::RD_TRACE;
19303     push @item, $item{__PATTERN1__}=$&;
19304
19305
19306     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_2_of_rule_search_condition]},
19307           Parse::RecDescent::_tracefirst($text),
19308           q{search_condition},
19309           $tracelevel)
19310           if defined $::RD_TRACE;
19311     if (1) { no strict qw{refs};
19312     $expectation->is(q{predicate, or '('})->at($text);
19313     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_2_of_rule_search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
19314     {
19315
19316       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_2_of_rule_search_condition]>>},
19317               Parse::RecDescent::_tracefirst($text),
19318               q{search_condition},
19319               $tracelevel)
19320               if defined $::RD_TRACE;
19321       $expectation->failed();
19322       last;
19323     }
19324     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_2_of_rule_search_condition]<< (return value: [}
19325           . $_tok . q{]},
19326
19327             Parse::RecDescent::_tracefirst($text),
19328             q{search_condition},
19329             $tracelevel)
19330             if defined $::RD_TRACE;
19331     $item{q{_alternation_1_of_production_2_of_rule_search_condition}} = $_tok;
19332     push @item, $_tok;
19333
19334     }
19335
19336     Parse::RecDescent::_trace(q{Trying repeated subrule: [cond]},
19337           Parse::RecDescent::_tracefirst($text),
19338           q{search_condition},
19339           $tracelevel)
19340           if defined $::RD_TRACE;
19341     $expectation->is(q{cond})->at($text);
19342
19343     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond, 0, 100000000, $_noactions,$expectation,undef)))
19344     {
19345       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [cond]>>},
19346               Parse::RecDescent::_tracefirst($text),
19347               q{search_condition},
19348               $tracelevel)
19349               if defined $::RD_TRACE;
19350       last;
19351     }
19352     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [cond]<< (}
19353           . @$_tok . q{ times)},
19354
19355             Parse::RecDescent::_tracefirst($text),
19356             q{search_condition},
19357             $tracelevel)
19358             if defined $::RD_TRACE;
19359     $item{q{cond(s?)}} = $_tok;
19360     push @item, $_tok;
19361
19362
19363
19364
19365     Parse::RecDescent::_trace(q{>>Matched production: [/NOT|/i predicate, or '(' cond]<<},
19366             Parse::RecDescent::_tracefirst($text),
19367             q{search_condition},
19368             $tracelevel)
19369             if defined $::RD_TRACE;
19370     $_matched = 1;
19371     last;
19372   }
19373
19374
19375         unless ( $_matched || defined($return) || defined($score) )
19376   {
19377
19378
19379     $_[1] = $text;  # NOT SURE THIS IS NEEDED
19380     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19381            Parse::RecDescent::_tracefirst($_[1]),
19382            q{search_condition},
19383            $tracelevel)
19384           if defined $::RD_TRACE;
19385     return undef;
19386   }
19387   if (!defined($return) && defined($score))
19388   {
19389     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19390             q{search_condition},
19391             $tracelevel)
19392             if defined $::RD_TRACE;
19393     $return = $score_return;
19394   }
19395   splice @{$thisparser->{errors}}, $err_at;
19396   $return = $item[$#item] unless defined $return;
19397   if (defined $::RD_TRACE)
19398   {
19399     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19400             $return . q{])}, "",
19401             q{search_condition},
19402             $tracelevel);
19403     Parse::RecDescent::_trace(q{(consumed: [} .
19404             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19405             Parse::RecDescent::_tracefirst($text),
19406             , q{search_condition},
19407             $tracelevel)
19408   }
19409   $_[1] = $text;
19410   return $return;
19411 }
19412
19413 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19414 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_operator
19415 {
19416   my $thisparser = $_[0];
19417   use vars q{$tracelevel};
19418   local $tracelevel = ($tracelevel||0)+1;
19419   $ERRORS = 0;
19420   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_operator"};
19421
19422   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_operator]},
19423           Parse::RecDescent::_tracefirst($_[1]),
19424           q{_alternation_1_of_production_1_of_rule_operator},
19425           $tracelevel)
19426           if defined $::RD_TRACE;
19427
19428
19429   my $err_at = @{$thisparser->{errors}};
19430
19431   my $score;
19432   my $score_return;
19433   my $_tok;
19434   my $return = undef;
19435   my $_matched=0;
19436   my $commit=0;
19437   my @item = ();
19438   my %item = ();
19439   my $repeating =  defined($_[2]) && $_[2];
19440   my $_noactions = defined($_[3]) && $_[3];
19441    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19442   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19443   my $text;
19444   my $lastsep="";
19445   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19446   $expectation->at($_[1]);
19447
19448   my $thisline;
19449   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19450
19451
19452
19453   while (!$_matched && !$commit)
19454   {
19455
19456     Parse::RecDescent::_trace(q{Trying production: [/CONCAT/i]},
19457             Parse::RecDescent::_tracefirst($_[1]),
19458             q{_alternation_1_of_production_1_of_rule_operator},
19459             $tracelevel)
19460             if defined $::RD_TRACE;
19461     my $thisprod = $thisrule->{"prods"}[0];
19462     $text = $_[1];
19463     my $_savetext;
19464     @item = (q{_alternation_1_of_production_1_of_rule_operator});
19465     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
19466     my $repcount = 0;
19467
19468
19469     Parse::RecDescent::_trace(q{Trying terminal: [/CONCAT/i]}, Parse::RecDescent::_tracefirst($text),
19470             q{_alternation_1_of_production_1_of_rule_operator},
19471             $tracelevel)
19472             if defined $::RD_TRACE;
19473     $lastsep = "";
19474     $expectation->is(q{})->at($text);
19475
19476
19477     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CONCAT)//i)
19478     {
19479
19480       $expectation->failed();
19481       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19482               Parse::RecDescent::_tracefirst($text))
19483           if defined $::RD_TRACE;
19484
19485       last;
19486     }
19487     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19488             . $& . q{])},
19489               Parse::RecDescent::_tracefirst($text))
19490           if defined $::RD_TRACE;
19491     push @item, $item{__PATTERN1__}=$&;
19492
19493
19494
19495     Parse::RecDescent::_trace(q{>>Matched production: [/CONCAT/i]<<},
19496             Parse::RecDescent::_tracefirst($text),
19497             q{_alternation_1_of_production_1_of_rule_operator},
19498             $tracelevel)
19499             if defined $::RD_TRACE;
19500     $_matched = 1;
19501     last;
19502   }
19503
19504
19505   while (!$_matched && !$commit)
19506   {
19507
19508     Parse::RecDescent::_trace(q{Trying production: ['||']},
19509             Parse::RecDescent::_tracefirst($_[1]),
19510             q{_alternation_1_of_production_1_of_rule_operator},
19511             $tracelevel)
19512             if defined $::RD_TRACE;
19513     my $thisprod = $thisrule->{"prods"}[1];
19514     $text = $_[1];
19515     my $_savetext;
19516     @item = (q{_alternation_1_of_production_1_of_rule_operator});
19517     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_operator});
19518     my $repcount = 0;
19519
19520
19521     Parse::RecDescent::_trace(q{Trying terminal: ['||']},
19522             Parse::RecDescent::_tracefirst($text),
19523             q{_alternation_1_of_production_1_of_rule_operator},
19524             $tracelevel)
19525             if defined $::RD_TRACE;
19526     $lastsep = "";
19527     $expectation->is(q{})->at($text);
19528
19529
19530     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\|\|//)
19531     {
19532
19533       $expectation->failed();
19534       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
19535               Parse::RecDescent::_tracefirst($text))
19536               if defined $::RD_TRACE;
19537       last;
19538     }
19539     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19540             . $& . q{])},
19541               Parse::RecDescent::_tracefirst($text))
19542               if defined $::RD_TRACE;
19543     push @item, $item{__STRING1__}=$&;
19544
19545
19546
19547     Parse::RecDescent::_trace(q{>>Matched production: ['||']<<},
19548             Parse::RecDescent::_tracefirst($text),
19549             q{_alternation_1_of_production_1_of_rule_operator},
19550             $tracelevel)
19551             if defined $::RD_TRACE;
19552     $_matched = 1;
19553     last;
19554   }
19555
19556
19557         unless ( $_matched || defined($return) || defined($score) )
19558   {
19559
19560
19561     $_[1] = $text;  # NOT SURE THIS IS NEEDED
19562     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19563            Parse::RecDescent::_tracefirst($_[1]),
19564            q{_alternation_1_of_production_1_of_rule_operator},
19565            $tracelevel)
19566           if defined $::RD_TRACE;
19567     return undef;
19568   }
19569   if (!defined($return) && defined($score))
19570   {
19571     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19572             q{_alternation_1_of_production_1_of_rule_operator},
19573             $tracelevel)
19574             if defined $::RD_TRACE;
19575     $return = $score_return;
19576   }
19577   splice @{$thisparser->{errors}}, $err_at;
19578   $return = $item[$#item] unless defined $return;
19579   if (defined $::RD_TRACE)
19580   {
19581     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19582             $return . q{])}, "",
19583             q{_alternation_1_of_production_1_of_rule_operator},
19584             $tracelevel);
19585     Parse::RecDescent::_trace(q{(consumed: [} .
19586             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19587             Parse::RecDescent::_tracefirst($text),
19588             , q{_alternation_1_of_production_1_of_rule_operator},
19589             $tracelevel)
19590   }
19591   $_[1] = $text;
19592   return $return;
19593 }
19594
19595 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19596 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause
19597 {
19598   my $thisparser = $_[0];
19599   use vars q{$tracelevel};
19600   local $tracelevel = ($tracelevel||0)+1;
19601   $ERRORS = 0;
19602   my $thisrule = $thisparser->{"rules"}{"simple_when_clause"};
19603
19604   Parse::RecDescent::_trace(q{Trying rule: [simple_when_clause]},
19605           Parse::RecDescent::_tracefirst($_[1]),
19606           q{simple_when_clause},
19607           $tracelevel)
19608           if defined $::RD_TRACE;
19609
19610
19611   my $err_at = @{$thisparser->{errors}};
19612
19613   my $score;
19614   my $score_return;
19615   my $_tok;
19616   my $return = undef;
19617   my $_matched=0;
19618   my $commit=0;
19619   my @item = ();
19620   my %item = ();
19621   my $repeating =  defined($_[2]) && $_[2];
19622   my $_noactions = defined($_[3]) && $_[3];
19623    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19624   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19625   my $text;
19626   my $lastsep="";
19627   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19628   $expectation->at($_[1]);
19629
19630   my $thisline;
19631   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19632
19633
19634
19635   while (!$_matched && !$commit)
19636   {
19637
19638     Parse::RecDescent::_trace(q{Trying production: [expression /WHEN/i]},
19639             Parse::RecDescent::_tracefirst($_[1]),
19640             q{simple_when_clause},
19641             $tracelevel)
19642             if defined $::RD_TRACE;
19643     my $thisprod = $thisrule->{"prods"}[0];
19644     $text = $_[1];
19645     my $_savetext;
19646     @item = (q{simple_when_clause});
19647     %item = (__RULE__ => q{simple_when_clause});
19648     my $repcount = 0;
19649
19650
19651     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
19652           Parse::RecDescent::_tracefirst($text),
19653           q{simple_when_clause},
19654           $tracelevel)
19655           if defined $::RD_TRACE;
19656     if (1) { no strict qw{refs};
19657     $expectation->is(q{})->at($text);
19658     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
19659     {
19660
19661       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
19662               Parse::RecDescent::_tracefirst($text),
19663               q{simple_when_clause},
19664               $tracelevel)
19665               if defined $::RD_TRACE;
19666       $expectation->failed();
19667       last;
19668     }
19669     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
19670           . $_tok . q{]},
19671
19672             Parse::RecDescent::_tracefirst($text),
19673             q{simple_when_clause},
19674             $tracelevel)
19675             if defined $::RD_TRACE;
19676     $item{q{expression}} = $_tok;
19677     push @item, $_tok;
19678
19679     }
19680
19681     Parse::RecDescent::_trace(q{Trying repeated subrule: [/WHEN/i]},
19682           Parse::RecDescent::_tracefirst($text),
19683           q{simple_when_clause},
19684           $tracelevel)
19685           if defined $::RD_TRACE;
19686     $expectation->is(q{/WHEN/i})->at($text);
19687
19688     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause, 1, 100000000, $_noactions,$expectation,undef)))
19689     {
19690       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/WHEN/i]>>},
19691               Parse::RecDescent::_tracefirst($text),
19692               q{simple_when_clause},
19693               $tracelevel)
19694               if defined $::RD_TRACE;
19695       last;
19696     }
19697     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_simple_when_clause]<< (}
19698           . @$_tok . q{ times)},
19699
19700             Parse::RecDescent::_tracefirst($text),
19701             q{simple_when_clause},
19702             $tracelevel)
19703             if defined $::RD_TRACE;
19704     $item{q{_alternation_1_of_production_1_of_rule_simple_when_clause(s)}} = $_tok;
19705     push @item, $_tok;
19706
19707
19708
19709
19710     Parse::RecDescent::_trace(q{>>Matched production: [expression /WHEN/i]<<},
19711             Parse::RecDescent::_tracefirst($text),
19712             q{simple_when_clause},
19713             $tracelevel)
19714             if defined $::RD_TRACE;
19715     $_matched = 1;
19716     last;
19717   }
19718
19719
19720         unless ( $_matched || defined($return) || defined($score) )
19721   {
19722
19723
19724     $_[1] = $text;  # NOT SURE THIS IS NEEDED
19725     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19726            Parse::RecDescent::_tracefirst($_[1]),
19727            q{simple_when_clause},
19728            $tracelevel)
19729           if defined $::RD_TRACE;
19730     return undef;
19731   }
19732   if (!defined($return) && defined($score))
19733   {
19734     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19735             q{simple_when_clause},
19736             $tracelevel)
19737             if defined $::RD_TRACE;
19738     $return = $score_return;
19739   }
19740   splice @{$thisparser->{errors}}, $err_at;
19741   $return = $item[$#item] unless defined $return;
19742   if (defined $::RD_TRACE)
19743   {
19744     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19745             $return . q{])}, "",
19746             q{simple_when_clause},
19747             $tracelevel);
19748     Parse::RecDescent::_trace(q{(consumed: [} .
19749             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19750             Parse::RecDescent::_tracefirst($text),
19751             , q{simple_when_clause},
19752             $tracelevel)
19753   }
19754   $_[1] = $text;
19755   return $return;
19756 }
19757
19758 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19759 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::INNER
19760 {
19761   my $thisparser = $_[0];
19762   use vars q{$tracelevel};
19763   local $tracelevel = ($tracelevel||0)+1;
19764   $ERRORS = 0;
19765   my $thisrule = $thisparser->{"rules"}{"INNER"};
19766
19767   Parse::RecDescent::_trace(q{Trying rule: [INNER]},
19768           Parse::RecDescent::_tracefirst($_[1]),
19769           q{INNER},
19770           $tracelevel)
19771           if defined $::RD_TRACE;
19772
19773
19774   my $err_at = @{$thisparser->{errors}};
19775
19776   my $score;
19777   my $score_return;
19778   my $_tok;
19779   my $return = undef;
19780   my $_matched=0;
19781   my $commit=0;
19782   my @item = ();
19783   my %item = ();
19784   my $repeating =  defined($_[2]) && $_[2];
19785   my $_noactions = defined($_[3]) && $_[3];
19786    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19787   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19788   my $text;
19789   my $lastsep="";
19790   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19791   $expectation->at($_[1]);
19792
19793   my $thisline;
19794   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19795
19796
19797
19798   while (!$_matched && !$commit)
19799   {
19800
19801     Parse::RecDescent::_trace(q{Trying production: [/inner/i]},
19802             Parse::RecDescent::_tracefirst($_[1]),
19803             q{INNER},
19804             $tracelevel)
19805             if defined $::RD_TRACE;
19806     my $thisprod = $thisrule->{"prods"}[0];
19807     $text = $_[1];
19808     my $_savetext;
19809     @item = (q{INNER});
19810     %item = (__RULE__ => q{INNER});
19811     my $repcount = 0;
19812
19813
19814     Parse::RecDescent::_trace(q{Trying terminal: [/inner/i]}, Parse::RecDescent::_tracefirst($text),
19815             q{INNER},
19816             $tracelevel)
19817             if defined $::RD_TRACE;
19818     $lastsep = "";
19819     $expectation->is(q{})->at($text);
19820
19821
19822     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:inner)//i)
19823     {
19824
19825       $expectation->failed();
19826       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19827               Parse::RecDescent::_tracefirst($text))
19828           if defined $::RD_TRACE;
19829
19830       last;
19831     }
19832     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19833             . $& . q{])},
19834               Parse::RecDescent::_tracefirst($text))
19835           if defined $::RD_TRACE;
19836     push @item, $item{__PATTERN1__}=$&;
19837
19838
19839
19840     Parse::RecDescent::_trace(q{>>Matched production: [/inner/i]<<},
19841             Parse::RecDescent::_tracefirst($text),
19842             q{INNER},
19843             $tracelevel)
19844             if defined $::RD_TRACE;
19845     $_matched = 1;
19846     last;
19847   }
19848
19849
19850         unless ( $_matched || defined($return) || defined($score) )
19851   {
19852
19853
19854     $_[1] = $text;  # NOT SURE THIS IS NEEDED
19855     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19856            Parse::RecDescent::_tracefirst($_[1]),
19857            q{INNER},
19858            $tracelevel)
19859           if defined $::RD_TRACE;
19860     return undef;
19861   }
19862   if (!defined($return) && defined($score))
19863   {
19864     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19865             q{INNER},
19866             $tracelevel)
19867             if defined $::RD_TRACE;
19868     $return = $score_return;
19869   }
19870   splice @{$thisparser->{errors}}, $err_at;
19871   $return = $item[$#item] unless defined $return;
19872   if (defined $::RD_TRACE)
19873   {
19874     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
19875             $return . q{])}, "",
19876             q{INNER},
19877             $tracelevel);
19878     Parse::RecDescent::_trace(q{(consumed: [} .
19879             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
19880             Parse::RecDescent::_tracefirst($text),
19881             , q{INNER},
19882             $tracelevel)
19883   }
19884   $_[1] = $text;
19885   return $return;
19886 }
19887
19888 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
19889 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::eofile
19890 {
19891   my $thisparser = $_[0];
19892   use vars q{$tracelevel};
19893   local $tracelevel = ($tracelevel||0)+1;
19894   $ERRORS = 0;
19895   my $thisrule = $thisparser->{"rules"}{"eofile"};
19896
19897   Parse::RecDescent::_trace(q{Trying rule: [eofile]},
19898           Parse::RecDescent::_tracefirst($_[1]),
19899           q{eofile},
19900           $tracelevel)
19901           if defined $::RD_TRACE;
19902
19903
19904   my $err_at = @{$thisparser->{errors}};
19905
19906   my $score;
19907   my $score_return;
19908   my $_tok;
19909   my $return = undef;
19910   my $_matched=0;
19911   my $commit=0;
19912   my @item = ();
19913   my %item = ();
19914   my $repeating =  defined($_[2]) && $_[2];
19915   my $_noactions = defined($_[3]) && $_[3];
19916    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
19917   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
19918   my $text;
19919   my $lastsep="";
19920   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
19921   $expectation->at($_[1]);
19922
19923   my $thisline;
19924   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
19925
19926
19927
19928   while (!$_matched && !$commit)
19929   {
19930
19931     Parse::RecDescent::_trace(q{Trying production: [/^\\Z/]},
19932             Parse::RecDescent::_tracefirst($_[1]),
19933             q{eofile},
19934             $tracelevel)
19935             if defined $::RD_TRACE;
19936     my $thisprod = $thisrule->{"prods"}[0];
19937     $text = $_[1];
19938     my $_savetext;
19939     @item = (q{eofile});
19940     %item = (__RULE__ => q{eofile});
19941     my $repcount = 0;
19942
19943
19944     Parse::RecDescent::_trace(q{Trying terminal: [/^\\Z/]}, Parse::RecDescent::_tracefirst($text),
19945             q{eofile},
19946             $tracelevel)
19947             if defined $::RD_TRACE;
19948     $lastsep = "";
19949     $expectation->is(q{})->at($text);
19950
19951
19952     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:^\Z)//)
19953     {
19954
19955       $expectation->failed();
19956       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
19957               Parse::RecDescent::_tracefirst($text))
19958           if defined $::RD_TRACE;
19959
19960       last;
19961     }
19962     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
19963             . $& . q{])},
19964               Parse::RecDescent::_tracefirst($text))
19965           if defined $::RD_TRACE;
19966     push @item, $item{__PATTERN1__}=$&;
19967
19968
19969
19970     Parse::RecDescent::_trace(q{>>Matched production: [/^\\Z/]<<},
19971             Parse::RecDescent::_tracefirst($text),
19972             q{eofile},
19973             $tracelevel)
19974             if defined $::RD_TRACE;
19975     $_matched = 1;
19976     last;
19977   }
19978
19979
19980         unless ( $_matched || defined($return) || defined($score) )
19981   {
19982
19983
19984     $_[1] = $text;  # NOT SURE THIS IS NEEDED
19985     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
19986            Parse::RecDescent::_tracefirst($_[1]),
19987            q{eofile},
19988            $tracelevel)
19989           if defined $::RD_TRACE;
19990     return undef;
19991   }
19992   if (!defined($return) && defined($score))
19993   {
19994     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
19995             q{eofile},
19996             $tracelevel)
19997             if defined $::RD_TRACE;
19998     $return = $score_return;
19999   }
20000   splice @{$thisparser->{errors}}, $err_at;
20001   $return = $item[$#item] unless defined $return;
20002   if (defined $::RD_TRACE)
20003   {
20004     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20005             $return . q{])}, "",
20006             q{eofile},
20007             $tracelevel);
20008     Parse::RecDescent::_trace(q{(consumed: [} .
20009             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20010             Parse::RecDescent::_tracefirst($text),
20011             , q{eofile},
20012             $tracelevel)
20013   }
20014   $_[1] = $text;
20015   return $return;
20016 }
20017
20018 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20019 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cond
20020 {
20021   my $thisparser = $_[0];
20022   use vars q{$tracelevel};
20023   local $tracelevel = ($tracelevel||0)+1;
20024   $ERRORS = 0;
20025   my $thisrule = $thisparser->{"rules"}{"cond"};
20026
20027   Parse::RecDescent::_trace(q{Trying rule: [cond]},
20028           Parse::RecDescent::_tracefirst($_[1]),
20029           q{cond},
20030           $tracelevel)
20031           if defined $::RD_TRACE;
20032
20033
20034   my $err_at = @{$thisparser->{errors}};
20035
20036   my $score;
20037   my $score_return;
20038   my $_tok;
20039   my $return = undef;
20040   my $_matched=0;
20041   my $commit=0;
20042   my @item = ();
20043   my %item = ();
20044   my $repeating =  defined($_[2]) && $_[2];
20045   my $_noactions = defined($_[3]) && $_[3];
20046    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20047   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20048   my $text;
20049   my $lastsep="";
20050   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20051   $expectation->at($_[1]);
20052
20053   my $thisline;
20054   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20055
20056
20057
20058   while (!$_matched && !$commit)
20059   {
20060
20061     Parse::RecDescent::_trace(q{Trying production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']},
20062             Parse::RecDescent::_tracefirst($_[1]),
20063             q{cond},
20064             $tracelevel)
20065             if defined $::RD_TRACE;
20066     my $thisprod = $thisrule->{"prods"}[0];
20067     $text = $_[1];
20068     my $_savetext;
20069     @item = (q{cond});
20070     %item = (__RULE__ => q{cond});
20071     my $repcount = 0;
20072
20073
20074     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_cond]},
20075           Parse::RecDescent::_tracefirst($text),
20076           q{cond},
20077           $tracelevel)
20078           if defined $::RD_TRACE;
20079     if (1) { no strict qw{refs};
20080     $expectation->is(q{})->at($text);
20081     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cond($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20082     {
20083
20084       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_cond]>>},
20085               Parse::RecDescent::_tracefirst($text),
20086               q{cond},
20087               $tracelevel)
20088               if defined $::RD_TRACE;
20089       $expectation->failed();
20090       last;
20091     }
20092     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_cond]<< (return value: [}
20093           . $_tok . q{]},
20094
20095             Parse::RecDescent::_tracefirst($text),
20096             q{cond},
20097             $tracelevel)
20098             if defined $::RD_TRACE;
20099     $item{q{_alternation_1_of_production_1_of_rule_cond}} = $_tok;
20100     push @item, $_tok;
20101
20102     }
20103
20104     Parse::RecDescent::_trace(q{Trying terminal: [/NOT|/i]}, Parse::RecDescent::_tracefirst($text),
20105             q{cond},
20106             $tracelevel)
20107             if defined $::RD_TRACE;
20108     $lastsep = "";
20109     $expectation->is(q{/NOT|/i})->at($text);
20110
20111
20112     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NOT|)//i)
20113     {
20114
20115       $expectation->failed();
20116       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
20117               Parse::RecDescent::_tracefirst($text))
20118           if defined $::RD_TRACE;
20119
20120       last;
20121     }
20122     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20123             . $& . q{])},
20124               Parse::RecDescent::_tracefirst($text))
20125           if defined $::RD_TRACE;
20126     push @item, $item{__PATTERN1__}=$&;
20127
20128
20129     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule_cond]},
20130           Parse::RecDescent::_tracefirst($text),
20131           q{cond},
20132           $tracelevel)
20133           if defined $::RD_TRACE;
20134     if (1) { no strict qw{refs};
20135     $expectation->is(q{predicate, or '('})->at($text);
20136     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_cond($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20137     {
20138
20139       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule_cond]>>},
20140               Parse::RecDescent::_tracefirst($text),
20141               q{cond},
20142               $tracelevel)
20143               if defined $::RD_TRACE;
20144       $expectation->failed();
20145       last;
20146     }
20147     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_cond]<< (return value: [}
20148           . $_tok . q{]},
20149
20150             Parse::RecDescent::_tracefirst($text),
20151             q{cond},
20152             $tracelevel)
20153             if defined $::RD_TRACE;
20154     $item{q{_alternation_2_of_production_1_of_rule_cond}} = $_tok;
20155     push @item, $_tok;
20156
20157     }
20158
20159
20160     Parse::RecDescent::_trace(q{>>Matched production: [/AND/i, or /OR/i /NOT|/i predicate, or '(']<<},
20161             Parse::RecDescent::_tracefirst($text),
20162             q{cond},
20163             $tracelevel)
20164             if defined $::RD_TRACE;
20165     $_matched = 1;
20166     last;
20167   }
20168
20169
20170         unless ( $_matched || defined($return) || defined($score) )
20171   {
20172
20173
20174     $_[1] = $text;  # NOT SURE THIS IS NEEDED
20175     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
20176            Parse::RecDescent::_tracefirst($_[1]),
20177            q{cond},
20178            $tracelevel)
20179           if defined $::RD_TRACE;
20180     return undef;
20181   }
20182   if (!defined($return) && defined($score))
20183   {
20184     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20185             q{cond},
20186             $tracelevel)
20187             if defined $::RD_TRACE;
20188     $return = $score_return;
20189   }
20190   splice @{$thisparser->{errors}}, $err_at;
20191   $return = $item[$#item] unless defined $return;
20192   if (defined $::RD_TRACE)
20193   {
20194     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20195             $return . q{])}, "",
20196             q{cond},
20197             $tracelevel);
20198     Parse::RecDescent::_trace(q{(consumed: [} .
20199             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20200             Parse::RecDescent::_tracefirst($text),
20201             , q{cond},
20202             $tracelevel)
20203   }
20204   $_[1] = $text;
20205   return $return;
20206 }
20207
20208 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20209 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ld_type
20210 {
20211   my $thisparser = $_[0];
20212   use vars q{$tracelevel};
20213   local $tracelevel = ($tracelevel||0)+1;
20214   $ERRORS = 0;
20215   my $thisrule = $thisparser->{"rules"}{"ld_type"};
20216
20217   Parse::RecDescent::_trace(q{Trying rule: [ld_type]},
20218           Parse::RecDescent::_tracefirst($_[1]),
20219           q{ld_type},
20220           $tracelevel)
20221           if defined $::RD_TRACE;
20222
20223
20224   my $err_at = @{$thisparser->{errors}};
20225
20226   my $score;
20227   my $score_return;
20228   my $_tok;
20229   my $return = undef;
20230   my $_matched=0;
20231   my $commit=0;
20232   my @item = ();
20233   my %item = ();
20234   my $repeating =  defined($_[2]) && $_[2];
20235   my $_noactions = defined($_[3]) && $_[3];
20236    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20237   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20238   my $text;
20239   my $lastsep="";
20240   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20241   $expectation->at($_[1]);
20242
20243   my $thisline;
20244   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20245
20246
20247
20248   while (!$_matched && !$commit)
20249   {
20250
20251     Parse::RecDescent::_trace(q{Trying production: [function]},
20252             Parse::RecDescent::_tracefirst($_[1]),
20253             q{ld_type},
20254             $tracelevel)
20255             if defined $::RD_TRACE;
20256     my $thisprod = $thisrule->{"prods"}[0];
20257     $text = $_[1];
20258     my $_savetext;
20259     @item = (q{ld_type});
20260     %item = (__RULE__ => q{ld_type});
20261     my $repcount = 0;
20262
20263
20264     Parse::RecDescent::_trace(q{Trying subrule: [function]},
20265           Parse::RecDescent::_tracefirst($text),
20266           q{ld_type},
20267           $tracelevel)
20268           if defined $::RD_TRACE;
20269     if (1) { no strict qw{refs};
20270     $expectation->is(q{})->at($text);
20271     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20272     {
20273
20274       Parse::RecDescent::_trace(q{<<Didn't match subrule: [function]>>},
20275               Parse::RecDescent::_tracefirst($text),
20276               q{ld_type},
20277               $tracelevel)
20278               if defined $::RD_TRACE;
20279       $expectation->failed();
20280       last;
20281     }
20282     Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
20283           . $_tok . q{]},
20284
20285             Parse::RecDescent::_tracefirst($text),
20286             q{ld_type},
20287             $tracelevel)
20288             if defined $::RD_TRACE;
20289     $item{q{function}} = $_tok;
20290     push @item, $_tok;
20291
20292     }
20293
20294
20295     Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
20296             Parse::RecDescent::_tracefirst($text),
20297             q{ld_type},
20298             $tracelevel)
20299             if defined $::RD_TRACE;
20300     $_matched = 1;
20301     last;
20302   }
20303
20304
20305   while (!$_matched && !$commit)
20306   {
20307
20308     Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
20309             Parse::RecDescent::_tracefirst($_[1]),
20310             q{ld_type},
20311             $tracelevel)
20312             if defined $::RD_TRACE;
20313     my $thisprod = $thisrule->{"prods"}[1];
20314     $text = $_[1];
20315     my $_savetext;
20316     @item = (q{ld_type});
20317     %item = (__RULE__ => q{ld_type});
20318     my $repcount = 0;
20319
20320
20321     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
20322             Parse::RecDescent::_tracefirst($text),
20323             q{ld_type},
20324             $tracelevel)
20325             if defined $::RD_TRACE;
20326     $lastsep = "";
20327     $expectation->is(q{})->at($text);
20328
20329
20330     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
20331     {
20332
20333       $expectation->failed();
20334       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
20335               Parse::RecDescent::_tracefirst($text))
20336               if defined $::RD_TRACE;
20337       last;
20338     }
20339     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20340             . $& . q{])},
20341               Parse::RecDescent::_tracefirst($text))
20342               if defined $::RD_TRACE;
20343     push @item, $item{__STRING1__}=$&;
20344
20345
20346     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
20347           Parse::RecDescent::_tracefirst($text),
20348           q{ld_type},
20349           $tracelevel)
20350           if defined $::RD_TRACE;
20351     if (1) { no strict qw{refs};
20352     $expectation->is(q{expression})->at($text);
20353     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20354     {
20355
20356       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
20357               Parse::RecDescent::_tracefirst($text),
20358               q{ld_type},
20359               $tracelevel)
20360               if defined $::RD_TRACE;
20361       $expectation->failed();
20362       last;
20363     }
20364     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
20365           . $_tok . q{]},
20366
20367             Parse::RecDescent::_tracefirst($text),
20368             q{ld_type},
20369             $tracelevel)
20370             if defined $::RD_TRACE;
20371     $item{q{expression}} = $_tok;
20372     push @item, $_tok;
20373
20374     }
20375
20376     Parse::RecDescent::_trace(q{Trying terminal: [')']},
20377             Parse::RecDescent::_tracefirst($text),
20378             q{ld_type},
20379             $tracelevel)
20380             if defined $::RD_TRACE;
20381     $lastsep = "";
20382     $expectation->is(q{')'})->at($text);
20383
20384
20385     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
20386     {
20387
20388       $expectation->failed();
20389       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
20390               Parse::RecDescent::_tracefirst($text))
20391               if defined $::RD_TRACE;
20392       last;
20393     }
20394     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20395             . $& . q{])},
20396               Parse::RecDescent::_tracefirst($text))
20397               if defined $::RD_TRACE;
20398     push @item, $item{__STRING2__}=$&;
20399
20400
20401
20402     Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
20403             Parse::RecDescent::_tracefirst($text),
20404             q{ld_type},
20405             $tracelevel)
20406             if defined $::RD_TRACE;
20407     $_matched = 1;
20408     last;
20409   }
20410
20411
20412   while (!$_matched && !$commit)
20413   {
20414
20415     Parse::RecDescent::_trace(q{Trying production: [constant]},
20416             Parse::RecDescent::_tracefirst($_[1]),
20417             q{ld_type},
20418             $tracelevel)
20419             if defined $::RD_TRACE;
20420     my $thisprod = $thisrule->{"prods"}[2];
20421     $text = $_[1];
20422     my $_savetext;
20423     @item = (q{ld_type});
20424     %item = (__RULE__ => q{ld_type});
20425     my $repcount = 0;
20426
20427
20428     Parse::RecDescent::_trace(q{Trying subrule: [constant]},
20429           Parse::RecDescent::_tracefirst($text),
20430           q{ld_type},
20431           $tracelevel)
20432           if defined $::RD_TRACE;
20433     if (1) { no strict qw{refs};
20434     $expectation->is(q{})->at($text);
20435     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20436     {
20437
20438       Parse::RecDescent::_trace(q{<<Didn't match subrule: [constant]>>},
20439               Parse::RecDescent::_tracefirst($text),
20440               q{ld_type},
20441               $tracelevel)
20442               if defined $::RD_TRACE;
20443       $expectation->failed();
20444       last;
20445     }
20446     Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
20447           . $_tok . q{]},
20448
20449             Parse::RecDescent::_tracefirst($text),
20450             q{ld_type},
20451             $tracelevel)
20452             if defined $::RD_TRACE;
20453     $item{q{constant}} = $_tok;
20454     push @item, $_tok;
20455
20456     }
20457
20458
20459     Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
20460             Parse::RecDescent::_tracefirst($text),
20461             q{ld_type},
20462             $tracelevel)
20463             if defined $::RD_TRACE;
20464     $_matched = 1;
20465     last;
20466   }
20467
20468
20469   while (!$_matched && !$commit)
20470   {
20471
20472     Parse::RecDescent::_trace(q{Trying production: [column_name]},
20473             Parse::RecDescent::_tracefirst($_[1]),
20474             q{ld_type},
20475             $tracelevel)
20476             if defined $::RD_TRACE;
20477     my $thisprod = $thisrule->{"prods"}[3];
20478     $text = $_[1];
20479     my $_savetext;
20480     @item = (q{ld_type});
20481     %item = (__RULE__ => q{ld_type});
20482     my $repcount = 0;
20483
20484
20485     Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
20486           Parse::RecDescent::_tracefirst($text),
20487           q{ld_type},
20488           $tracelevel)
20489           if defined $::RD_TRACE;
20490     if (1) { no strict qw{refs};
20491     $expectation->is(q{})->at($text);
20492     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20493     {
20494
20495       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
20496               Parse::RecDescent::_tracefirst($text),
20497               q{ld_type},
20498               $tracelevel)
20499               if defined $::RD_TRACE;
20500       $expectation->failed();
20501       last;
20502     }
20503     Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
20504           . $_tok . q{]},
20505
20506             Parse::RecDescent::_tracefirst($text),
20507             q{ld_type},
20508             $tracelevel)
20509             if defined $::RD_TRACE;
20510     $item{q{column_name}} = $_tok;
20511     push @item, $_tok;
20512
20513     }
20514
20515
20516     Parse::RecDescent::_trace(q{>>Matched production: [column_name]<<},
20517             Parse::RecDescent::_tracefirst($text),
20518             q{ld_type},
20519             $tracelevel)
20520             if defined $::RD_TRACE;
20521     $_matched = 1;
20522     last;
20523   }
20524
20525
20526   while (!$_matched && !$commit)
20527   {
20528
20529     Parse::RecDescent::_trace(q{Trying production: [host_variable]},
20530             Parse::RecDescent::_tracefirst($_[1]),
20531             q{ld_type},
20532             $tracelevel)
20533             if defined $::RD_TRACE;
20534     my $thisprod = $thisrule->{"prods"}[4];
20535     $text = $_[1];
20536     my $_savetext;
20537     @item = (q{ld_type});
20538     %item = (__RULE__ => q{ld_type});
20539     my $repcount = 0;
20540
20541
20542     Parse::RecDescent::_trace(q{Trying subrule: [host_variable]},
20543           Parse::RecDescent::_tracefirst($text),
20544           q{ld_type},
20545           $tracelevel)
20546           if defined $::RD_TRACE;
20547     if (1) { no strict qw{refs};
20548     $expectation->is(q{})->at($text);
20549     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
20550     {
20551
20552       Parse::RecDescent::_trace(q{<<Didn't match subrule: [host_variable]>>},
20553               Parse::RecDescent::_tracefirst($text),
20554               q{ld_type},
20555               $tracelevel)
20556               if defined $::RD_TRACE;
20557       $expectation->failed();
20558       last;
20559     }
20560     Parse::RecDescent::_trace(q{>>Matched subrule: [host_variable]<< (return value: [}
20561           . $_tok . q{]},
20562
20563             Parse::RecDescent::_tracefirst($text),
20564             q{ld_type},
20565             $tracelevel)
20566             if defined $::RD_TRACE;
20567     $item{q{host_variable}} = $_tok;
20568     push @item, $_tok;
20569
20570     }
20571
20572
20573     Parse::RecDescent::_trace(q{>>Matched production: [host_variable]<<},
20574             Parse::RecDescent::_tracefirst($text),
20575             q{ld_type},
20576             $tracelevel)
20577             if defined $::RD_TRACE;
20578     $_matched = 1;
20579     last;
20580   }
20581
20582
20583         unless ( $_matched || defined($return) || defined($score) )
20584   {
20585
20586
20587     $_[1] = $text;  # NOT SURE THIS IS NEEDED
20588     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
20589            Parse::RecDescent::_tracefirst($_[1]),
20590            q{ld_type},
20591            $tracelevel)
20592           if defined $::RD_TRACE;
20593     return undef;
20594   }
20595   if (!defined($return) && defined($score))
20596   {
20597     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20598             q{ld_type},
20599             $tracelevel)
20600             if defined $::RD_TRACE;
20601     $return = $score_return;
20602   }
20603   splice @{$thisparser->{errors}}, $err_at;
20604   $return = $item[$#item] unless defined $return;
20605   if (defined $::RD_TRACE)
20606   {
20607     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20608             $return . q{])}, "",
20609             q{ld_type},
20610             $tracelevel);
20611     Parse::RecDescent::_trace(q{(consumed: [} .
20612             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20613             Parse::RecDescent::_tracefirst($text),
20614             , q{ld_type},
20615             $tracelevel)
20616   }
20617   $_[1] = $text;
20618   return $return;
20619 }
20620
20621 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20622 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::RIGHT
20623 {
20624   my $thisparser = $_[0];
20625   use vars q{$tracelevel};
20626   local $tracelevel = ($tracelevel||0)+1;
20627   $ERRORS = 0;
20628   my $thisrule = $thisparser->{"rules"}{"RIGHT"};
20629
20630   Parse::RecDescent::_trace(q{Trying rule: [RIGHT]},
20631           Parse::RecDescent::_tracefirst($_[1]),
20632           q{RIGHT},
20633           $tracelevel)
20634           if defined $::RD_TRACE;
20635
20636
20637   my $err_at = @{$thisparser->{errors}};
20638
20639   my $score;
20640   my $score_return;
20641   my $_tok;
20642   my $return = undef;
20643   my $_matched=0;
20644   my $commit=0;
20645   my @item = ();
20646   my %item = ();
20647   my $repeating =  defined($_[2]) && $_[2];
20648   my $_noactions = defined($_[3]) && $_[3];
20649    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20650   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20651   my $text;
20652   my $lastsep="";
20653   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20654   $expectation->at($_[1]);
20655
20656   my $thisline;
20657   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20658
20659
20660
20661   while (!$_matched && !$commit)
20662   {
20663
20664     Parse::RecDescent::_trace(q{Trying production: [/right/i]},
20665             Parse::RecDescent::_tracefirst($_[1]),
20666             q{RIGHT},
20667             $tracelevel)
20668             if defined $::RD_TRACE;
20669     my $thisprod = $thisrule->{"prods"}[0];
20670     $text = $_[1];
20671     my $_savetext;
20672     @item = (q{RIGHT});
20673     %item = (__RULE__ => q{RIGHT});
20674     my $repcount = 0;
20675
20676
20677     Parse::RecDescent::_trace(q{Trying terminal: [/right/i]}, Parse::RecDescent::_tracefirst($text),
20678             q{RIGHT},
20679             $tracelevel)
20680             if defined $::RD_TRACE;
20681     $lastsep = "";
20682     $expectation->is(q{})->at($text);
20683
20684
20685     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:right)//i)
20686     {
20687
20688       $expectation->failed();
20689       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
20690               Parse::RecDescent::_tracefirst($text))
20691           if defined $::RD_TRACE;
20692
20693       last;
20694     }
20695     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20696             . $& . q{])},
20697               Parse::RecDescent::_tracefirst($text))
20698           if defined $::RD_TRACE;
20699     push @item, $item{__PATTERN1__}=$&;
20700
20701
20702
20703     Parse::RecDescent::_trace(q{>>Matched production: [/right/i]<<},
20704             Parse::RecDescent::_tracefirst($text),
20705             q{RIGHT},
20706             $tracelevel)
20707             if defined $::RD_TRACE;
20708     $_matched = 1;
20709     last;
20710   }
20711
20712
20713         unless ( $_matched || defined($return) || defined($score) )
20714   {
20715
20716
20717     $_[1] = $text;  # NOT SURE THIS IS NEEDED
20718     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
20719            Parse::RecDescent::_tracefirst($_[1]),
20720            q{RIGHT},
20721            $tracelevel)
20722           if defined $::RD_TRACE;
20723     return undef;
20724   }
20725   if (!defined($return) && defined($score))
20726   {
20727     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20728             q{RIGHT},
20729             $tracelevel)
20730             if defined $::RD_TRACE;
20731     $return = $score_return;
20732   }
20733   splice @{$thisparser->{errors}}, $err_at;
20734   $return = $item[$#item] unless defined $return;
20735   if (defined $::RD_TRACE)
20736   {
20737     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20738             $return . q{])}, "",
20739             q{RIGHT},
20740             $tracelevel);
20741     Parse::RecDescent::_trace(q{(consumed: [} .
20742             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20743             Parse::RecDescent::_tracefirst($text),
20744             , q{RIGHT},
20745             $tracelevel)
20746   }
20747   $_[1] = $text;
20748   return $return;
20749 }
20750
20751 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20752 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_method_invocation
20753 {
20754   my $thisparser = $_[0];
20755   use vars q{$tracelevel};
20756   local $tracelevel = ($tracelevel||0)+1;
20757   $ERRORS = 0;
20758   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_method_invocation"};
20759
20760   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_method_invocation]},
20761           Parse::RecDescent::_tracefirst($_[1]),
20762           q{_alternation_1_of_production_1_of_rule_method_invocation},
20763           $tracelevel)
20764           if defined $::RD_TRACE;
20765
20766
20767   my $err_at = @{$thisparser->{errors}};
20768
20769   my $score;
20770   my $score_return;
20771   my $_tok;
20772   my $return = undef;
20773   my $_matched=0;
20774   my $commit=0;
20775   my @item = ();
20776   my %item = ();
20777   my $repeating =  defined($_[2]) && $_[2];
20778   my $_noactions = defined($_[3]) && $_[3];
20779    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20780   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20781   my $text;
20782   my $lastsep="";
20783   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20784   $expectation->at($_[1]);
20785
20786   my $thisline;
20787   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20788
20789
20790
20791   while (!$_matched && !$commit)
20792   {
20793
20794     Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
20795             Parse::RecDescent::_tracefirst($_[1]),
20796             q{_alternation_1_of_production_1_of_rule_method_invocation},
20797             $tracelevel)
20798             if defined $::RD_TRACE;
20799     my $thisprod = $thisrule->{"prods"}[0];
20800     $text = $_[1];
20801     my $_savetext;
20802     @item = (q{_alternation_1_of_production_1_of_rule_method_invocation});
20803     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_method_invocation});
20804     my $repcount = 0;
20805
20806
20807     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
20808             Parse::RecDescent::_tracefirst($text),
20809             q{_alternation_1_of_production_1_of_rule_method_invocation},
20810             $tracelevel)
20811             if defined $::RD_TRACE;
20812     $lastsep = "";
20813     $expectation->is(q{})->at($text);
20814
20815
20816     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
20817     {
20818
20819       $expectation->failed();
20820       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
20821               Parse::RecDescent::_tracefirst($text))
20822               if defined $::RD_TRACE;
20823       last;
20824     }
20825     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20826             . $& . q{])},
20827               Parse::RecDescent::_tracefirst($text))
20828               if defined $::RD_TRACE;
20829     push @item, $item{__STRING1__}=$&;
20830
20831
20832     Parse::RecDescent::_trace(q{Trying repeated subrule: [expression]},
20833           Parse::RecDescent::_tracefirst($text),
20834           q{_alternation_1_of_production_1_of_rule_method_invocation},
20835           $tracelevel)
20836           if defined $::RD_TRACE;
20837     $expectation->is(q{expression})->at($text);
20838
20839     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression, 1, 100000000, $_noactions,$expectation,undef)))
20840     {
20841       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [expression]>>},
20842               Parse::RecDescent::_tracefirst($text),
20843               q{_alternation_1_of_production_1_of_rule_method_invocation},
20844               $tracelevel)
20845               if defined $::RD_TRACE;
20846       last;
20847     }
20848     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [expression]<< (}
20849           . @$_tok . q{ times)},
20850
20851             Parse::RecDescent::_tracefirst($text),
20852             q{_alternation_1_of_production_1_of_rule_method_invocation},
20853             $tracelevel)
20854             if defined $::RD_TRACE;
20855     $item{q{expression(s)}} = $_tok;
20856     push @item, $_tok;
20857
20858
20859
20860     Parse::RecDescent::_trace(q{Trying terminal: [')']},
20861             Parse::RecDescent::_tracefirst($text),
20862             q{_alternation_1_of_production_1_of_rule_method_invocation},
20863             $tracelevel)
20864             if defined $::RD_TRACE;
20865     $lastsep = "";
20866     $expectation->is(q{')'})->at($text);
20867
20868
20869     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
20870     {
20871
20872       $expectation->failed();
20873       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
20874               Parse::RecDescent::_tracefirst($text))
20875               if defined $::RD_TRACE;
20876       last;
20877     }
20878     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
20879             . $& . q{])},
20880               Parse::RecDescent::_tracefirst($text))
20881               if defined $::RD_TRACE;
20882     push @item, $item{__STRING2__}=$&;
20883
20884
20885
20886     Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
20887             Parse::RecDescent::_tracefirst($text),
20888             q{_alternation_1_of_production_1_of_rule_method_invocation},
20889             $tracelevel)
20890             if defined $::RD_TRACE;
20891     $_matched = 1;
20892     last;
20893   }
20894
20895
20896         unless ( $_matched || defined($return) || defined($score) )
20897   {
20898
20899
20900     $_[1] = $text;  # NOT SURE THIS IS NEEDED
20901     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
20902            Parse::RecDescent::_tracefirst($_[1]),
20903            q{_alternation_1_of_production_1_of_rule_method_invocation},
20904            $tracelevel)
20905           if defined $::RD_TRACE;
20906     return undef;
20907   }
20908   if (!defined($return) && defined($score))
20909   {
20910     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
20911             q{_alternation_1_of_production_1_of_rule_method_invocation},
20912             $tracelevel)
20913             if defined $::RD_TRACE;
20914     $return = $score_return;
20915   }
20916   splice @{$thisparser->{errors}}, $err_at;
20917   $return = $item[$#item] unless defined $return;
20918   if (defined $::RD_TRACE)
20919   {
20920     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
20921             $return . q{])}, "",
20922             q{_alternation_1_of_production_1_of_rule_method_invocation},
20923             $tracelevel);
20924     Parse::RecDescent::_trace(q{(consumed: [} .
20925             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
20926             Parse::RecDescent::_tracefirst($text),
20927             , q{_alternation_1_of_production_1_of_rule_method_invocation},
20928             $tracelevel)
20929   }
20930   $_[1] = $text;
20931   return $return;
20932 }
20933
20934 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
20935 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::LEFT
20936 {
20937   my $thisparser = $_[0];
20938   use vars q{$tracelevel};
20939   local $tracelevel = ($tracelevel||0)+1;
20940   $ERRORS = 0;
20941   my $thisrule = $thisparser->{"rules"}{"LEFT"};
20942
20943   Parse::RecDescent::_trace(q{Trying rule: [LEFT]},
20944           Parse::RecDescent::_tracefirst($_[1]),
20945           q{LEFT},
20946           $tracelevel)
20947           if defined $::RD_TRACE;
20948
20949
20950   my $err_at = @{$thisparser->{errors}};
20951
20952   my $score;
20953   my $score_return;
20954   my $_tok;
20955   my $return = undef;
20956   my $_matched=0;
20957   my $commit=0;
20958   my @item = ();
20959   my %item = ();
20960   my $repeating =  defined($_[2]) && $_[2];
20961   my $_noactions = defined($_[3]) && $_[3];
20962    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
20963   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
20964   my $text;
20965   my $lastsep="";
20966   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
20967   $expectation->at($_[1]);
20968
20969   my $thisline;
20970   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
20971
20972
20973
20974   while (!$_matched && !$commit)
20975   {
20976
20977     Parse::RecDescent::_trace(q{Trying production: [/left/i]},
20978             Parse::RecDescent::_tracefirst($_[1]),
20979             q{LEFT},
20980             $tracelevel)
20981             if defined $::RD_TRACE;
20982     my $thisprod = $thisrule->{"prods"}[0];
20983     $text = $_[1];
20984     my $_savetext;
20985     @item = (q{LEFT});
20986     %item = (__RULE__ => q{LEFT});
20987     my $repcount = 0;
20988
20989
20990     Parse::RecDescent::_trace(q{Trying terminal: [/left/i]}, Parse::RecDescent::_tracefirst($text),
20991             q{LEFT},
20992             $tracelevel)
20993             if defined $::RD_TRACE;
20994     $lastsep = "";
20995     $expectation->is(q{})->at($text);
20996
20997
20998     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:left)//i)
20999     {
21000
21001       $expectation->failed();
21002       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21003               Parse::RecDescent::_tracefirst($text))
21004           if defined $::RD_TRACE;
21005
21006       last;
21007     }
21008     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21009             . $& . q{])},
21010               Parse::RecDescent::_tracefirst($text))
21011           if defined $::RD_TRACE;
21012     push @item, $item{__PATTERN1__}=$&;
21013
21014
21015
21016     Parse::RecDescent::_trace(q{>>Matched production: [/left/i]<<},
21017             Parse::RecDescent::_tracefirst($text),
21018             q{LEFT},
21019             $tracelevel)
21020             if defined $::RD_TRACE;
21021     $_matched = 1;
21022     last;
21023   }
21024
21025
21026         unless ( $_matched || defined($return) || defined($score) )
21027   {
21028
21029
21030     $_[1] = $text;  # NOT SURE THIS IS NEEDED
21031     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
21032            Parse::RecDescent::_tracefirst($_[1]),
21033            q{LEFT},
21034            $tracelevel)
21035           if defined $::RD_TRACE;
21036     return undef;
21037   }
21038   if (!defined($return) && defined($score))
21039   {
21040     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21041             q{LEFT},
21042             $tracelevel)
21043             if defined $::RD_TRACE;
21044     $return = $score_return;
21045   }
21046   splice @{$thisparser->{errors}}, $err_at;
21047   $return = $item[$#item] unless defined $return;
21048   if (defined $::RD_TRACE)
21049   {
21050     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21051             $return . q{])}, "",
21052             q{LEFT},
21053             $tracelevel);
21054     Parse::RecDescent::_trace(q{(consumed: [} .
21055             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
21056             Parse::RecDescent::_tracefirst($text),
21057             , q{LEFT},
21058             $tracelevel)
21059   }
21060   $_[1] = $text;
21061   return $return;
21062 }
21063
21064 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21065 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name
21066 {
21067   my $thisparser = $_[0];
21068   use vars q{$tracelevel};
21069   local $tracelevel = ($tracelevel||0)+1;
21070   $ERRORS = 0;
21071   my $thisrule = $thisparser->{"rules"}{"table_name"};
21072
21073   Parse::RecDescent::_trace(q{Trying rule: [table_name]},
21074           Parse::RecDescent::_tracefirst($_[1]),
21075           q{table_name},
21076           $tracelevel)
21077           if defined $::RD_TRACE;
21078
21079
21080   my $err_at = @{$thisparser->{errors}};
21081
21082   my $score;
21083   my $score_return;
21084   my $_tok;
21085   my $return = undef;
21086   my $_matched=0;
21087   my $commit=0;
21088   my @item = ();
21089   my %item = ();
21090   my $repeating =  defined($_[2]) && $_[2];
21091   my $_noactions = defined($_[3]) && $_[3];
21092    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
21093   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
21094   my $text;
21095   my $lastsep="";
21096   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21097   $expectation->at($_[1]);
21098
21099   my $thisline;
21100   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21101
21102
21103
21104   while (!$_matched && !$commit)
21105   {
21106
21107     Parse::RecDescent::_trace(q{Trying production: [SCHEMA '.' NAME]},
21108             Parse::RecDescent::_tracefirst($_[1]),
21109             q{table_name},
21110             $tracelevel)
21111             if defined $::RD_TRACE;
21112     my $thisprod = $thisrule->{"prods"}[0];
21113     $text = $_[1];
21114     my $_savetext;
21115     @item = (q{table_name});
21116     %item = (__RULE__ => q{table_name});
21117     my $repcount = 0;
21118
21119
21120     Parse::RecDescent::_trace(q{Trying subrule: [SCHEMA]},
21121           Parse::RecDescent::_tracefirst($text),
21122           q{table_name},
21123           $tracelevel)
21124           if defined $::RD_TRACE;
21125     if (1) { no strict qw{refs};
21126     $expectation->is(q{})->at($text);
21127     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SCHEMA($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21128     {
21129
21130       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SCHEMA]>>},
21131               Parse::RecDescent::_tracefirst($text),
21132               q{table_name},
21133               $tracelevel)
21134               if defined $::RD_TRACE;
21135       $expectation->failed();
21136       last;
21137     }
21138     Parse::RecDescent::_trace(q{>>Matched subrule: [SCHEMA]<< (return value: [}
21139           . $_tok . q{]},
21140
21141             Parse::RecDescent::_tracefirst($text),
21142             q{table_name},
21143             $tracelevel)
21144             if defined $::RD_TRACE;
21145     $item{q{SCHEMA}} = $_tok;
21146     push @item, $_tok;
21147
21148     }
21149
21150     Parse::RecDescent::_trace(q{Trying terminal: ['.']},
21151             Parse::RecDescent::_tracefirst($text),
21152             q{table_name},
21153             $tracelevel)
21154             if defined $::RD_TRACE;
21155     $lastsep = "";
21156     $expectation->is(q{'.'})->at($text);
21157
21158
21159     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\.//)
21160     {
21161
21162       $expectation->failed();
21163       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
21164               Parse::RecDescent::_tracefirst($text))
21165               if defined $::RD_TRACE;
21166       last;
21167     }
21168     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21169             . $& . q{])},
21170               Parse::RecDescent::_tracefirst($text))
21171               if defined $::RD_TRACE;
21172     push @item, $item{__STRING1__}=$&;
21173
21174
21175     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
21176           Parse::RecDescent::_tracefirst($text),
21177           q{table_name},
21178           $tracelevel)
21179           if defined $::RD_TRACE;
21180     if (1) { no strict qw{refs};
21181     $expectation->is(q{NAME})->at($text);
21182     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21183     {
21184
21185       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
21186               Parse::RecDescent::_tracefirst($text),
21187               q{table_name},
21188               $tracelevel)
21189               if defined $::RD_TRACE;
21190       $expectation->failed();
21191       last;
21192     }
21193     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
21194           . $_tok . q{]},
21195
21196             Parse::RecDescent::_tracefirst($text),
21197             q{table_name},
21198             $tracelevel)
21199             if defined $::RD_TRACE;
21200     $item{q{NAME}} = $_tok;
21201     push @item, $_tok;
21202
21203     }
21204
21205     Parse::RecDescent::_trace(q{Trying action},
21206             Parse::RecDescent::_tracefirst($text),
21207             q{table_name},
21208             $tracelevel)
21209             if defined $::RD_TRACE;
21210
21211
21212     $_tok = ($_noactions) ? 0 : do { $return = { schema => $item[1], name => $item[3] } };
21213     unless (defined $_tok)
21214     {
21215       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
21216           if defined $::RD_TRACE;
21217       last;
21218     }
21219     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
21220             . $_tok . q{])},
21221             Parse::RecDescent::_tracefirst($text))
21222             if defined $::RD_TRACE;
21223     push @item, $_tok;
21224     $item{__ACTION1__}=$_tok;
21225
21226
21227
21228     Parse::RecDescent::_trace(q{>>Matched production: [SCHEMA '.' NAME]<<},
21229             Parse::RecDescent::_tracefirst($text),
21230             q{table_name},
21231             $tracelevel)
21232             if defined $::RD_TRACE;
21233     $_matched = 1;
21234     last;
21235   }
21236
21237
21238   while (!$_matched && !$commit)
21239   {
21240
21241     Parse::RecDescent::_trace(q{Trying production: [NAME]},
21242             Parse::RecDescent::_tracefirst($_[1]),
21243             q{table_name},
21244             $tracelevel)
21245             if defined $::RD_TRACE;
21246     my $thisprod = $thisrule->{"prods"}[1];
21247     $text = $_[1];
21248     my $_savetext;
21249     @item = (q{table_name});
21250     %item = (__RULE__ => q{table_name});
21251     my $repcount = 0;
21252
21253
21254     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
21255           Parse::RecDescent::_tracefirst($text),
21256           q{table_name},
21257           $tracelevel)
21258           if defined $::RD_TRACE;
21259     if (1) { no strict qw{refs};
21260     $expectation->is(q{})->at($text);
21261     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21262     {
21263
21264       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
21265               Parse::RecDescent::_tracefirst($text),
21266               q{table_name},
21267               $tracelevel)
21268               if defined $::RD_TRACE;
21269       $expectation->failed();
21270       last;
21271     }
21272     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
21273           . $_tok . q{]},
21274
21275             Parse::RecDescent::_tracefirst($text),
21276             q{table_name},
21277             $tracelevel)
21278             if defined $::RD_TRACE;
21279     $item{q{NAME}} = $_tok;
21280     push @item, $_tok;
21281
21282     }
21283
21284     Parse::RecDescent::_trace(q{Trying action},
21285             Parse::RecDescent::_tracefirst($text),
21286             q{table_name},
21287             $tracelevel)
21288             if defined $::RD_TRACE;
21289
21290
21291     $_tok = ($_noactions) ? 0 : do { $return = { name => $item[1] } };
21292     unless (defined $_tok)
21293     {
21294       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
21295           if defined $::RD_TRACE;
21296       last;
21297     }
21298     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
21299             . $_tok . q{])},
21300             Parse::RecDescent::_tracefirst($text))
21301             if defined $::RD_TRACE;
21302     push @item, $_tok;
21303     $item{__ACTION1__}=$_tok;
21304
21305
21306
21307     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
21308             Parse::RecDescent::_tracefirst($text),
21309             q{table_name},
21310             $tracelevel)
21311             if defined $::RD_TRACE;
21312     $_matched = 1;
21313     last;
21314   }
21315
21316
21317         unless ( $_matched || defined($return) || defined($score) )
21318   {
21319
21320
21321     $_[1] = $text;  # NOT SURE THIS IS NEEDED
21322     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
21323            Parse::RecDescent::_tracefirst($_[1]),
21324            q{table_name},
21325            $tracelevel)
21326           if defined $::RD_TRACE;
21327     return undef;
21328   }
21329   if (!defined($return) && defined($score))
21330   {
21331     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21332             q{table_name},
21333             $tracelevel)
21334             if defined $::RD_TRACE;
21335     $return = $score_return;
21336   }
21337   splice @{$thisparser->{errors}}, $err_at;
21338   $return = $item[$#item] unless defined $return;
21339   if (defined $::RD_TRACE)
21340   {
21341     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21342             $return . q{])}, "",
21343             q{table_name},
21344             $tracelevel);
21345     Parse::RecDescent::_trace(q{(consumed: [} .
21346             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
21347             Parse::RecDescent::_tracefirst($text),
21348             , q{table_name},
21349             $tracelevel)
21350   }
21351   $_[1] = $text;
21352   return $return;
21353 }
21354
21355 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21356 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun
21357 {
21358   my $thisparser = $_[0];
21359   use vars q{$tracelevel};
21360   local $tracelevel = ($tracelevel||0)+1;
21361   $ERRORS = 0;
21362   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_53_of_rule_sysfun"};
21363
21364   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_53_of_rule_sysfun]},
21365           Parse::RecDescent::_tracefirst($_[1]),
21366           q{_alternation_1_of_production_53_of_rule_sysfun},
21367           $tracelevel)
21368           if defined $::RD_TRACE;
21369
21370
21371   my $err_at = @{$thisparser->{errors}};
21372
21373   my $score;
21374   my $score_return;
21375   my $_tok;
21376   my $return = undef;
21377   my $_matched=0;
21378   my $commit=0;
21379   my @item = ();
21380   my %item = ();
21381   my $repeating =  defined($_[2]) && $_[2];
21382   my $_noactions = defined($_[3]) && $_[3];
21383    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
21384   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
21385   my $text;
21386   my $lastsep="";
21387   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21388   $expectation->at($_[1]);
21389
21390   my $thisline;
21391   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21392
21393
21394
21395   while (!$_matched && !$commit)
21396   {
21397
21398     Parse::RecDescent::_trace(q{Trying production: [/TRUNCATE/i]},
21399             Parse::RecDescent::_tracefirst($_[1]),
21400             q{_alternation_1_of_production_53_of_rule_sysfun},
21401             $tracelevel)
21402             if defined $::RD_TRACE;
21403     my $thisprod = $thisrule->{"prods"}[0];
21404     $text = $_[1];
21405     my $_savetext;
21406     @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
21407     %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
21408     my $repcount = 0;
21409
21410
21411     Parse::RecDescent::_trace(q{Trying terminal: [/TRUNCATE/i]}, Parse::RecDescent::_tracefirst($text),
21412             q{_alternation_1_of_production_53_of_rule_sysfun},
21413             $tracelevel)
21414             if defined $::RD_TRACE;
21415     $lastsep = "";
21416     $expectation->is(q{})->at($text);
21417
21418
21419     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRUNCATE)//i)
21420     {
21421
21422       $expectation->failed();
21423       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21424               Parse::RecDescent::_tracefirst($text))
21425           if defined $::RD_TRACE;
21426
21427       last;
21428     }
21429     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21430             . $& . q{])},
21431               Parse::RecDescent::_tracefirst($text))
21432           if defined $::RD_TRACE;
21433     push @item, $item{__PATTERN1__}=$&;
21434
21435
21436
21437     Parse::RecDescent::_trace(q{>>Matched production: [/TRUNCATE/i]<<},
21438             Parse::RecDescent::_tracefirst($text),
21439             q{_alternation_1_of_production_53_of_rule_sysfun},
21440             $tracelevel)
21441             if defined $::RD_TRACE;
21442     $_matched = 1;
21443     last;
21444   }
21445
21446
21447   while (!$_matched && !$commit)
21448   {
21449
21450     Parse::RecDescent::_trace(q{Trying production: [/TRUNC/i]},
21451             Parse::RecDescent::_tracefirst($_[1]),
21452             q{_alternation_1_of_production_53_of_rule_sysfun},
21453             $tracelevel)
21454             if defined $::RD_TRACE;
21455     my $thisprod = $thisrule->{"prods"}[1];
21456     $text = $_[1];
21457     my $_savetext;
21458     @item = (q{_alternation_1_of_production_53_of_rule_sysfun});
21459     %item = (__RULE__ => q{_alternation_1_of_production_53_of_rule_sysfun});
21460     my $repcount = 0;
21461
21462
21463     Parse::RecDescent::_trace(q{Trying terminal: [/TRUNC/i]}, Parse::RecDescent::_tracefirst($text),
21464             q{_alternation_1_of_production_53_of_rule_sysfun},
21465             $tracelevel)
21466             if defined $::RD_TRACE;
21467     $lastsep = "";
21468     $expectation->is(q{})->at($text);
21469
21470
21471     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TRUNC)//i)
21472     {
21473
21474       $expectation->failed();
21475       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21476               Parse::RecDescent::_tracefirst($text))
21477           if defined $::RD_TRACE;
21478
21479       last;
21480     }
21481     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21482             . $& . q{])},
21483               Parse::RecDescent::_tracefirst($text))
21484           if defined $::RD_TRACE;
21485     push @item, $item{__PATTERN1__}=$&;
21486
21487
21488
21489     Parse::RecDescent::_trace(q{>>Matched production: [/TRUNC/i]<<},
21490             Parse::RecDescent::_tracefirst($text),
21491             q{_alternation_1_of_production_53_of_rule_sysfun},
21492             $tracelevel)
21493             if defined $::RD_TRACE;
21494     $_matched = 1;
21495     last;
21496   }
21497
21498
21499         unless ( $_matched || defined($return) || defined($score) )
21500   {
21501
21502
21503     $_[1] = $text;  # NOT SURE THIS IS NEEDED
21504     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
21505            Parse::RecDescent::_tracefirst($_[1]),
21506            q{_alternation_1_of_production_53_of_rule_sysfun},
21507            $tracelevel)
21508           if defined $::RD_TRACE;
21509     return undef;
21510   }
21511   if (!defined($return) && defined($score))
21512   {
21513     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21514             q{_alternation_1_of_production_53_of_rule_sysfun},
21515             $tracelevel)
21516             if defined $::RD_TRACE;
21517     $return = $score_return;
21518   }
21519   splice @{$thisparser->{errors}}, $err_at;
21520   $return = $item[$#item] unless defined $return;
21521   if (defined $::RD_TRACE)
21522   {
21523     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21524             $return . q{])}, "",
21525             q{_alternation_1_of_production_53_of_rule_sysfun},
21526             $tracelevel);
21527     Parse::RecDescent::_trace(q{(consumed: [} .
21528             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
21529             Parse::RecDescent::_tracefirst($text),
21530             , q{_alternation_1_of_production_53_of_rule_sysfun},
21531             $tracelevel)
21532   }
21533   $_[1] = $text;
21534   return $return;
21535 }
21536
21537 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21538 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::options
21539 {
21540   my $thisparser = $_[0];
21541   use vars q{$tracelevel};
21542   local $tracelevel = ($tracelevel||0)+1;
21543   $ERRORS = 0;
21544   my $thisrule = $thisparser->{"rules"}{"options"};
21545
21546   Parse::RecDescent::_trace(q{Trying rule: [options]},
21547           Parse::RecDescent::_tracefirst($_[1]),
21548           q{options},
21549           $tracelevel)
21550           if defined $::RD_TRACE;
21551
21552
21553   my $err_at = @{$thisparser->{errors}};
21554
21555   my $score;
21556   my $score_return;
21557   my $_tok;
21558   my $return = undef;
21559   my $_matched=0;
21560   my $commit=0;
21561   my @item = ();
21562   my %item = ();
21563   my $repeating =  defined($_[2]) && $_[2];
21564   my $_noactions = defined($_[3]) && $_[3];
21565    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
21566   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
21567   my $text;
21568   my $lastsep="";
21569   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21570   $expectation->at($_[1]);
21571
21572   my $thisline;
21573   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21574
21575
21576
21577   while (!$_matched && !$commit)
21578   {
21579
21580     Parse::RecDescent::_trace(q{Trying production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]},
21581             Parse::RecDescent::_tracefirst($_[1]),
21582             q{options},
21583             $tracelevel)
21584             if defined $::RD_TRACE;
21585     my $thisprod = $thisrule->{"prods"}[0];
21586     $text = $_[1];
21587     my $_savetext;
21588     @item = (q{options});
21589     %item = (__RULE__ => q{options});
21590     my $repcount = 0;
21591
21592
21593     Parse::RecDescent::_trace(q{Trying terminal: [/WITH/i]}, Parse::RecDescent::_tracefirst($text),
21594             q{options},
21595             $tracelevel)
21596             if defined $::RD_TRACE;
21597     $lastsep = "";
21598     $expectation->is(q{})->at($text);
21599
21600
21601     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WITH)//i)
21602     {
21603
21604       $expectation->failed();
21605       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21606               Parse::RecDescent::_tracefirst($text))
21607           if defined $::RD_TRACE;
21608
21609       last;
21610     }
21611     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21612             . $& . q{])},
21613               Parse::RecDescent::_tracefirst($text))
21614           if defined $::RD_TRACE;
21615     push @item, $item{__PATTERN1__}=$&;
21616
21617
21618     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_options]},
21619           Parse::RecDescent::_tracefirst($text),
21620           q{options},
21621           $tracelevel)
21622           if defined $::RD_TRACE;
21623     if (1) { no strict qw{refs};
21624     $expectation->is(q{/CASCADED/i, or /LOCAL/i})->at($text);
21625     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_options($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21626     {
21627
21628       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_options]>>},
21629               Parse::RecDescent::_tracefirst($text),
21630               q{options},
21631               $tracelevel)
21632               if defined $::RD_TRACE;
21633       $expectation->failed();
21634       last;
21635     }
21636     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_options]<< (return value: [}
21637           . $_tok . q{]},
21638
21639             Parse::RecDescent::_tracefirst($text),
21640             q{options},
21641             $tracelevel)
21642             if defined $::RD_TRACE;
21643     $item{q{_alternation_1_of_production_1_of_rule_options}} = $_tok;
21644     push @item, $_tok;
21645
21646     }
21647
21648     Parse::RecDescent::_trace(q{Trying terminal: [/CHECK\\s+OPTION/i]}, Parse::RecDescent::_tracefirst($text),
21649             q{options},
21650             $tracelevel)
21651             if defined $::RD_TRACE;
21652     $lastsep = "";
21653     $expectation->is(q{/CHECK\\s+OPTION/i})->at($text);
21654
21655
21656     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHECK\s+OPTION)//i)
21657     {
21658
21659       $expectation->failed();
21660       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21661               Parse::RecDescent::_tracefirst($text))
21662           if defined $::RD_TRACE;
21663
21664       last;
21665     }
21666     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21667             . $& . q{])},
21668               Parse::RecDescent::_tracefirst($text))
21669           if defined $::RD_TRACE;
21670     push @item, $item{__PATTERN2__}=$&;
21671
21672
21673
21674     Parse::RecDescent::_trace(q{>>Matched production: [/WITH/i /CASCADED/i, or /LOCAL/i /CHECK\\s+OPTION/i]<<},
21675             Parse::RecDescent::_tracefirst($text),
21676             q{options},
21677             $tracelevel)
21678             if defined $::RD_TRACE;
21679     $_matched = 1;
21680     last;
21681   }
21682
21683
21684         unless ( $_matched || defined($return) || defined($score) )
21685   {
21686
21687
21688     $_[1] = $text;  # NOT SURE THIS IS NEEDED
21689     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
21690            Parse::RecDescent::_tracefirst($_[1]),
21691            q{options},
21692            $tracelevel)
21693           if defined $::RD_TRACE;
21694     return undef;
21695   }
21696   if (!defined($return) && defined($score))
21697   {
21698     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
21699             q{options},
21700             $tracelevel)
21701             if defined $::RD_TRACE;
21702     $return = $score_return;
21703   }
21704   splice @{$thisparser->{errors}}, $err_at;
21705   $return = $item[$#item] unless defined $return;
21706   if (defined $::RD_TRACE)
21707   {
21708     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
21709             $return . q{])}, "",
21710             q{options},
21711             $tracelevel);
21712     Parse::RecDescent::_trace(q{(consumed: [} .
21713             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
21714             Parse::RecDescent::_tracefirst($text),
21715             , q{options},
21716             $tracelevel)
21717   }
21718   $_[1] = $text;
21719   return $return;
21720 }
21721
21722 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
21723 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function
21724 {
21725   my $thisparser = $_[0];
21726   use vars q{$tracelevel};
21727   local $tracelevel = ($tracelevel||0)+1;
21728   $ERRORS = 0;
21729   my $thisrule = $thisparser->{"rules"}{"function"};
21730
21731   Parse::RecDescent::_trace(q{Trying rule: [function]},
21732           Parse::RecDescent::_tracefirst($_[1]),
21733           q{function},
21734           $tracelevel)
21735           if defined $::RD_TRACE;
21736
21737
21738   my $err_at = @{$thisparser->{errors}};
21739
21740   my $score;
21741   my $score_return;
21742   my $_tok;
21743   my $return = undef;
21744   my $_matched=0;
21745   my $commit=0;
21746   my @item = ();
21747   my %item = ();
21748   my $repeating =  defined($_[2]) && $_[2];
21749   my $_noactions = defined($_[3]) && $_[3];
21750    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
21751   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
21752   my $text;
21753   my $lastsep="";
21754   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
21755   $expectation->at($_[1]);
21756
21757   my $thisline;
21758   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
21759
21760
21761
21762   while (!$_matched && !$commit)
21763   {
21764
21765     Parse::RecDescent::_trace(q{Trying production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' <leftop: func_args /,/ func_args> ')']},
21766             Parse::RecDescent::_tracefirst($_[1]),
21767             q{function},
21768             $tracelevel)
21769             if defined $::RD_TRACE;
21770     my $thisprod = $thisrule->{"prods"}[0];
21771     $text = $_[1];
21772     my $_savetext;
21773     @item = (q{function});
21774     %item = (__RULE__ => q{function});
21775     my $repcount = 0;
21776
21777
21778     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_function]},
21779           Parse::RecDescent::_tracefirst($text),
21780           q{function},
21781           $tracelevel)
21782           if defined $::RD_TRACE;
21783     if (1) { no strict qw{refs};
21784     $expectation->is(q{})->at($text);
21785     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21786     {
21787
21788       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_function]>>},
21789               Parse::RecDescent::_tracefirst($text),
21790               q{function},
21791               $tracelevel)
21792               if defined $::RD_TRACE;
21793       $expectation->failed();
21794       last;
21795     }
21796     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_function]<< (return value: [}
21797           . $_tok . q{]},
21798
21799             Parse::RecDescent::_tracefirst($text),
21800             q{function},
21801             $tracelevel)
21802             if defined $::RD_TRACE;
21803     $item{q{_alternation_1_of_production_1_of_rule_function}} = $_tok;
21804     push @item, $_tok;
21805
21806     }
21807
21808     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
21809             Parse::RecDescent::_tracefirst($text),
21810             q{function},
21811             $tracelevel)
21812             if defined $::RD_TRACE;
21813     $lastsep = "";
21814     $expectation->is(q{'('})->at($text);
21815
21816
21817     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
21818     {
21819
21820       $expectation->failed();
21821       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
21822               Parse::RecDescent::_tracefirst($text))
21823               if defined $::RD_TRACE;
21824       last;
21825     }
21826     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21827             . $& . q{])},
21828               Parse::RecDescent::_tracefirst($text))
21829               if defined $::RD_TRACE;
21830     push @item, $item{__STRING1__}=$&;
21831
21832
21833     Parse::RecDescent::_trace(q{Trying operator: [<leftop: func_args /,/ func_args>]},
21834           Parse::RecDescent::_tracefirst($text),
21835           q{function},
21836           $tracelevel)
21837           if defined $::RD_TRACE;
21838     $expectation->is(q{<leftop: func_args /,/ func_args>})->at($text);
21839
21840     $_tok = undef;
21841     OPLOOP: while (1)
21842     {
21843       $repcount = 0;
21844       my  @item;
21845
21846       # MATCH LEFTARG
21847
21848     Parse::RecDescent::_trace(q{Trying subrule: [func_args]},
21849           Parse::RecDescent::_tracefirst($text),
21850           q{function},
21851           $tracelevel)
21852           if defined $::RD_TRACE;
21853     if (1) { no strict qw{refs};
21854     $expectation->is(q{func_args})->at($text);
21855     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21856     {
21857
21858       Parse::RecDescent::_trace(q{<<Didn't match subrule: [func_args]>>},
21859               Parse::RecDescent::_tracefirst($text),
21860               q{function},
21861               $tracelevel)
21862               if defined $::RD_TRACE;
21863       $expectation->failed();
21864       last;
21865     }
21866     Parse::RecDescent::_trace(q{>>Matched subrule: [func_args]<< (return value: [}
21867           . $_tok . q{]},
21868
21869             Parse::RecDescent::_tracefirst($text),
21870             q{function},
21871             $tracelevel)
21872             if defined $::RD_TRACE;
21873     $item{q{func_args}} = $_tok;
21874     push @item, $_tok;
21875
21876     }
21877
21878
21879       $repcount++;
21880
21881       my $savetext = $text;
21882       my $backtrack;
21883
21884       # MATCH (OP RIGHTARG)(s)
21885       while ($repcount < 100000000)
21886       {
21887       $backtrack = 0;
21888
21889     Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
21890             q{function},
21891             $tracelevel)
21892             if defined $::RD_TRACE;
21893     $lastsep = "";
21894     $expectation->is(q{/,/})->at($text);
21895
21896
21897     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
21898     {
21899
21900       $expectation->failed();
21901       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
21902               Parse::RecDescent::_tracefirst($text))
21903           if defined $::RD_TRACE;
21904
21905       last;
21906     }
21907     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21908             . $& . q{])},
21909               Parse::RecDescent::_tracefirst($text))
21910           if defined $::RD_TRACE;
21911     push @item, $item{__PATTERN1__}=$&;
21912
21913
21914       pop @item;
21915       if (defined $1) {push @item, $item{'func_args(s)'}=$1; $backtrack=1;}
21916
21917     Parse::RecDescent::_trace(q{Trying subrule: [func_args]},
21918           Parse::RecDescent::_tracefirst($text),
21919           q{function},
21920           $tracelevel)
21921           if defined $::RD_TRACE;
21922     if (1) { no strict qw{refs};
21923     $expectation->is(q{func_args})->at($text);
21924     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::func_args($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
21925     {
21926
21927       Parse::RecDescent::_trace(q{<<Didn't match subrule: [func_args]>>},
21928               Parse::RecDescent::_tracefirst($text),
21929               q{function},
21930               $tracelevel)
21931               if defined $::RD_TRACE;
21932       $expectation->failed();
21933       last;
21934     }
21935     Parse::RecDescent::_trace(q{>>Matched subrule: [func_args]<< (return value: [}
21936           . $_tok . q{]},
21937
21938             Parse::RecDescent::_tracefirst($text),
21939             q{function},
21940             $tracelevel)
21941             if defined $::RD_TRACE;
21942     $item{q{func_args}} = $_tok;
21943     push @item, $_tok;
21944
21945     }
21946
21947       $savetext = $text;
21948       $repcount++;
21949       }
21950       $text = $savetext;
21951       pop @item if $backtrack;
21952
21953       unless (@item) { undef $_tok; last }
21954       $_tok = [ @item ];
21955       last;
21956     }
21957
21958     unless ($repcount>=1)
21959     {
21960       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: func_args /,/ func_args>]>>},
21961               Parse::RecDescent::_tracefirst($text),
21962               q{function},
21963               $tracelevel)
21964               if defined $::RD_TRACE;
21965       $expectation->failed();
21966       last;
21967     }
21968     Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: func_args /,/ func_args>]<< (return value: [}
21969             . qq{@{$_tok||[]}} . q{]},
21970             Parse::RecDescent::_tracefirst($text),
21971             q{function},
21972             $tracelevel)
21973             if defined $::RD_TRACE;
21974
21975     push @item, $item{'func_args(s)'}=$_tok||[];
21976
21977
21978     Parse::RecDescent::_trace(q{Trying terminal: [')']},
21979             Parse::RecDescent::_tracefirst($text),
21980             q{function},
21981             $tracelevel)
21982             if defined $::RD_TRACE;
21983     $lastsep = "";
21984     $expectation->is(q{')'})->at($text);
21985
21986
21987     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
21988     {
21989
21990       $expectation->failed();
21991       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
21992               Parse::RecDescent::_tracefirst($text))
21993               if defined $::RD_TRACE;
21994       last;
21995     }
21996     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
21997             . $& . q{])},
21998               Parse::RecDescent::_tracefirst($text))
21999               if defined $::RD_TRACE;
22000     push @item, $item{__STRING2__}=$&;
22001
22002
22003
22004     Parse::RecDescent::_trace(q{>>Matched production: [/SYSIBM\\.|/i, or /SYSFUN\\.|/i, or userdefined_function '(' <leftop: func_args /,/ func_args> ')']<<},
22005             Parse::RecDescent::_tracefirst($text),
22006             q{function},
22007             $tracelevel)
22008             if defined $::RD_TRACE;
22009     $_matched = 1;
22010     last;
22011   }
22012
22013
22014         unless ( $_matched || defined($return) || defined($score) )
22015   {
22016
22017
22018     $_[1] = $text;  # NOT SURE THIS IS NEEDED
22019     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
22020            Parse::RecDescent::_tracefirst($_[1]),
22021            q{function},
22022            $tracelevel)
22023           if defined $::RD_TRACE;
22024     return undef;
22025   }
22026   if (!defined($return) && defined($score))
22027   {
22028     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22029             q{function},
22030             $tracelevel)
22031             if defined $::RD_TRACE;
22032     $return = $score_return;
22033   }
22034   splice @{$thisparser->{errors}}, $err_at;
22035   $return = $item[$#item] unless defined $return;
22036   if (defined $::RD_TRACE)
22037   {
22038     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22039             $return . q{])}, "",
22040             q{function},
22041             $tracelevel);
22042     Parse::RecDescent::_trace(q{(consumed: [} .
22043             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
22044             Parse::RecDescent::_tracefirst($text),
22045             , q{function},
22046             $tracelevel)
22047   }
22048   $_[1] = $text;
22049   return $return;
22050 }
22051
22052 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22053 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_41_of_rule_sysibm_function
22054 {
22055   my $thisparser = $_[0];
22056   use vars q{$tracelevel};
22057   local $tracelevel = ($tracelevel||0)+1;
22058   $ERRORS = 0;
22059   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_41_of_rule_sysibm_function"};
22060
22061   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_41_of_rule_sysibm_function]},
22062           Parse::RecDescent::_tracefirst($_[1]),
22063           q{_alternation_1_of_production_41_of_rule_sysibm_function},
22064           $tracelevel)
22065           if defined $::RD_TRACE;
22066
22067
22068   my $err_at = @{$thisparser->{errors}};
22069
22070   my $score;
22071   my $score_return;
22072   my $_tok;
22073   my $return = undef;
22074   my $_matched=0;
22075   my $commit=0;
22076   my @item = ();
22077   my %item = ();
22078   my $repeating =  defined($_[2]) && $_[2];
22079   my $_noactions = defined($_[3]) && $_[3];
22080    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
22081   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
22082   my $text;
22083   my $lastsep="";
22084   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22085   $expectation->at($_[1]);
22086
22087   my $thisline;
22088   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22089
22090
22091
22092   while (!$_matched && !$commit)
22093   {
22094
22095     Parse::RecDescent::_trace(q{Trying production: [/INTEGER/i]},
22096             Parse::RecDescent::_tracefirst($_[1]),
22097             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22098             $tracelevel)
22099             if defined $::RD_TRACE;
22100     my $thisprod = $thisrule->{"prods"}[0];
22101     $text = $_[1];
22102     my $_savetext;
22103     @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
22104     %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
22105     my $repcount = 0;
22106
22107
22108     Parse::RecDescent::_trace(q{Trying terminal: [/INTEGER/i]}, Parse::RecDescent::_tracefirst($text),
22109             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22110             $tracelevel)
22111             if defined $::RD_TRACE;
22112     $lastsep = "";
22113     $expectation->is(q{})->at($text);
22114
22115
22116     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INTEGER)//i)
22117     {
22118
22119       $expectation->failed();
22120       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
22121               Parse::RecDescent::_tracefirst($text))
22122           if defined $::RD_TRACE;
22123
22124       last;
22125     }
22126     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22127             . $& . q{])},
22128               Parse::RecDescent::_tracefirst($text))
22129           if defined $::RD_TRACE;
22130     push @item, $item{__PATTERN1__}=$&;
22131
22132
22133
22134     Parse::RecDescent::_trace(q{>>Matched production: [/INTEGER/i]<<},
22135             Parse::RecDescent::_tracefirst($text),
22136             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22137             $tracelevel)
22138             if defined $::RD_TRACE;
22139     $_matched = 1;
22140     last;
22141   }
22142
22143
22144   while (!$_matched && !$commit)
22145   {
22146
22147     Parse::RecDescent::_trace(q{Trying production: [/INT/]},
22148             Parse::RecDescent::_tracefirst($_[1]),
22149             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22150             $tracelevel)
22151             if defined $::RD_TRACE;
22152     my $thisprod = $thisrule->{"prods"}[1];
22153     $text = $_[1];
22154     my $_savetext;
22155     @item = (q{_alternation_1_of_production_41_of_rule_sysibm_function});
22156     %item = (__RULE__ => q{_alternation_1_of_production_41_of_rule_sysibm_function});
22157     my $repcount = 0;
22158
22159
22160     Parse::RecDescent::_trace(q{Trying terminal: [/INT/]}, Parse::RecDescent::_tracefirst($text),
22161             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22162             $tracelevel)
22163             if defined $::RD_TRACE;
22164     $lastsep = "";
22165     $expectation->is(q{})->at($text);
22166
22167
22168     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INT)//)
22169     {
22170
22171       $expectation->failed();
22172       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
22173               Parse::RecDescent::_tracefirst($text))
22174           if defined $::RD_TRACE;
22175
22176       last;
22177     }
22178     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22179             . $& . q{])},
22180               Parse::RecDescent::_tracefirst($text))
22181           if defined $::RD_TRACE;
22182     push @item, $item{__PATTERN1__}=$&;
22183
22184
22185
22186     Parse::RecDescent::_trace(q{>>Matched production: [/INT/]<<},
22187             Parse::RecDescent::_tracefirst($text),
22188             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22189             $tracelevel)
22190             if defined $::RD_TRACE;
22191     $_matched = 1;
22192     last;
22193   }
22194
22195
22196         unless ( $_matched || defined($return) || defined($score) )
22197   {
22198
22199
22200     $_[1] = $text;  # NOT SURE THIS IS NEEDED
22201     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
22202            Parse::RecDescent::_tracefirst($_[1]),
22203            q{_alternation_1_of_production_41_of_rule_sysibm_function},
22204            $tracelevel)
22205           if defined $::RD_TRACE;
22206     return undef;
22207   }
22208   if (!defined($return) && defined($score))
22209   {
22210     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22211             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22212             $tracelevel)
22213             if defined $::RD_TRACE;
22214     $return = $score_return;
22215   }
22216   splice @{$thisparser->{errors}}, $err_at;
22217   $return = $item[$#item] unless defined $return;
22218   if (defined $::RD_TRACE)
22219   {
22220     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22221             $return . q{])}, "",
22222             q{_alternation_1_of_production_41_of_rule_sysibm_function},
22223             $tracelevel);
22224     Parse::RecDescent::_trace(q{(consumed: [} .
22225             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
22226             Parse::RecDescent::_tracefirst($text),
22227             , q{_alternation_1_of_production_41_of_rule_sysibm_function},
22228             $tracelevel)
22229   }
22230   $_[1] = $text;
22231   return $return;
22232 }
22233
22234 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22235 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_case_expression
22236 {
22237   my $thisparser = $_[0];
22238   use vars q{$tracelevel};
22239   local $tracelevel = ($tracelevel||0)+1;
22240   $ERRORS = 0;
22241   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_case_expression"};
22242
22243   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_case_expression]},
22244           Parse::RecDescent::_tracefirst($_[1]),
22245           q{_alternation_1_of_production_1_of_rule_case_expression},
22246           $tracelevel)
22247           if defined $::RD_TRACE;
22248
22249
22250   my $err_at = @{$thisparser->{errors}};
22251
22252   my $score;
22253   my $score_return;
22254   my $_tok;
22255   my $return = undef;
22256   my $_matched=0;
22257   my $commit=0;
22258   my @item = ();
22259   my %item = ();
22260   my $repeating =  defined($_[2]) && $_[2];
22261   my $_noactions = defined($_[3]) && $_[3];
22262    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
22263   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
22264   my $text;
22265   my $lastsep="";
22266   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22267   $expectation->at($_[1]);
22268
22269   my $thisline;
22270   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22271
22272
22273
22274   while (!$_matched && !$commit)
22275   {
22276
22277     Parse::RecDescent::_trace(q{Trying production: [searched_when_clause]},
22278             Parse::RecDescent::_tracefirst($_[1]),
22279             q{_alternation_1_of_production_1_of_rule_case_expression},
22280             $tracelevel)
22281             if defined $::RD_TRACE;
22282     my $thisprod = $thisrule->{"prods"}[0];
22283     $text = $_[1];
22284     my $_savetext;
22285     @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
22286     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
22287     my $repcount = 0;
22288
22289
22290     Parse::RecDescent::_trace(q{Trying subrule: [searched_when_clause]},
22291           Parse::RecDescent::_tracefirst($text),
22292           q{_alternation_1_of_production_1_of_rule_case_expression},
22293           $tracelevel)
22294           if defined $::RD_TRACE;
22295     if (1) { no strict qw{refs};
22296     $expectation->is(q{})->at($text);
22297     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::searched_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22298     {
22299
22300       Parse::RecDescent::_trace(q{<<Didn't match subrule: [searched_when_clause]>>},
22301               Parse::RecDescent::_tracefirst($text),
22302               q{_alternation_1_of_production_1_of_rule_case_expression},
22303               $tracelevel)
22304               if defined $::RD_TRACE;
22305       $expectation->failed();
22306       last;
22307     }
22308     Parse::RecDescent::_trace(q{>>Matched subrule: [searched_when_clause]<< (return value: [}
22309           . $_tok . q{]},
22310
22311             Parse::RecDescent::_tracefirst($text),
22312             q{_alternation_1_of_production_1_of_rule_case_expression},
22313             $tracelevel)
22314             if defined $::RD_TRACE;
22315     $item{q{searched_when_clause}} = $_tok;
22316     push @item, $_tok;
22317
22318     }
22319
22320
22321     Parse::RecDescent::_trace(q{>>Matched production: [searched_when_clause]<<},
22322             Parse::RecDescent::_tracefirst($text),
22323             q{_alternation_1_of_production_1_of_rule_case_expression},
22324             $tracelevel)
22325             if defined $::RD_TRACE;
22326     $_matched = 1;
22327     last;
22328   }
22329
22330
22331   while (!$_matched && !$commit)
22332   {
22333
22334     Parse::RecDescent::_trace(q{Trying production: [simple_when_clause]},
22335             Parse::RecDescent::_tracefirst($_[1]),
22336             q{_alternation_1_of_production_1_of_rule_case_expression},
22337             $tracelevel)
22338             if defined $::RD_TRACE;
22339     my $thisprod = $thisrule->{"prods"}[1];
22340     $text = $_[1];
22341     my $_savetext;
22342     @item = (q{_alternation_1_of_production_1_of_rule_case_expression});
22343     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_case_expression});
22344     my $repcount = 0;
22345
22346
22347     Parse::RecDescent::_trace(q{Trying subrule: [simple_when_clause]},
22348           Parse::RecDescent::_tracefirst($text),
22349           q{_alternation_1_of_production_1_of_rule_case_expression},
22350           $tracelevel)
22351           if defined $::RD_TRACE;
22352     if (1) { no strict qw{refs};
22353     $expectation->is(q{})->at($text);
22354     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::simple_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22355     {
22356
22357       Parse::RecDescent::_trace(q{<<Didn't match subrule: [simple_when_clause]>>},
22358               Parse::RecDescent::_tracefirst($text),
22359               q{_alternation_1_of_production_1_of_rule_case_expression},
22360               $tracelevel)
22361               if defined $::RD_TRACE;
22362       $expectation->failed();
22363       last;
22364     }
22365     Parse::RecDescent::_trace(q{>>Matched subrule: [simple_when_clause]<< (return value: [}
22366           . $_tok . q{]},
22367
22368             Parse::RecDescent::_tracefirst($text),
22369             q{_alternation_1_of_production_1_of_rule_case_expression},
22370             $tracelevel)
22371             if defined $::RD_TRACE;
22372     $item{q{simple_when_clause}} = $_tok;
22373     push @item, $_tok;
22374
22375     }
22376
22377
22378     Parse::RecDescent::_trace(q{>>Matched production: [simple_when_clause]<<},
22379             Parse::RecDescent::_tracefirst($text),
22380             q{_alternation_1_of_production_1_of_rule_case_expression},
22381             $tracelevel)
22382             if defined $::RD_TRACE;
22383     $_matched = 1;
22384     last;
22385   }
22386
22387
22388         unless ( $_matched || defined($return) || defined($score) )
22389   {
22390
22391
22392     $_[1] = $text;  # NOT SURE THIS IS NEEDED
22393     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
22394            Parse::RecDescent::_tracefirst($_[1]),
22395            q{_alternation_1_of_production_1_of_rule_case_expression},
22396            $tracelevel)
22397           if defined $::RD_TRACE;
22398     return undef;
22399   }
22400   if (!defined($return) && defined($score))
22401   {
22402     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22403             q{_alternation_1_of_production_1_of_rule_case_expression},
22404             $tracelevel)
22405             if defined $::RD_TRACE;
22406     $return = $score_return;
22407   }
22408   splice @{$thisparser->{errors}}, $err_at;
22409   $return = $item[$#item] unless defined $return;
22410   if (defined $::RD_TRACE)
22411   {
22412     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22413             $return . q{])}, "",
22414             q{_alternation_1_of_production_1_of_rule_case_expression},
22415             $tracelevel);
22416     Parse::RecDescent::_trace(q{(consumed: [} .
22417             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
22418             Parse::RecDescent::_tracefirst($text),
22419             , q{_alternation_1_of_production_1_of_rule_case_expression},
22420             $tracelevel)
22421   }
22422   $_[1] = $text;
22423   return $return;
22424 }
22425
22426 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22427 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause
22428 {
22429   my $thisparser = $_[0];
22430   use vars q{$tracelevel};
22431   local $tracelevel = ($tracelevel||0)+1;
22432   $ERRORS = 0;
22433   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_window_order_clause"};
22434
22435   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
22436           Parse::RecDescent::_tracefirst($_[1]),
22437           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22438           $tracelevel)
22439           if defined $::RD_TRACE;
22440
22441
22442   my $err_at = @{$thisparser->{errors}};
22443
22444   my $score;
22445   my $score_return;
22446   my $_tok;
22447   my $return = undef;
22448   my $_matched=0;
22449   my $commit=0;
22450   my @item = ();
22451   my %item = ();
22452   my $repeating =  defined($_[2]) && $_[2];
22453   my $_noactions = defined($_[3]) && $_[3];
22454    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
22455   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
22456   my $text;
22457   my $lastsep="";
22458   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22459   $expectation->at($_[1]);
22460
22461   my $thisline;
22462   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22463
22464
22465
22466   while (!$_matched && !$commit)
22467   {
22468
22469     Parse::RecDescent::_trace(q{Trying production: [sort_key_expression asc_option, or desc_option]},
22470             Parse::RecDescent::_tracefirst($_[1]),
22471             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22472             $tracelevel)
22473             if defined $::RD_TRACE;
22474     my $thisprod = $thisrule->{"prods"}[0];
22475     $text = $_[1];
22476     my $_savetext;
22477     @item = (q{_alternation_1_of_production_1_of_rule_window_order_clause});
22478     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_window_order_clause});
22479     my $repcount = 0;
22480
22481
22482     Parse::RecDescent::_trace(q{Trying subrule: [sort_key_expression]},
22483           Parse::RecDescent::_tracefirst($text),
22484           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22485           $tracelevel)
22486           if defined $::RD_TRACE;
22487     if (1) { no strict qw{refs};
22488     $expectation->is(q{})->at($text);
22489     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sort_key_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22490     {
22491
22492       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sort_key_expression]>>},
22493               Parse::RecDescent::_tracefirst($text),
22494               q{_alternation_1_of_production_1_of_rule_window_order_clause},
22495               $tracelevel)
22496               if defined $::RD_TRACE;
22497       $expectation->failed();
22498       last;
22499     }
22500     Parse::RecDescent::_trace(q{>>Matched subrule: [sort_key_expression]<< (return value: [}
22501           . $_tok . q{]},
22502
22503             Parse::RecDescent::_tracefirst($text),
22504             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22505             $tracelevel)
22506             if defined $::RD_TRACE;
22507     $item{q{sort_key_expression}} = $_tok;
22508     push @item, $_tok;
22509
22510     }
22511
22512     Parse::RecDescent::_trace(q{Trying repeated subrule: [asc_option, or desc_option]},
22513           Parse::RecDescent::_tracefirst($text),
22514           q{_alternation_1_of_production_1_of_rule_window_order_clause},
22515           $tracelevel)
22516           if defined $::RD_TRACE;
22517     $expectation->is(q{asc_option, or desc_option})->at($text);
22518
22519     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause, 0, 1, $_noactions,$expectation,undef)))
22520     {
22521       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [asc_option, or desc_option]>>},
22522               Parse::RecDescent::_tracefirst($text),
22523               q{_alternation_1_of_production_1_of_rule_window_order_clause},
22524               $tracelevel)
22525               if defined $::RD_TRACE;
22526       last;
22527     }
22528     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause]<< (}
22529           . @$_tok . q{ times)},
22530
22531             Parse::RecDescent::_tracefirst($text),
22532             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22533             $tracelevel)
22534             if defined $::RD_TRACE;
22535     $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause(?)}} = $_tok;
22536     push @item, $_tok;
22537
22538
22539
22540
22541     Parse::RecDescent::_trace(q{>>Matched production: [sort_key_expression asc_option, or desc_option]<<},
22542             Parse::RecDescent::_tracefirst($text),
22543             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22544             $tracelevel)
22545             if defined $::RD_TRACE;
22546     $_matched = 1;
22547     last;
22548   }
22549
22550
22551         unless ( $_matched || defined($return) || defined($score) )
22552   {
22553
22554
22555     $_[1] = $text;  # NOT SURE THIS IS NEEDED
22556     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
22557            Parse::RecDescent::_tracefirst($_[1]),
22558            q{_alternation_1_of_production_1_of_rule_window_order_clause},
22559            $tracelevel)
22560           if defined $::RD_TRACE;
22561     return undef;
22562   }
22563   if (!defined($return) && defined($score))
22564   {
22565     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
22566             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22567             $tracelevel)
22568             if defined $::RD_TRACE;
22569     $return = $score_return;
22570   }
22571   splice @{$thisparser->{errors}}, $err_at;
22572   $return = $item[$#item] unless defined $return;
22573   if (defined $::RD_TRACE)
22574   {
22575     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
22576             $return . q{])}, "",
22577             q{_alternation_1_of_production_1_of_rule_window_order_clause},
22578             $tracelevel);
22579     Parse::RecDescent::_trace(q{(consumed: [} .
22580             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
22581             Parse::RecDescent::_tracefirst($text),
22582             , q{_alternation_1_of_production_1_of_rule_window_order_clause},
22583             $tracelevel)
22584   }
22585   $_[1] = $text;
22586   return $return;
22587 }
22588
22589 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
22590 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::create
22591 {
22592   my $thisparser = $_[0];
22593   use vars q{$tracelevel};
22594   local $tracelevel = ($tracelevel||0)+1;
22595   $ERRORS = 0;
22596   my $thisrule = $thisparser->{"rules"}{"create"};
22597
22598   Parse::RecDescent::_trace(q{Trying rule: [create]},
22599           Parse::RecDescent::_tracefirst($_[1]),
22600           q{create},
22601           $tracelevel)
22602           if defined $::RD_TRACE;
22603
22604
22605   my $err_at = @{$thisparser->{errors}};
22606
22607   my $score;
22608   my $score_return;
22609   my $_tok;
22610   my $return = undef;
22611   my $_matched=0;
22612   my $commit=0;
22613   my @item = ();
22614   my %item = ();
22615   my $repeating =  defined($_[2]) && $_[2];
22616   my $_noactions = defined($_[3]) && $_[3];
22617    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
22618   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
22619   my $text;
22620   my $lastsep="";
22621   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
22622   $expectation->at($_[1]);
22623
22624   my $thisline;
22625   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
22626
22627
22628
22629   while (!$_matched && !$commit)
22630   {
22631
22632     Parse::RecDescent::_trace(q{Trying production: [CREATE TRIGGER trigger_name before type /ON/i table_name reference_b /FOR EACH ROW/i 'MODE DB2SQL' triggered_action]},
22633             Parse::RecDescent::_tracefirst($_[1]),
22634             q{create},
22635             $tracelevel)
22636             if defined $::RD_TRACE;
22637     my $thisprod = $thisrule->{"prods"}[0];
22638     $text = $_[1];
22639     my $_savetext;
22640     @item = (q{create});
22641     %item = (__RULE__ => q{create});
22642     my $repcount = 0;
22643
22644
22645     Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
22646           Parse::RecDescent::_tracefirst($text),
22647           q{create},
22648           $tracelevel)
22649           if defined $::RD_TRACE;
22650     if (1) { no strict qw{refs};
22651     $expectation->is(q{})->at($text);
22652     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22653     {
22654
22655       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
22656               Parse::RecDescent::_tracefirst($text),
22657               q{create},
22658               $tracelevel)
22659               if defined $::RD_TRACE;
22660       $expectation->failed();
22661       last;
22662     }
22663     Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
22664           . $_tok . q{]},
22665
22666             Parse::RecDescent::_tracefirst($text),
22667             q{create},
22668             $tracelevel)
22669             if defined $::RD_TRACE;
22670     $item{q{CREATE}} = $_tok;
22671     push @item, $_tok;
22672
22673     }
22674
22675     Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
22676           Parse::RecDescent::_tracefirst($text),
22677           q{create},
22678           $tracelevel)
22679           if defined $::RD_TRACE;
22680     if (1) { no strict qw{refs};
22681     $expectation->is(q{TRIGGER})->at($text);
22682     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22683     {
22684
22685       Parse::RecDescent::_trace(q{<<Didn't match subrule: [TRIGGER]>>},
22686               Parse::RecDescent::_tracefirst($text),
22687               q{create},
22688               $tracelevel)
22689               if defined $::RD_TRACE;
22690       $expectation->failed();
22691       last;
22692     }
22693     Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
22694           . $_tok . q{]},
22695
22696             Parse::RecDescent::_tracefirst($text),
22697             q{create},
22698             $tracelevel)
22699             if defined $::RD_TRACE;
22700     $item{q{TRIGGER}} = $_tok;
22701     push @item, $_tok;
22702
22703     }
22704
22705     Parse::RecDescent::_trace(q{Trying subrule: [trigger_name]},
22706           Parse::RecDescent::_tracefirst($text),
22707           q{create},
22708           $tracelevel)
22709           if defined $::RD_TRACE;
22710     if (1) { no strict qw{refs};
22711     $expectation->is(q{trigger_name})->at($text);
22712     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22713     {
22714
22715       Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_name]>>},
22716               Parse::RecDescent::_tracefirst($text),
22717               q{create},
22718               $tracelevel)
22719               if defined $::RD_TRACE;
22720       $expectation->failed();
22721       last;
22722     }
22723     Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_name]<< (return value: [}
22724           . $_tok . q{]},
22725
22726             Parse::RecDescent::_tracefirst($text),
22727             q{create},
22728             $tracelevel)
22729             if defined $::RD_TRACE;
22730     $item{q{trigger_name}} = $_tok;
22731     push @item, $_tok;
22732
22733     }
22734
22735     Parse::RecDescent::_trace(q{Trying subrule: [before]},
22736           Parse::RecDescent::_tracefirst($text),
22737           q{create},
22738           $tracelevel)
22739           if defined $::RD_TRACE;
22740     if (1) { no strict qw{refs};
22741     $expectation->is(q{before})->at($text);
22742     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22743     {
22744
22745       Parse::RecDescent::_trace(q{<<Didn't match subrule: [before]>>},
22746               Parse::RecDescent::_tracefirst($text),
22747               q{create},
22748               $tracelevel)
22749               if defined $::RD_TRACE;
22750       $expectation->failed();
22751       last;
22752     }
22753     Parse::RecDescent::_trace(q{>>Matched subrule: [before]<< (return value: [}
22754           . $_tok . q{]},
22755
22756             Parse::RecDescent::_tracefirst($text),
22757             q{create},
22758             $tracelevel)
22759             if defined $::RD_TRACE;
22760     $item{q{before}} = $_tok;
22761     push @item, $_tok;
22762
22763     }
22764
22765     Parse::RecDescent::_trace(q{Trying subrule: [type]},
22766           Parse::RecDescent::_tracefirst($text),
22767           q{create},
22768           $tracelevel)
22769           if defined $::RD_TRACE;
22770     if (1) { no strict qw{refs};
22771     $expectation->is(q{type})->at($text);
22772     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22773     {
22774
22775       Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
22776               Parse::RecDescent::_tracefirst($text),
22777               q{create},
22778               $tracelevel)
22779               if defined $::RD_TRACE;
22780       $expectation->failed();
22781       last;
22782     }
22783     Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
22784           . $_tok . q{]},
22785
22786             Parse::RecDescent::_tracefirst($text),
22787             q{create},
22788             $tracelevel)
22789             if defined $::RD_TRACE;
22790     $item{q{type}} = $_tok;
22791     push @item, $_tok;
22792
22793     }
22794
22795     Parse::RecDescent::_trace(q{Trying terminal: [/ON/i]}, Parse::RecDescent::_tracefirst($text),
22796             q{create},
22797             $tracelevel)
22798             if defined $::RD_TRACE;
22799     $lastsep = "";
22800     $expectation->is(q{/ON/i})->at($text);
22801
22802
22803     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ON)//i)
22804     {
22805
22806       $expectation->failed();
22807       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
22808               Parse::RecDescent::_tracefirst($text))
22809           if defined $::RD_TRACE;
22810
22811       last;
22812     }
22813     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22814             . $& . q{])},
22815               Parse::RecDescent::_tracefirst($text))
22816           if defined $::RD_TRACE;
22817     push @item, $item{__PATTERN1__}=$&;
22818
22819
22820     Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
22821           Parse::RecDescent::_tracefirst($text),
22822           q{create},
22823           $tracelevel)
22824           if defined $::RD_TRACE;
22825     if (1) { no strict qw{refs};
22826     $expectation->is(q{table_name})->at($text);
22827     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22828     {
22829
22830       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
22831               Parse::RecDescent::_tracefirst($text),
22832               q{create},
22833               $tracelevel)
22834               if defined $::RD_TRACE;
22835       $expectation->failed();
22836       last;
22837     }
22838     Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
22839           . $_tok . q{]},
22840
22841             Parse::RecDescent::_tracefirst($text),
22842             q{create},
22843             $tracelevel)
22844             if defined $::RD_TRACE;
22845     $item{q{table_name}} = $_tok;
22846     push @item, $_tok;
22847
22848     }
22849
22850     Parse::RecDescent::_trace(q{Trying repeated subrule: [reference_b]},
22851           Parse::RecDescent::_tracefirst($text),
22852           q{create},
22853           $tracelevel)
22854           if defined $::RD_TRACE;
22855     $expectation->is(q{reference_b})->at($text);
22856
22857     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b, 0, 1, $_noactions,$expectation,undef)))
22858     {
22859       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [reference_b]>>},
22860               Parse::RecDescent::_tracefirst($text),
22861               q{create},
22862               $tracelevel)
22863               if defined $::RD_TRACE;
22864       last;
22865     }
22866     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [reference_b]<< (}
22867           . @$_tok . q{ times)},
22868
22869             Parse::RecDescent::_tracefirst($text),
22870             q{create},
22871             $tracelevel)
22872             if defined $::RD_TRACE;
22873     $item{q{reference_b(?)}} = $_tok;
22874     push @item, $_tok;
22875
22876
22877
22878     Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW/i]}, Parse::RecDescent::_tracefirst($text),
22879             q{create},
22880             $tracelevel)
22881             if defined $::RD_TRACE;
22882     $lastsep = "";
22883     $expectation->is(q{/FOR EACH ROW/i})->at($text);
22884
22885
22886     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOR EACH ROW)//i)
22887     {
22888
22889       $expectation->failed();
22890       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
22891               Parse::RecDescent::_tracefirst($text))
22892           if defined $::RD_TRACE;
22893
22894       last;
22895     }
22896     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22897             . $& . q{])},
22898               Parse::RecDescent::_tracefirst($text))
22899           if defined $::RD_TRACE;
22900     push @item, $item{__PATTERN2__}=$&;
22901
22902
22903     Parse::RecDescent::_trace(q{Trying terminal: ['MODE DB2SQL']},
22904             Parse::RecDescent::_tracefirst($text),
22905             q{create},
22906             $tracelevel)
22907             if defined $::RD_TRACE;
22908     $lastsep = "";
22909     $expectation->is(q{'MODE DB2SQL'})->at($text);
22910
22911
22912     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\AMODE\ DB2SQL//)
22913     {
22914
22915       $expectation->failed();
22916       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
22917               Parse::RecDescent::_tracefirst($text))
22918               if defined $::RD_TRACE;
22919       last;
22920     }
22921     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
22922             . $& . q{])},
22923               Parse::RecDescent::_tracefirst($text))
22924               if defined $::RD_TRACE;
22925     push @item, $item{__STRING1__}=$&;
22926
22927
22928     Parse::RecDescent::_trace(q{Trying subrule: [triggered_action]},
22929           Parse::RecDescent::_tracefirst($text),
22930           q{create},
22931           $tracelevel)
22932           if defined $::RD_TRACE;
22933     if (1) { no strict qw{refs};
22934     $expectation->is(q{triggered_action})->at($text);
22935     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
22936     {
22937
22938       Parse::RecDescent::_trace(q{<<Didn't match subrule: [triggered_action]>>},
22939               Parse::RecDescent::_tracefirst($text),
22940               q{create},
22941               $tracelevel)
22942               if defined $::RD_TRACE;
22943       $expectation->failed();
22944       last;
22945     }
22946     Parse::RecDescent::_trace(q{>>Matched subrule: [triggered_action]<< (return value: [}
22947           . $_tok . q{]},
22948
22949             Parse::RecDescent::_tracefirst($text),
22950             q{create},
22951             $tracelevel)
22952             if defined $::RD_TRACE;
22953     $item{q{triggered_action}} = $_tok;
22954     push @item, $_tok;
22955
22956     }
22957
22958     Parse::RecDescent::_trace(q{Trying action},
22959             Parse::RecDescent::_tracefirst($text),
22960             q{create},
22961             $tracelevel)
22962             if defined $::RD_TRACE;
22963
22964
22965     $_tok = ($_noactions) ? 0 : do {
22966     my $table_name = $item{'table_name'}{'name'};
22967     $return =  {
22968         table      => $table_name,
22969         schema     => $item{'trigger_name'}{'schema'},
22970         name       => $item{'trigger_name'}{'name'},
22971         when       => 'before',
22972         db_event   => $item{'type'}->{'event'},
22973         fields     => $item{'type'}{'fields'},
22974         condition  => $item{'triggered_action'}{'condition'},
22975         reference  => $item{'reference_b'},
22976         granularity => $item[9],
22977         action     => $item{'triggered_action'}{'statement'}
22978     };
22979
22980     push @triggers, $return;
22981 };
22982     unless (defined $_tok)
22983     {
22984       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
22985           if defined $::RD_TRACE;
22986       last;
22987     }
22988     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
22989             . $_tok . q{])},
22990             Parse::RecDescent::_tracefirst($text))
22991             if defined $::RD_TRACE;
22992     push @item, $_tok;
22993     $item{__ACTION1__}=$_tok;
22994
22995
22996
22997     Parse::RecDescent::_trace(q{>>Matched production: [CREATE TRIGGER trigger_name before type /ON/i table_name reference_b /FOR EACH ROW/i 'MODE DB2SQL' triggered_action]<<},
22998             Parse::RecDescent::_tracefirst($text),
22999             q{create},
23000             $tracelevel)
23001             if defined $::RD_TRACE;
23002     $_matched = 1;
23003     last;
23004   }
23005
23006
23007   while (!$_matched && !$commit)
23008   {
23009
23010     Parse::RecDescent::_trace(q{Trying production: [CREATE TRIGGER trigger_name after type /ON/i table_name reference_a /FOR EACH ROW|FOR EACH STATEMENT/i 'MODE DB2SQL' triggered_action]},
23011             Parse::RecDescent::_tracefirst($_[1]),
23012             q{create},
23013             $tracelevel)
23014             if defined $::RD_TRACE;
23015     my $thisprod = $thisrule->{"prods"}[1];
23016     $text = $_[1];
23017     my $_savetext;
23018     @item = (q{create});
23019     %item = (__RULE__ => q{create});
23020     my $repcount = 0;
23021
23022
23023     Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
23024           Parse::RecDescent::_tracefirst($text),
23025           q{create},
23026           $tracelevel)
23027           if defined $::RD_TRACE;
23028     if (1) { no strict qw{refs};
23029     $expectation->is(q{})->at($text);
23030     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23031     {
23032
23033       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
23034               Parse::RecDescent::_tracefirst($text),
23035               q{create},
23036               $tracelevel)
23037               if defined $::RD_TRACE;
23038       $expectation->failed();
23039       last;
23040     }
23041     Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
23042           . $_tok . q{]},
23043
23044             Parse::RecDescent::_tracefirst($text),
23045             q{create},
23046             $tracelevel)
23047             if defined $::RD_TRACE;
23048     $item{q{CREATE}} = $_tok;
23049     push @item, $_tok;
23050
23051     }
23052
23053     Parse::RecDescent::_trace(q{Trying subrule: [TRIGGER]},
23054           Parse::RecDescent::_tracefirst($text),
23055           q{create},
23056           $tracelevel)
23057           if defined $::RD_TRACE;
23058     if (1) { no strict qw{refs};
23059     $expectation->is(q{TRIGGER})->at($text);
23060     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23061     {
23062
23063       Parse::RecDescent::_trace(q{<<Didn't match subrule: [TRIGGER]>>},
23064               Parse::RecDescent::_tracefirst($text),
23065               q{create},
23066               $tracelevel)
23067               if defined $::RD_TRACE;
23068       $expectation->failed();
23069       last;
23070     }
23071     Parse::RecDescent::_trace(q{>>Matched subrule: [TRIGGER]<< (return value: [}
23072           . $_tok . q{]},
23073
23074             Parse::RecDescent::_tracefirst($text),
23075             q{create},
23076             $tracelevel)
23077             if defined $::RD_TRACE;
23078     $item{q{TRIGGER}} = $_tok;
23079     push @item, $_tok;
23080
23081     }
23082
23083     Parse::RecDescent::_trace(q{Trying subrule: [trigger_name]},
23084           Parse::RecDescent::_tracefirst($text),
23085           q{create},
23086           $tracelevel)
23087           if defined $::RD_TRACE;
23088     if (1) { no strict qw{refs};
23089     $expectation->is(q{trigger_name})->at($text);
23090     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::trigger_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23091     {
23092
23093       Parse::RecDescent::_trace(q{<<Didn't match subrule: [trigger_name]>>},
23094               Parse::RecDescent::_tracefirst($text),
23095               q{create},
23096               $tracelevel)
23097               if defined $::RD_TRACE;
23098       $expectation->failed();
23099       last;
23100     }
23101     Parse::RecDescent::_trace(q{>>Matched subrule: [trigger_name]<< (return value: [}
23102           . $_tok . q{]},
23103
23104             Parse::RecDescent::_tracefirst($text),
23105             q{create},
23106             $tracelevel)
23107             if defined $::RD_TRACE;
23108     $item{q{trigger_name}} = $_tok;
23109     push @item, $_tok;
23110
23111     }
23112
23113     Parse::RecDescent::_trace(q{Trying subrule: [after]},
23114           Parse::RecDescent::_tracefirst($text),
23115           q{create},
23116           $tracelevel)
23117           if defined $::RD_TRACE;
23118     if (1) { no strict qw{refs};
23119     $expectation->is(q{after})->at($text);
23120     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::after($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23121     {
23122
23123       Parse::RecDescent::_trace(q{<<Didn't match subrule: [after]>>},
23124               Parse::RecDescent::_tracefirst($text),
23125               q{create},
23126               $tracelevel)
23127               if defined $::RD_TRACE;
23128       $expectation->failed();
23129       last;
23130     }
23131     Parse::RecDescent::_trace(q{>>Matched subrule: [after]<< (return value: [}
23132           . $_tok . q{]},
23133
23134             Parse::RecDescent::_tracefirst($text),
23135             q{create},
23136             $tracelevel)
23137             if defined $::RD_TRACE;
23138     $item{q{after}} = $_tok;
23139     push @item, $_tok;
23140
23141     }
23142
23143     Parse::RecDescent::_trace(q{Trying subrule: [type]},
23144           Parse::RecDescent::_tracefirst($text),
23145           q{create},
23146           $tracelevel)
23147           if defined $::RD_TRACE;
23148     if (1) { no strict qw{refs};
23149     $expectation->is(q{type})->at($text);
23150     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23151     {
23152
23153       Parse::RecDescent::_trace(q{<<Didn't match subrule: [type]>>},
23154               Parse::RecDescent::_tracefirst($text),
23155               q{create},
23156               $tracelevel)
23157               if defined $::RD_TRACE;
23158       $expectation->failed();
23159       last;
23160     }
23161     Parse::RecDescent::_trace(q{>>Matched subrule: [type]<< (return value: [}
23162           . $_tok . q{]},
23163
23164             Parse::RecDescent::_tracefirst($text),
23165             q{create},
23166             $tracelevel)
23167             if defined $::RD_TRACE;
23168     $item{q{type}} = $_tok;
23169     push @item, $_tok;
23170
23171     }
23172
23173     Parse::RecDescent::_trace(q{Trying terminal: [/ON/i]}, Parse::RecDescent::_tracefirst($text),
23174             q{create},
23175             $tracelevel)
23176             if defined $::RD_TRACE;
23177     $lastsep = "";
23178     $expectation->is(q{/ON/i})->at($text);
23179
23180
23181     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ON)//i)
23182     {
23183
23184       $expectation->failed();
23185       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23186               Parse::RecDescent::_tracefirst($text))
23187           if defined $::RD_TRACE;
23188
23189       last;
23190     }
23191     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23192             . $& . q{])},
23193               Parse::RecDescent::_tracefirst($text))
23194           if defined $::RD_TRACE;
23195     push @item, $item{__PATTERN1__}=$&;
23196
23197
23198     Parse::RecDescent::_trace(q{Trying subrule: [table_name]},
23199           Parse::RecDescent::_tracefirst($text),
23200           q{create},
23201           $tracelevel)
23202           if defined $::RD_TRACE;
23203     if (1) { no strict qw{refs};
23204     $expectation->is(q{table_name})->at($text);
23205     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::table_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23206     {
23207
23208       Parse::RecDescent::_trace(q{<<Didn't match subrule: [table_name]>>},
23209               Parse::RecDescent::_tracefirst($text),
23210               q{create},
23211               $tracelevel)
23212               if defined $::RD_TRACE;
23213       $expectation->failed();
23214       last;
23215     }
23216     Parse::RecDescent::_trace(q{>>Matched subrule: [table_name]<< (return value: [}
23217           . $_tok . q{]},
23218
23219             Parse::RecDescent::_tracefirst($text),
23220             q{create},
23221             $tracelevel)
23222             if defined $::RD_TRACE;
23223     $item{q{table_name}} = $_tok;
23224     push @item, $_tok;
23225
23226     }
23227
23228     Parse::RecDescent::_trace(q{Trying repeated subrule: [reference_a]},
23229           Parse::RecDescent::_tracefirst($text),
23230           q{create},
23231           $tracelevel)
23232           if defined $::RD_TRACE;
23233     $expectation->is(q{reference_a})->at($text);
23234
23235     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_a, 0, 1, $_noactions,$expectation,undef)))
23236     {
23237       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [reference_a]>>},
23238               Parse::RecDescent::_tracefirst($text),
23239               q{create},
23240               $tracelevel)
23241               if defined $::RD_TRACE;
23242       last;
23243     }
23244     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [reference_a]<< (}
23245           . @$_tok . q{ times)},
23246
23247             Parse::RecDescent::_tracefirst($text),
23248             q{create},
23249             $tracelevel)
23250             if defined $::RD_TRACE;
23251     $item{q{reference_a(?)}} = $_tok;
23252     push @item, $_tok;
23253
23254
23255
23256     Parse::RecDescent::_trace(q{Trying terminal: [/FOR EACH ROW|FOR EACH STATEMENT/i]}, Parse::RecDescent::_tracefirst($text),
23257             q{create},
23258             $tracelevel)
23259             if defined $::RD_TRACE;
23260     $lastsep = "";
23261     $expectation->is(q{/FOR EACH ROW|FOR EACH STATEMENT/i})->at($text);
23262
23263
23264     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FOR EACH ROW|FOR EACH STATEMENT)//i)
23265     {
23266
23267       $expectation->failed();
23268       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23269               Parse::RecDescent::_tracefirst($text))
23270           if defined $::RD_TRACE;
23271
23272       last;
23273     }
23274     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23275             . $& . q{])},
23276               Parse::RecDescent::_tracefirst($text))
23277           if defined $::RD_TRACE;
23278     push @item, $item{__PATTERN2__}=$&;
23279
23280
23281     Parse::RecDescent::_trace(q{Trying terminal: ['MODE DB2SQL']},
23282             Parse::RecDescent::_tracefirst($text),
23283             q{create},
23284             $tracelevel)
23285             if defined $::RD_TRACE;
23286     $lastsep = "";
23287     $expectation->is(q{'MODE DB2SQL'})->at($text);
23288
23289
23290     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\AMODE\ DB2SQL//)
23291     {
23292
23293       $expectation->failed();
23294       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
23295               Parse::RecDescent::_tracefirst($text))
23296               if defined $::RD_TRACE;
23297       last;
23298     }
23299     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23300             . $& . q{])},
23301               Parse::RecDescent::_tracefirst($text))
23302               if defined $::RD_TRACE;
23303     push @item, $item{__STRING1__}=$&;
23304
23305
23306     Parse::RecDescent::_trace(q{Trying subrule: [triggered_action]},
23307           Parse::RecDescent::_tracefirst($text),
23308           q{create},
23309           $tracelevel)
23310           if defined $::RD_TRACE;
23311     if (1) { no strict qw{refs};
23312     $expectation->is(q{triggered_action})->at($text);
23313     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::triggered_action($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23314     {
23315
23316       Parse::RecDescent::_trace(q{<<Didn't match subrule: [triggered_action]>>},
23317               Parse::RecDescent::_tracefirst($text),
23318               q{create},
23319               $tracelevel)
23320               if defined $::RD_TRACE;
23321       $expectation->failed();
23322       last;
23323     }
23324     Parse::RecDescent::_trace(q{>>Matched subrule: [triggered_action]<< (return value: [}
23325           . $_tok . q{]},
23326
23327             Parse::RecDescent::_tracefirst($text),
23328             q{create},
23329             $tracelevel)
23330             if defined $::RD_TRACE;
23331     $item{q{triggered_action}} = $_tok;
23332     push @item, $_tok;
23333
23334     }
23335
23336     Parse::RecDescent::_trace(q{Trying action},
23337             Parse::RecDescent::_tracefirst($text),
23338             q{create},
23339             $tracelevel)
23340             if defined $::RD_TRACE;
23341
23342
23343     $_tok = ($_noactions) ? 0 : do {
23344     my $table_name = $item{'table_name'}{'name'};
23345     $return = {
23346         table      => $table_name,
23347         schema     => $item{'trigger_name'}{'schema'},
23348         name       => $item{'trigger_name'}{'name'},
23349         when       => 'after',
23350         db_event   => $item{'type'}{'event'},
23351         fields     => $item{'type'}{'fields'},
23352         condition  => $item{'triggered_action'}{'condition'},
23353         reference  => $item{'reference_a'},
23354         granularity => $item[9],
23355         action     => $item{'triggered_action'}{'statement'}
23356     };
23357
23358     push @triggers, $return;
23359 };
23360     unless (defined $_tok)
23361     {
23362       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
23363           if defined $::RD_TRACE;
23364       last;
23365     }
23366     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
23367             . $_tok . q{])},
23368             Parse::RecDescent::_tracefirst($text))
23369             if defined $::RD_TRACE;
23370     push @item, $_tok;
23371     $item{__ACTION1__}=$_tok;
23372
23373
23374
23375     Parse::RecDescent::_trace(q{>>Matched production: [CREATE TRIGGER trigger_name after type /ON/i table_name reference_a /FOR EACH ROW|FOR EACH STATEMENT/i 'MODE DB2SQL' triggered_action]<<},
23376             Parse::RecDescent::_tracefirst($text),
23377             q{create},
23378             $tracelevel)
23379             if defined $::RD_TRACE;
23380     $_matched = 1;
23381     last;
23382   }
23383
23384
23385   while (!$_matched && !$commit)
23386   {
23387
23388     Parse::RecDescent::_trace(q{Trying production: [CREATE /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]},
23389             Parse::RecDescent::_tracefirst($_[1]),
23390             q{create},
23391             $tracelevel)
23392             if defined $::RD_TRACE;
23393     my $thisprod = $thisrule->{"prods"}[2];
23394     $text = $_[1];
23395     my $_savetext;
23396     @item = (q{create});
23397     %item = (__RULE__ => q{create});
23398     my $repcount = 0;
23399
23400
23401     Parse::RecDescent::_trace(q{Trying subrule: [CREATE]},
23402           Parse::RecDescent::_tracefirst($text),
23403           q{create},
23404           $tracelevel)
23405           if defined $::RD_TRACE;
23406     if (1) { no strict qw{refs};
23407     $expectation->is(q{})->at($text);
23408     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::CREATE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23409     {
23410
23411       Parse::RecDescent::_trace(q{<<Didn't match subrule: [CREATE]>>},
23412               Parse::RecDescent::_tracefirst($text),
23413               q{create},
23414               $tracelevel)
23415               if defined $::RD_TRACE;
23416       $expectation->failed();
23417       last;
23418     }
23419     Parse::RecDescent::_trace(q{>>Matched subrule: [CREATE]<< (return value: [}
23420           . $_tok . q{]},
23421
23422             Parse::RecDescent::_tracefirst($text),
23423             q{create},
23424             $tracelevel)
23425             if defined $::RD_TRACE;
23426     $item{q{CREATE}} = $_tok;
23427     push @item, $_tok;
23428
23429     }
23430
23431     Parse::RecDescent::_trace(q{Trying terminal: [/FEDERATED|/i]}, Parse::RecDescent::_tracefirst($text),
23432             q{create},
23433             $tracelevel)
23434             if defined $::RD_TRACE;
23435     $lastsep = "";
23436     $expectation->is(q{/FEDERATED|/i})->at($text);
23437
23438
23439     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FEDERATED|)//i)
23440     {
23441
23442       $expectation->failed();
23443       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23444               Parse::RecDescent::_tracefirst($text))
23445           if defined $::RD_TRACE;
23446
23447       last;
23448     }
23449     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23450             . $& . q{])},
23451               Parse::RecDescent::_tracefirst($text))
23452           if defined $::RD_TRACE;
23453     push @item, $item{__PATTERN1__}=$&;
23454
23455
23456     Parse::RecDescent::_trace(q{Trying subrule: [VIEW]},
23457           Parse::RecDescent::_tracefirst($text),
23458           q{create},
23459           $tracelevel)
23460           if defined $::RD_TRACE;
23461     if (1) { no strict qw{refs};
23462     $expectation->is(q{VIEW})->at($text);
23463     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::VIEW($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23464     {
23465
23466       Parse::RecDescent::_trace(q{<<Didn't match subrule: [VIEW]>>},
23467               Parse::RecDescent::_tracefirst($text),
23468               q{create},
23469               $tracelevel)
23470               if defined $::RD_TRACE;
23471       $expectation->failed();
23472       last;
23473     }
23474     Parse::RecDescent::_trace(q{>>Matched subrule: [VIEW]<< (return value: [}
23475           . $_tok . q{]},
23476
23477             Parse::RecDescent::_tracefirst($text),
23478             q{create},
23479             $tracelevel)
23480             if defined $::RD_TRACE;
23481     $item{q{VIEW}} = $_tok;
23482     push @item, $_tok;
23483
23484     }
23485
23486     Parse::RecDescent::_trace(q{Trying subrule: [view_name]},
23487           Parse::RecDescent::_tracefirst($text),
23488           q{create},
23489           $tracelevel)
23490           if defined $::RD_TRACE;
23491     if (1) { no strict qw{refs};
23492     $expectation->is(q{view_name})->at($text);
23493     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::view_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23494     {
23495
23496       Parse::RecDescent::_trace(q{<<Didn't match subrule: [view_name]>>},
23497               Parse::RecDescent::_tracefirst($text),
23498               q{create},
23499               $tracelevel)
23500               if defined $::RD_TRACE;
23501       $expectation->failed();
23502       last;
23503     }
23504     Parse::RecDescent::_trace(q{>>Matched subrule: [view_name]<< (return value: [}
23505           . $_tok . q{]},
23506
23507             Parse::RecDescent::_tracefirst($text),
23508             q{create},
23509             $tracelevel)
23510             if defined $::RD_TRACE;
23511     $item{q{view_name}} = $_tok;
23512     push @item, $_tok;
23513
23514     }
23515
23516     Parse::RecDescent::_trace(q{Trying repeated subrule: [column_list]},
23517           Parse::RecDescent::_tracefirst($text),
23518           q{create},
23519           $tracelevel)
23520           if defined $::RD_TRACE;
23521     $expectation->is(q{column_list})->at($text);
23522
23523     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list, 0, 1, $_noactions,$expectation,undef)))
23524     {
23525       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [column_list]>>},
23526               Parse::RecDescent::_tracefirst($text),
23527               q{create},
23528               $tracelevel)
23529               if defined $::RD_TRACE;
23530       last;
23531     }
23532     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [column_list]<< (}
23533           . @$_tok . q{ times)},
23534
23535             Parse::RecDescent::_tracefirst($text),
23536             q{create},
23537             $tracelevel)
23538             if defined $::RD_TRACE;
23539     $item{q{column_list(?)}} = $_tok;
23540     push @item, $_tok;
23541
23542
23543
23544     Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
23545             q{create},
23546             $tracelevel)
23547             if defined $::RD_TRACE;
23548     $lastsep = "";
23549     $expectation->is(q{/AS/i})->at($text);
23550
23551
23552     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
23553     {
23554
23555       $expectation->failed();
23556       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23557               Parse::RecDescent::_tracefirst($text))
23558           if defined $::RD_TRACE;
23559
23560       last;
23561     }
23562     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23563             . $& . q{])},
23564               Parse::RecDescent::_tracefirst($text))
23565           if defined $::RD_TRACE;
23566     push @item, $item{__PATTERN2__}=$&;
23567
23568
23569     Parse::RecDescent::_trace(q{Trying repeated subrule: [with_expression]},
23570           Parse::RecDescent::_tracefirst($text),
23571           q{create},
23572           $tracelevel)
23573           if defined $::RD_TRACE;
23574     $expectation->is(q{with_expression})->at($text);
23575
23576     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression, 0, 1, $_noactions,$expectation,undef)))
23577     {
23578       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [with_expression]>>},
23579               Parse::RecDescent::_tracefirst($text),
23580               q{create},
23581               $tracelevel)
23582               if defined $::RD_TRACE;
23583       last;
23584     }
23585     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [with_expression]<< (}
23586           . @$_tok . q{ times)},
23587
23588             Parse::RecDescent::_tracefirst($text),
23589             q{create},
23590             $tracelevel)
23591             if defined $::RD_TRACE;
23592     $item{q{with_expression(?)}} = $_tok;
23593     push @item, $_tok;
23594
23595
23596
23597     Parse::RecDescent::_trace(q{Trying subrule: [SQL_procedure_statement]},
23598           Parse::RecDescent::_tracefirst($text),
23599           q{create},
23600           $tracelevel)
23601           if defined $::RD_TRACE;
23602     if (1) { no strict qw{refs};
23603     $expectation->is(q{SQL_procedure_statement})->at($text);
23604     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23605     {
23606
23607       Parse::RecDescent::_trace(q{<<Didn't match subrule: [SQL_procedure_statement]>>},
23608               Parse::RecDescent::_tracefirst($text),
23609               q{create},
23610               $tracelevel)
23611               if defined $::RD_TRACE;
23612       $expectation->failed();
23613       last;
23614     }
23615     Parse::RecDescent::_trace(q{>>Matched subrule: [SQL_procedure_statement]<< (return value: [}
23616           . $_tok . q{]},
23617
23618             Parse::RecDescent::_tracefirst($text),
23619             q{create},
23620             $tracelevel)
23621             if defined $::RD_TRACE;
23622     $item{q{SQL_procedure_statement}} = $_tok;
23623     push @item, $_tok;
23624
23625     }
23626
23627     Parse::RecDescent::_trace(q{Trying action},
23628             Parse::RecDescent::_tracefirst($text),
23629             q{create},
23630             $tracelevel)
23631             if defined $::RD_TRACE;
23632
23633
23634     $_tok = ($_noactions) ? 0 : do {
23635     $return = {
23636         name   => $item{view_name}{name},
23637         sql    => $item{SQL_procedure_statement},
23638         with   => $item{'with_expression(?)'},
23639         fields => $item{'column_list(?)'}
23640     };
23641     push @views, $return;
23642 };
23643     unless (defined $_tok)
23644     {
23645       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
23646           if defined $::RD_TRACE;
23647       last;
23648     }
23649     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
23650             . $_tok . q{])},
23651             Parse::RecDescent::_tracefirst($text))
23652             if defined $::RD_TRACE;
23653     push @item, $_tok;
23654     $item{__ACTION1__}=$_tok;
23655
23656
23657
23658     Parse::RecDescent::_trace(q{>>Matched production: [CREATE /FEDERATED|/i VIEW view_name column_list /AS/i with_expression SQL_procedure_statement]<<},
23659             Parse::RecDescent::_tracefirst($text),
23660             q{create},
23661             $tracelevel)
23662             if defined $::RD_TRACE;
23663     $_matched = 1;
23664     last;
23665   }
23666
23667
23668         unless ( $_matched || defined($return) || defined($score) )
23669   {
23670
23671
23672     $_[1] = $text;  # NOT SURE THIS IS NEEDED
23673     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
23674            Parse::RecDescent::_tracefirst($_[1]),
23675            q{create},
23676            $tracelevel)
23677           if defined $::RD_TRACE;
23678     return undef;
23679   }
23680   if (!defined($return) && defined($score))
23681   {
23682     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
23683             q{create},
23684             $tracelevel)
23685             if defined $::RD_TRACE;
23686     $return = $score_return;
23687   }
23688   splice @{$thisparser->{errors}}, $err_at;
23689   $return = $item[$#item] unless defined $return;
23690   if (defined $::RD_TRACE)
23691   {
23692     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
23693             $return . q{])}, "",
23694             q{create},
23695             $tracelevel);
23696     Parse::RecDescent::_trace(q{(consumed: [} .
23697             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
23698             Parse::RecDescent::_tracefirst($text),
23699             , q{create},
23700             $tracelevel)
23701   }
23702   $_[1] = $text;
23703   return $return;
23704 }
23705
23706 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
23707 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sysfun
23708 {
23709   my $thisparser = $_[0];
23710   use vars q{$tracelevel};
23711   local $tracelevel = ($tracelevel||0)+1;
23712   $ERRORS = 0;
23713   my $thisrule = $thisparser->{"rules"}{"sysfun"};
23714
23715   Parse::RecDescent::_trace(q{Trying rule: [sysfun]},
23716           Parse::RecDescent::_tracefirst($_[1]),
23717           q{sysfun},
23718           $tracelevel)
23719           if defined $::RD_TRACE;
23720
23721
23722   my $err_at = @{$thisparser->{errors}};
23723
23724   my $score;
23725   my $score_return;
23726   my $_tok;
23727   my $return = undef;
23728   my $_matched=0;
23729   my $commit=0;
23730   my @item = ();
23731   my %item = ();
23732   my $repeating =  defined($_[2]) && $_[2];
23733   my $_noactions = defined($_[3]) && $_[3];
23734    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
23735   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
23736   my $text;
23737   my $lastsep="";
23738   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
23739   $expectation->at($_[1]);
23740
23741   my $thisline;
23742   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
23743
23744
23745
23746   while (!$_matched && !$commit)
23747   {
23748
23749     Parse::RecDescent::_trace(q{Trying production: [/ABS/i, or /ABSVAL/i]},
23750             Parse::RecDescent::_tracefirst($_[1]),
23751             q{sysfun},
23752             $tracelevel)
23753             if defined $::RD_TRACE;
23754     my $thisprod = $thisrule->{"prods"}[0];
23755     $text = $_[1];
23756     my $_savetext;
23757     @item = (q{sysfun});
23758     %item = (__RULE__ => q{sysfun});
23759     my $repcount = 0;
23760
23761
23762     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_sysfun]},
23763           Parse::RecDescent::_tracefirst($text),
23764           q{sysfun},
23765           $tracelevel)
23766           if defined $::RD_TRACE;
23767     if (1) { no strict qw{refs};
23768     $expectation->is(q{})->at($text);
23769     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
23770     {
23771
23772       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_sysfun]>>},
23773               Parse::RecDescent::_tracefirst($text),
23774               q{sysfun},
23775               $tracelevel)
23776               if defined $::RD_TRACE;
23777       $expectation->failed();
23778       last;
23779     }
23780     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_sysfun]<< (return value: [}
23781           . $_tok . q{]},
23782
23783             Parse::RecDescent::_tracefirst($text),
23784             q{sysfun},
23785             $tracelevel)
23786             if defined $::RD_TRACE;
23787     $item{q{_alternation_1_of_production_1_of_rule_sysfun}} = $_tok;
23788     push @item, $_tok;
23789
23790     }
23791
23792
23793     Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i, or /ABSVAL/i]<<},
23794             Parse::RecDescent::_tracefirst($text),
23795             q{sysfun},
23796             $tracelevel)
23797             if defined $::RD_TRACE;
23798     $_matched = 1;
23799     last;
23800   }
23801
23802
23803   while (!$_matched && !$commit)
23804   {
23805
23806     Parse::RecDescent::_trace(q{Trying production: [/ACOS/i]},
23807             Parse::RecDescent::_tracefirst($_[1]),
23808             q{sysfun},
23809             $tracelevel)
23810             if defined $::RD_TRACE;
23811     my $thisprod = $thisrule->{"prods"}[1];
23812     $text = $_[1];
23813     my $_savetext;
23814     @item = (q{sysfun});
23815     %item = (__RULE__ => q{sysfun});
23816     my $repcount = 0;
23817
23818
23819     Parse::RecDescent::_trace(q{Trying terminal: [/ACOS/i]}, Parse::RecDescent::_tracefirst($text),
23820             q{sysfun},
23821             $tracelevel)
23822             if defined $::RD_TRACE;
23823     $lastsep = "";
23824     $expectation->is(q{})->at($text);
23825
23826
23827     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ACOS)//i)
23828     {
23829
23830       $expectation->failed();
23831       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23832               Parse::RecDescent::_tracefirst($text))
23833           if defined $::RD_TRACE;
23834
23835       last;
23836     }
23837     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23838             . $& . q{])},
23839               Parse::RecDescent::_tracefirst($text))
23840           if defined $::RD_TRACE;
23841     push @item, $item{__PATTERN1__}=$&;
23842
23843
23844
23845     Parse::RecDescent::_trace(q{>>Matched production: [/ACOS/i]<<},
23846             Parse::RecDescent::_tracefirst($text),
23847             q{sysfun},
23848             $tracelevel)
23849             if defined $::RD_TRACE;
23850     $_matched = 1;
23851     last;
23852   }
23853
23854
23855   while (!$_matched && !$commit)
23856   {
23857
23858     Parse::RecDescent::_trace(q{Trying production: [/ASCII/i]},
23859             Parse::RecDescent::_tracefirst($_[1]),
23860             q{sysfun},
23861             $tracelevel)
23862             if defined $::RD_TRACE;
23863     my $thisprod = $thisrule->{"prods"}[2];
23864     $text = $_[1];
23865     my $_savetext;
23866     @item = (q{sysfun});
23867     %item = (__RULE__ => q{sysfun});
23868     my $repcount = 0;
23869
23870
23871     Parse::RecDescent::_trace(q{Trying terminal: [/ASCII/i]}, Parse::RecDescent::_tracefirst($text),
23872             q{sysfun},
23873             $tracelevel)
23874             if defined $::RD_TRACE;
23875     $lastsep = "";
23876     $expectation->is(q{})->at($text);
23877
23878
23879     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ASCII)//i)
23880     {
23881
23882       $expectation->failed();
23883       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23884               Parse::RecDescent::_tracefirst($text))
23885           if defined $::RD_TRACE;
23886
23887       last;
23888     }
23889     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23890             . $& . q{])},
23891               Parse::RecDescent::_tracefirst($text))
23892           if defined $::RD_TRACE;
23893     push @item, $item{__PATTERN1__}=$&;
23894
23895
23896
23897     Parse::RecDescent::_trace(q{>>Matched production: [/ASCII/i]<<},
23898             Parse::RecDescent::_tracefirst($text),
23899             q{sysfun},
23900             $tracelevel)
23901             if defined $::RD_TRACE;
23902     $_matched = 1;
23903     last;
23904   }
23905
23906
23907   while (!$_matched && !$commit)
23908   {
23909
23910     Parse::RecDescent::_trace(q{Trying production: [/ASIN/i]},
23911             Parse::RecDescent::_tracefirst($_[1]),
23912             q{sysfun},
23913             $tracelevel)
23914             if defined $::RD_TRACE;
23915     my $thisprod = $thisrule->{"prods"}[3];
23916     $text = $_[1];
23917     my $_savetext;
23918     @item = (q{sysfun});
23919     %item = (__RULE__ => q{sysfun});
23920     my $repcount = 0;
23921
23922
23923     Parse::RecDescent::_trace(q{Trying terminal: [/ASIN/i]}, Parse::RecDescent::_tracefirst($text),
23924             q{sysfun},
23925             $tracelevel)
23926             if defined $::RD_TRACE;
23927     $lastsep = "";
23928     $expectation->is(q{})->at($text);
23929
23930
23931     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ASIN)//i)
23932     {
23933
23934       $expectation->failed();
23935       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23936               Parse::RecDescent::_tracefirst($text))
23937           if defined $::RD_TRACE;
23938
23939       last;
23940     }
23941     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23942             . $& . q{])},
23943               Parse::RecDescent::_tracefirst($text))
23944           if defined $::RD_TRACE;
23945     push @item, $item{__PATTERN1__}=$&;
23946
23947
23948
23949     Parse::RecDescent::_trace(q{>>Matched production: [/ASIN/i]<<},
23950             Parse::RecDescent::_tracefirst($text),
23951             q{sysfun},
23952             $tracelevel)
23953             if defined $::RD_TRACE;
23954     $_matched = 1;
23955     last;
23956   }
23957
23958
23959   while (!$_matched && !$commit)
23960   {
23961
23962     Parse::RecDescent::_trace(q{Trying production: [/ATAN/i]},
23963             Parse::RecDescent::_tracefirst($_[1]),
23964             q{sysfun},
23965             $tracelevel)
23966             if defined $::RD_TRACE;
23967     my $thisprod = $thisrule->{"prods"}[4];
23968     $text = $_[1];
23969     my $_savetext;
23970     @item = (q{sysfun});
23971     %item = (__RULE__ => q{sysfun});
23972     my $repcount = 0;
23973
23974
23975     Parse::RecDescent::_trace(q{Trying terminal: [/ATAN/i]}, Parse::RecDescent::_tracefirst($text),
23976             q{sysfun},
23977             $tracelevel)
23978             if defined $::RD_TRACE;
23979     $lastsep = "";
23980     $expectation->is(q{})->at($text);
23981
23982
23983     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ATAN)//i)
23984     {
23985
23986       $expectation->failed();
23987       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
23988               Parse::RecDescent::_tracefirst($text))
23989           if defined $::RD_TRACE;
23990
23991       last;
23992     }
23993     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
23994             . $& . q{])},
23995               Parse::RecDescent::_tracefirst($text))
23996           if defined $::RD_TRACE;
23997     push @item, $item{__PATTERN1__}=$&;
23998
23999
24000
24001     Parse::RecDescent::_trace(q{>>Matched production: [/ATAN/i]<<},
24002             Parse::RecDescent::_tracefirst($text),
24003             q{sysfun},
24004             $tracelevel)
24005             if defined $::RD_TRACE;
24006     $_matched = 1;
24007     last;
24008   }
24009
24010
24011   while (!$_matched && !$commit)
24012   {
24013
24014     Parse::RecDescent::_trace(q{Trying production: [/ATAN2/i]},
24015             Parse::RecDescent::_tracefirst($_[1]),
24016             q{sysfun},
24017             $tracelevel)
24018             if defined $::RD_TRACE;
24019     my $thisprod = $thisrule->{"prods"}[5];
24020     $text = $_[1];
24021     my $_savetext;
24022     @item = (q{sysfun});
24023     %item = (__RULE__ => q{sysfun});
24024     my $repcount = 0;
24025
24026
24027     Parse::RecDescent::_trace(q{Trying terminal: [/ATAN2/i]}, Parse::RecDescent::_tracefirst($text),
24028             q{sysfun},
24029             $tracelevel)
24030             if defined $::RD_TRACE;
24031     $lastsep = "";
24032     $expectation->is(q{})->at($text);
24033
24034
24035     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ATAN2)//i)
24036     {
24037
24038       $expectation->failed();
24039       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24040               Parse::RecDescent::_tracefirst($text))
24041           if defined $::RD_TRACE;
24042
24043       last;
24044     }
24045     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24046             . $& . q{])},
24047               Parse::RecDescent::_tracefirst($text))
24048           if defined $::RD_TRACE;
24049     push @item, $item{__PATTERN1__}=$&;
24050
24051
24052
24053     Parse::RecDescent::_trace(q{>>Matched production: [/ATAN2/i]<<},
24054             Parse::RecDescent::_tracefirst($text),
24055             q{sysfun},
24056             $tracelevel)
24057             if defined $::RD_TRACE;
24058     $_matched = 1;
24059     last;
24060   }
24061
24062
24063   while (!$_matched && !$commit)
24064   {
24065
24066     Parse::RecDescent::_trace(q{Trying production: [/CEIL/i, or /CEILING/i]},
24067             Parse::RecDescent::_tracefirst($_[1]),
24068             q{sysfun},
24069             $tracelevel)
24070             if defined $::RD_TRACE;
24071     my $thisprod = $thisrule->{"prods"}[6];
24072     $text = $_[1];
24073     my $_savetext;
24074     @item = (q{sysfun});
24075     %item = (__RULE__ => q{sysfun});
24076     my $repcount = 0;
24077
24078
24079     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_7_of_rule_sysfun]},
24080           Parse::RecDescent::_tracefirst($text),
24081           q{sysfun},
24082           $tracelevel)
24083           if defined $::RD_TRACE;
24084     if (1) { no strict qw{refs};
24085     $expectation->is(q{})->at($text);
24086     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
24087     {
24088
24089       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_7_of_rule_sysfun]>>},
24090               Parse::RecDescent::_tracefirst($text),
24091               q{sysfun},
24092               $tracelevel)
24093               if defined $::RD_TRACE;
24094       $expectation->failed();
24095       last;
24096     }
24097     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_7_of_rule_sysfun]<< (return value: [}
24098           . $_tok . q{]},
24099
24100             Parse::RecDescent::_tracefirst($text),
24101             q{sysfun},
24102             $tracelevel)
24103             if defined $::RD_TRACE;
24104     $item{q{_alternation_1_of_production_7_of_rule_sysfun}} = $_tok;
24105     push @item, $_tok;
24106
24107     }
24108
24109
24110     Parse::RecDescent::_trace(q{>>Matched production: [/CEIL/i, or /CEILING/i]<<},
24111             Parse::RecDescent::_tracefirst($text),
24112             q{sysfun},
24113             $tracelevel)
24114             if defined $::RD_TRACE;
24115     $_matched = 1;
24116     last;
24117   }
24118
24119
24120   while (!$_matched && !$commit)
24121   {
24122
24123     Parse::RecDescent::_trace(q{Trying production: [/CHAR/i]},
24124             Parse::RecDescent::_tracefirst($_[1]),
24125             q{sysfun},
24126             $tracelevel)
24127             if defined $::RD_TRACE;
24128     my $thisprod = $thisrule->{"prods"}[7];
24129     $text = $_[1];
24130     my $_savetext;
24131     @item = (q{sysfun});
24132     %item = (__RULE__ => q{sysfun});
24133     my $repcount = 0;
24134
24135
24136     Parse::RecDescent::_trace(q{Trying terminal: [/CHAR/i]}, Parse::RecDescent::_tracefirst($text),
24137             q{sysfun},
24138             $tracelevel)
24139             if defined $::RD_TRACE;
24140     $lastsep = "";
24141     $expectation->is(q{})->at($text);
24142
24143
24144     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHAR)//i)
24145     {
24146
24147       $expectation->failed();
24148       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24149               Parse::RecDescent::_tracefirst($text))
24150           if defined $::RD_TRACE;
24151
24152       last;
24153     }
24154     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24155             . $& . q{])},
24156               Parse::RecDescent::_tracefirst($text))
24157           if defined $::RD_TRACE;
24158     push @item, $item{__PATTERN1__}=$&;
24159
24160
24161
24162     Parse::RecDescent::_trace(q{>>Matched production: [/CHAR/i]<<},
24163             Parse::RecDescent::_tracefirst($text),
24164             q{sysfun},
24165             $tracelevel)
24166             if defined $::RD_TRACE;
24167     $_matched = 1;
24168     last;
24169   }
24170
24171
24172   while (!$_matched && !$commit)
24173   {
24174
24175     Parse::RecDescent::_trace(q{Trying production: [/CHR/i]},
24176             Parse::RecDescent::_tracefirst($_[1]),
24177             q{sysfun},
24178             $tracelevel)
24179             if defined $::RD_TRACE;
24180     my $thisprod = $thisrule->{"prods"}[8];
24181     $text = $_[1];
24182     my $_savetext;
24183     @item = (q{sysfun});
24184     %item = (__RULE__ => q{sysfun});
24185     my $repcount = 0;
24186
24187
24188     Parse::RecDescent::_trace(q{Trying terminal: [/CHR/i]}, Parse::RecDescent::_tracefirst($text),
24189             q{sysfun},
24190             $tracelevel)
24191             if defined $::RD_TRACE;
24192     $lastsep = "";
24193     $expectation->is(q{})->at($text);
24194
24195
24196     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CHR)//i)
24197     {
24198
24199       $expectation->failed();
24200       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24201               Parse::RecDescent::_tracefirst($text))
24202           if defined $::RD_TRACE;
24203
24204       last;
24205     }
24206     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24207             . $& . q{])},
24208               Parse::RecDescent::_tracefirst($text))
24209           if defined $::RD_TRACE;
24210     push @item, $item{__PATTERN1__}=$&;
24211
24212
24213
24214     Parse::RecDescent::_trace(q{>>Matched production: [/CHR/i]<<},
24215             Parse::RecDescent::_tracefirst($text),
24216             q{sysfun},
24217             $tracelevel)
24218             if defined $::RD_TRACE;
24219     $_matched = 1;
24220     last;
24221   }
24222
24223
24224   while (!$_matched && !$commit)
24225   {
24226
24227     Parse::RecDescent::_trace(q{Trying production: [/COS/i]},
24228             Parse::RecDescent::_tracefirst($_[1]),
24229             q{sysfun},
24230             $tracelevel)
24231             if defined $::RD_TRACE;
24232     my $thisprod = $thisrule->{"prods"}[9];
24233     $text = $_[1];
24234     my $_savetext;
24235     @item = (q{sysfun});
24236     %item = (__RULE__ => q{sysfun});
24237     my $repcount = 0;
24238
24239
24240     Parse::RecDescent::_trace(q{Trying terminal: [/COS/i]}, Parse::RecDescent::_tracefirst($text),
24241             q{sysfun},
24242             $tracelevel)
24243             if defined $::RD_TRACE;
24244     $lastsep = "";
24245     $expectation->is(q{})->at($text);
24246
24247
24248     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COS)//i)
24249     {
24250
24251       $expectation->failed();
24252       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24253               Parse::RecDescent::_tracefirst($text))
24254           if defined $::RD_TRACE;
24255
24256       last;
24257     }
24258     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24259             . $& . q{])},
24260               Parse::RecDescent::_tracefirst($text))
24261           if defined $::RD_TRACE;
24262     push @item, $item{__PATTERN1__}=$&;
24263
24264
24265
24266     Parse::RecDescent::_trace(q{>>Matched production: [/COS/i]<<},
24267             Parse::RecDescent::_tracefirst($text),
24268             q{sysfun},
24269             $tracelevel)
24270             if defined $::RD_TRACE;
24271     $_matched = 1;
24272     last;
24273   }
24274
24275
24276   while (!$_matched && !$commit)
24277   {
24278
24279     Parse::RecDescent::_trace(q{Trying production: [/COT/i]},
24280             Parse::RecDescent::_tracefirst($_[1]),
24281             q{sysfun},
24282             $tracelevel)
24283             if defined $::RD_TRACE;
24284     my $thisprod = $thisrule->{"prods"}[10];
24285     $text = $_[1];
24286     my $_savetext;
24287     @item = (q{sysfun});
24288     %item = (__RULE__ => q{sysfun});
24289     my $repcount = 0;
24290
24291
24292     Parse::RecDescent::_trace(q{Trying terminal: [/COT/i]}, Parse::RecDescent::_tracefirst($text),
24293             q{sysfun},
24294             $tracelevel)
24295             if defined $::RD_TRACE;
24296     $lastsep = "";
24297     $expectation->is(q{})->at($text);
24298
24299
24300     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:COT)//i)
24301     {
24302
24303       $expectation->failed();
24304       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24305               Parse::RecDescent::_tracefirst($text))
24306           if defined $::RD_TRACE;
24307
24308       last;
24309     }
24310     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24311             . $& . q{])},
24312               Parse::RecDescent::_tracefirst($text))
24313           if defined $::RD_TRACE;
24314     push @item, $item{__PATTERN1__}=$&;
24315
24316
24317
24318     Parse::RecDescent::_trace(q{>>Matched production: [/COT/i]<<},
24319             Parse::RecDescent::_tracefirst($text),
24320             q{sysfun},
24321             $tracelevel)
24322             if defined $::RD_TRACE;
24323     $_matched = 1;
24324     last;
24325   }
24326
24327
24328   while (!$_matched && !$commit)
24329   {
24330
24331     Parse::RecDescent::_trace(q{Trying production: [/DAYNAME/i]},
24332             Parse::RecDescent::_tracefirst($_[1]),
24333             q{sysfun},
24334             $tracelevel)
24335             if defined $::RD_TRACE;
24336     my $thisprod = $thisrule->{"prods"}[11];
24337     $text = $_[1];
24338     my $_savetext;
24339     @item = (q{sysfun});
24340     %item = (__RULE__ => q{sysfun});
24341     my $repcount = 0;
24342
24343
24344     Parse::RecDescent::_trace(q{Trying terminal: [/DAYNAME/i]}, Parse::RecDescent::_tracefirst($text),
24345             q{sysfun},
24346             $tracelevel)
24347             if defined $::RD_TRACE;
24348     $lastsep = "";
24349     $expectation->is(q{})->at($text);
24350
24351
24352     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYNAME)//i)
24353     {
24354
24355       $expectation->failed();
24356       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24357               Parse::RecDescent::_tracefirst($text))
24358           if defined $::RD_TRACE;
24359
24360       last;
24361     }
24362     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24363             . $& . q{])},
24364               Parse::RecDescent::_tracefirst($text))
24365           if defined $::RD_TRACE;
24366     push @item, $item{__PATTERN1__}=$&;
24367
24368
24369
24370     Parse::RecDescent::_trace(q{>>Matched production: [/DAYNAME/i]<<},
24371             Parse::RecDescent::_tracefirst($text),
24372             q{sysfun},
24373             $tracelevel)
24374             if defined $::RD_TRACE;
24375     $_matched = 1;
24376     last;
24377   }
24378
24379
24380   while (!$_matched && !$commit)
24381   {
24382
24383     Parse::RecDescent::_trace(q{Trying production: [/DAYOFWEEK/i]},
24384             Parse::RecDescent::_tracefirst($_[1]),
24385             q{sysfun},
24386             $tracelevel)
24387             if defined $::RD_TRACE;
24388     my $thisprod = $thisrule->{"prods"}[12];
24389     $text = $_[1];
24390     my $_savetext;
24391     @item = (q{sysfun});
24392     %item = (__RULE__ => q{sysfun});
24393     my $repcount = 0;
24394
24395
24396     Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFWEEK/i]}, Parse::RecDescent::_tracefirst($text),
24397             q{sysfun},
24398             $tracelevel)
24399             if defined $::RD_TRACE;
24400     $lastsep = "";
24401     $expectation->is(q{})->at($text);
24402
24403
24404     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFWEEK)//i)
24405     {
24406
24407       $expectation->failed();
24408       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24409               Parse::RecDescent::_tracefirst($text))
24410           if defined $::RD_TRACE;
24411
24412       last;
24413     }
24414     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24415             . $& . q{])},
24416               Parse::RecDescent::_tracefirst($text))
24417           if defined $::RD_TRACE;
24418     push @item, $item{__PATTERN1__}=$&;
24419
24420
24421
24422     Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFWEEK/i]<<},
24423             Parse::RecDescent::_tracefirst($text),
24424             q{sysfun},
24425             $tracelevel)
24426             if defined $::RD_TRACE;
24427     $_matched = 1;
24428     last;
24429   }
24430
24431
24432   while (!$_matched && !$commit)
24433   {
24434
24435     Parse::RecDescent::_trace(q{Trying production: [/DAYOFWEEK_ISO/i]},
24436             Parse::RecDescent::_tracefirst($_[1]),
24437             q{sysfun},
24438             $tracelevel)
24439             if defined $::RD_TRACE;
24440     my $thisprod = $thisrule->{"prods"}[13];
24441     $text = $_[1];
24442     my $_savetext;
24443     @item = (q{sysfun});
24444     %item = (__RULE__ => q{sysfun});
24445     my $repcount = 0;
24446
24447
24448     Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFWEEK_ISO/i]}, Parse::RecDescent::_tracefirst($text),
24449             q{sysfun},
24450             $tracelevel)
24451             if defined $::RD_TRACE;
24452     $lastsep = "";
24453     $expectation->is(q{})->at($text);
24454
24455
24456     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFWEEK_ISO)//i)
24457     {
24458
24459       $expectation->failed();
24460       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24461               Parse::RecDescent::_tracefirst($text))
24462           if defined $::RD_TRACE;
24463
24464       last;
24465     }
24466     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24467             . $& . q{])},
24468               Parse::RecDescent::_tracefirst($text))
24469           if defined $::RD_TRACE;
24470     push @item, $item{__PATTERN1__}=$&;
24471
24472
24473
24474     Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFWEEK_ISO/i]<<},
24475             Parse::RecDescent::_tracefirst($text),
24476             q{sysfun},
24477             $tracelevel)
24478             if defined $::RD_TRACE;
24479     $_matched = 1;
24480     last;
24481   }
24482
24483
24484   while (!$_matched && !$commit)
24485   {
24486
24487     Parse::RecDescent::_trace(q{Trying production: [/DAYOFYEAR/i]},
24488             Parse::RecDescent::_tracefirst($_[1]),
24489             q{sysfun},
24490             $tracelevel)
24491             if defined $::RD_TRACE;
24492     my $thisprod = $thisrule->{"prods"}[14];
24493     $text = $_[1];
24494     my $_savetext;
24495     @item = (q{sysfun});
24496     %item = (__RULE__ => q{sysfun});
24497     my $repcount = 0;
24498
24499
24500     Parse::RecDescent::_trace(q{Trying terminal: [/DAYOFYEAR/i]}, Parse::RecDescent::_tracefirst($text),
24501             q{sysfun},
24502             $tracelevel)
24503             if defined $::RD_TRACE;
24504     $lastsep = "";
24505     $expectation->is(q{})->at($text);
24506
24507
24508     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DAYOFYEAR)//i)
24509     {
24510
24511       $expectation->failed();
24512       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24513               Parse::RecDescent::_tracefirst($text))
24514           if defined $::RD_TRACE;
24515
24516       last;
24517     }
24518     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24519             . $& . q{])},
24520               Parse::RecDescent::_tracefirst($text))
24521           if defined $::RD_TRACE;
24522     push @item, $item{__PATTERN1__}=$&;
24523
24524
24525
24526     Parse::RecDescent::_trace(q{>>Matched production: [/DAYOFYEAR/i]<<},
24527             Parse::RecDescent::_tracefirst($text),
24528             q{sysfun},
24529             $tracelevel)
24530             if defined $::RD_TRACE;
24531     $_matched = 1;
24532     last;
24533   }
24534
24535
24536   while (!$_matched && !$commit)
24537   {
24538
24539     Parse::RecDescent::_trace(q{Trying production: [/DEGREES/i]},
24540             Parse::RecDescent::_tracefirst($_[1]),
24541             q{sysfun},
24542             $tracelevel)
24543             if defined $::RD_TRACE;
24544     my $thisprod = $thisrule->{"prods"}[15];
24545     $text = $_[1];
24546     my $_savetext;
24547     @item = (q{sysfun});
24548     %item = (__RULE__ => q{sysfun});
24549     my $repcount = 0;
24550
24551
24552     Parse::RecDescent::_trace(q{Trying terminal: [/DEGREES/i]}, Parse::RecDescent::_tracefirst($text),
24553             q{sysfun},
24554             $tracelevel)
24555             if defined $::RD_TRACE;
24556     $lastsep = "";
24557     $expectation->is(q{})->at($text);
24558
24559
24560     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DEGREES)//i)
24561     {
24562
24563       $expectation->failed();
24564       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24565               Parse::RecDescent::_tracefirst($text))
24566           if defined $::RD_TRACE;
24567
24568       last;
24569     }
24570     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24571             . $& . q{])},
24572               Parse::RecDescent::_tracefirst($text))
24573           if defined $::RD_TRACE;
24574     push @item, $item{__PATTERN1__}=$&;
24575
24576
24577
24578     Parse::RecDescent::_trace(q{>>Matched production: [/DEGREES/i]<<},
24579             Parse::RecDescent::_tracefirst($text),
24580             q{sysfun},
24581             $tracelevel)
24582             if defined $::RD_TRACE;
24583     $_matched = 1;
24584     last;
24585   }
24586
24587
24588   while (!$_matched && !$commit)
24589   {
24590
24591     Parse::RecDescent::_trace(q{Trying production: [/DIFFERENCE/i]},
24592             Parse::RecDescent::_tracefirst($_[1]),
24593             q{sysfun},
24594             $tracelevel)
24595             if defined $::RD_TRACE;
24596     my $thisprod = $thisrule->{"prods"}[16];
24597     $text = $_[1];
24598     my $_savetext;
24599     @item = (q{sysfun});
24600     %item = (__RULE__ => q{sysfun});
24601     my $repcount = 0;
24602
24603
24604     Parse::RecDescent::_trace(q{Trying terminal: [/DIFFERENCE/i]}, Parse::RecDescent::_tracefirst($text),
24605             q{sysfun},
24606             $tracelevel)
24607             if defined $::RD_TRACE;
24608     $lastsep = "";
24609     $expectation->is(q{})->at($text);
24610
24611
24612     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DIFFERENCE)//i)
24613     {
24614
24615       $expectation->failed();
24616       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24617               Parse::RecDescent::_tracefirst($text))
24618           if defined $::RD_TRACE;
24619
24620       last;
24621     }
24622     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24623             . $& . q{])},
24624               Parse::RecDescent::_tracefirst($text))
24625           if defined $::RD_TRACE;
24626     push @item, $item{__PATTERN1__}=$&;
24627
24628
24629
24630     Parse::RecDescent::_trace(q{>>Matched production: [/DIFFERENCE/i]<<},
24631             Parse::RecDescent::_tracefirst($text),
24632             q{sysfun},
24633             $tracelevel)
24634             if defined $::RD_TRACE;
24635     $_matched = 1;
24636     last;
24637   }
24638
24639
24640   while (!$_matched && !$commit)
24641   {
24642
24643     Parse::RecDescent::_trace(q{Trying production: [/DOUBLE/i]},
24644             Parse::RecDescent::_tracefirst($_[1]),
24645             q{sysfun},
24646             $tracelevel)
24647             if defined $::RD_TRACE;
24648     my $thisprod = $thisrule->{"prods"}[17];
24649     $text = $_[1];
24650     my $_savetext;
24651     @item = (q{sysfun});
24652     %item = (__RULE__ => q{sysfun});
24653     my $repcount = 0;
24654
24655
24656     Parse::RecDescent::_trace(q{Trying terminal: [/DOUBLE/i]}, Parse::RecDescent::_tracefirst($text),
24657             q{sysfun},
24658             $tracelevel)
24659             if defined $::RD_TRACE;
24660     $lastsep = "";
24661     $expectation->is(q{})->at($text);
24662
24663
24664     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DOUBLE)//i)
24665     {
24666
24667       $expectation->failed();
24668       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24669               Parse::RecDescent::_tracefirst($text))
24670           if defined $::RD_TRACE;
24671
24672       last;
24673     }
24674     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24675             . $& . q{])},
24676               Parse::RecDescent::_tracefirst($text))
24677           if defined $::RD_TRACE;
24678     push @item, $item{__PATTERN1__}=$&;
24679
24680
24681
24682     Parse::RecDescent::_trace(q{>>Matched production: [/DOUBLE/i]<<},
24683             Parse::RecDescent::_tracefirst($text),
24684             q{sysfun},
24685             $tracelevel)
24686             if defined $::RD_TRACE;
24687     $_matched = 1;
24688     last;
24689   }
24690
24691
24692   while (!$_matched && !$commit)
24693   {
24694
24695     Parse::RecDescent::_trace(q{Trying production: [/EXP/i]},
24696             Parse::RecDescent::_tracefirst($_[1]),
24697             q{sysfun},
24698             $tracelevel)
24699             if defined $::RD_TRACE;
24700     my $thisprod = $thisrule->{"prods"}[18];
24701     $text = $_[1];
24702     my $_savetext;
24703     @item = (q{sysfun});
24704     %item = (__RULE__ => q{sysfun});
24705     my $repcount = 0;
24706
24707
24708     Parse::RecDescent::_trace(q{Trying terminal: [/EXP/i]}, Parse::RecDescent::_tracefirst($text),
24709             q{sysfun},
24710             $tracelevel)
24711             if defined $::RD_TRACE;
24712     $lastsep = "";
24713     $expectation->is(q{})->at($text);
24714
24715
24716     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:EXP)//i)
24717     {
24718
24719       $expectation->failed();
24720       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24721               Parse::RecDescent::_tracefirst($text))
24722           if defined $::RD_TRACE;
24723
24724       last;
24725     }
24726     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24727             . $& . q{])},
24728               Parse::RecDescent::_tracefirst($text))
24729           if defined $::RD_TRACE;
24730     push @item, $item{__PATTERN1__}=$&;
24731
24732
24733
24734     Parse::RecDescent::_trace(q{>>Matched production: [/EXP/i]<<},
24735             Parse::RecDescent::_tracefirst($text),
24736             q{sysfun},
24737             $tracelevel)
24738             if defined $::RD_TRACE;
24739     $_matched = 1;
24740     last;
24741   }
24742
24743
24744   while (!$_matched && !$commit)
24745   {
24746
24747     Parse::RecDescent::_trace(q{Trying production: [/FLOOR/i]},
24748             Parse::RecDescent::_tracefirst($_[1]),
24749             q{sysfun},
24750             $tracelevel)
24751             if defined $::RD_TRACE;
24752     my $thisprod = $thisrule->{"prods"}[19];
24753     $text = $_[1];
24754     my $_savetext;
24755     @item = (q{sysfun});
24756     %item = (__RULE__ => q{sysfun});
24757     my $repcount = 0;
24758
24759
24760     Parse::RecDescent::_trace(q{Trying terminal: [/FLOOR/i]}, Parse::RecDescent::_tracefirst($text),
24761             q{sysfun},
24762             $tracelevel)
24763             if defined $::RD_TRACE;
24764     $lastsep = "";
24765     $expectation->is(q{})->at($text);
24766
24767
24768     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:FLOOR)//i)
24769     {
24770
24771       $expectation->failed();
24772       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24773               Parse::RecDescent::_tracefirst($text))
24774           if defined $::RD_TRACE;
24775
24776       last;
24777     }
24778     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24779             . $& . q{])},
24780               Parse::RecDescent::_tracefirst($text))
24781           if defined $::RD_TRACE;
24782     push @item, $item{__PATTERN1__}=$&;
24783
24784
24785
24786     Parse::RecDescent::_trace(q{>>Matched production: [/FLOOR/i]<<},
24787             Parse::RecDescent::_tracefirst($text),
24788             q{sysfun},
24789             $tracelevel)
24790             if defined $::RD_TRACE;
24791     $_matched = 1;
24792     last;
24793   }
24794
24795
24796   while (!$_matched && !$commit)
24797   {
24798
24799     Parse::RecDescent::_trace(q{Trying production: [/GET_ROUTINE_SAR/i]},
24800             Parse::RecDescent::_tracefirst($_[1]),
24801             q{sysfun},
24802             $tracelevel)
24803             if defined $::RD_TRACE;
24804     my $thisprod = $thisrule->{"prods"}[20];
24805     $text = $_[1];
24806     my $_savetext;
24807     @item = (q{sysfun});
24808     %item = (__RULE__ => q{sysfun});
24809     my $repcount = 0;
24810
24811
24812     Parse::RecDescent::_trace(q{Trying terminal: [/GET_ROUTINE_SAR/i]}, Parse::RecDescent::_tracefirst($text),
24813             q{sysfun},
24814             $tracelevel)
24815             if defined $::RD_TRACE;
24816     $lastsep = "";
24817     $expectation->is(q{})->at($text);
24818
24819
24820     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:GET_ROUTINE_SAR)//i)
24821     {
24822
24823       $expectation->failed();
24824       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24825               Parse::RecDescent::_tracefirst($text))
24826           if defined $::RD_TRACE;
24827
24828       last;
24829     }
24830     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24831             . $& . q{])},
24832               Parse::RecDescent::_tracefirst($text))
24833           if defined $::RD_TRACE;
24834     push @item, $item{__PATTERN1__}=$&;
24835
24836
24837
24838     Parse::RecDescent::_trace(q{>>Matched production: [/GET_ROUTINE_SAR/i]<<},
24839             Parse::RecDescent::_tracefirst($text),
24840             q{sysfun},
24841             $tracelevel)
24842             if defined $::RD_TRACE;
24843     $_matched = 1;
24844     last;
24845   }
24846
24847
24848   while (!$_matched && !$commit)
24849   {
24850
24851     Parse::RecDescent::_trace(q{Trying production: [/INSERT/i]},
24852             Parse::RecDescent::_tracefirst($_[1]),
24853             q{sysfun},
24854             $tracelevel)
24855             if defined $::RD_TRACE;
24856     my $thisprod = $thisrule->{"prods"}[21];
24857     $text = $_[1];
24858     my $_savetext;
24859     @item = (q{sysfun});
24860     %item = (__RULE__ => q{sysfun});
24861     my $repcount = 0;
24862
24863
24864     Parse::RecDescent::_trace(q{Trying terminal: [/INSERT/i]}, Parse::RecDescent::_tracefirst($text),
24865             q{sysfun},
24866             $tracelevel)
24867             if defined $::RD_TRACE;
24868     $lastsep = "";
24869     $expectation->is(q{})->at($text);
24870
24871
24872     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:INSERT)//i)
24873     {
24874
24875       $expectation->failed();
24876       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24877               Parse::RecDescent::_tracefirst($text))
24878           if defined $::RD_TRACE;
24879
24880       last;
24881     }
24882     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24883             . $& . q{])},
24884               Parse::RecDescent::_tracefirst($text))
24885           if defined $::RD_TRACE;
24886     push @item, $item{__PATTERN1__}=$&;
24887
24888
24889
24890     Parse::RecDescent::_trace(q{>>Matched production: [/INSERT/i]<<},
24891             Parse::RecDescent::_tracefirst($text),
24892             q{sysfun},
24893             $tracelevel)
24894             if defined $::RD_TRACE;
24895     $_matched = 1;
24896     last;
24897   }
24898
24899
24900   while (!$_matched && !$commit)
24901   {
24902
24903     Parse::RecDescent::_trace(q{Trying production: [/JULIAN_DAY/i]},
24904             Parse::RecDescent::_tracefirst($_[1]),
24905             q{sysfun},
24906             $tracelevel)
24907             if defined $::RD_TRACE;
24908     my $thisprod = $thisrule->{"prods"}[22];
24909     $text = $_[1];
24910     my $_savetext;
24911     @item = (q{sysfun});
24912     %item = (__RULE__ => q{sysfun});
24913     my $repcount = 0;
24914
24915
24916     Parse::RecDescent::_trace(q{Trying terminal: [/JULIAN_DAY/i]}, Parse::RecDescent::_tracefirst($text),
24917             q{sysfun},
24918             $tracelevel)
24919             if defined $::RD_TRACE;
24920     $lastsep = "";
24921     $expectation->is(q{})->at($text);
24922
24923
24924     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:JULIAN_DAY)//i)
24925     {
24926
24927       $expectation->failed();
24928       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24929               Parse::RecDescent::_tracefirst($text))
24930           if defined $::RD_TRACE;
24931
24932       last;
24933     }
24934     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24935             . $& . q{])},
24936               Parse::RecDescent::_tracefirst($text))
24937           if defined $::RD_TRACE;
24938     push @item, $item{__PATTERN1__}=$&;
24939
24940
24941
24942     Parse::RecDescent::_trace(q{>>Matched production: [/JULIAN_DAY/i]<<},
24943             Parse::RecDescent::_tracefirst($text),
24944             q{sysfun},
24945             $tracelevel)
24946             if defined $::RD_TRACE;
24947     $_matched = 1;
24948     last;
24949   }
24950
24951
24952   while (!$_matched && !$commit)
24953   {
24954
24955     Parse::RecDescent::_trace(q{Trying production: [/LCASE/i]},
24956             Parse::RecDescent::_tracefirst($_[1]),
24957             q{sysfun},
24958             $tracelevel)
24959             if defined $::RD_TRACE;
24960     my $thisprod = $thisrule->{"prods"}[23];
24961     $text = $_[1];
24962     my $_savetext;
24963     @item = (q{sysfun});
24964     %item = (__RULE__ => q{sysfun});
24965     my $repcount = 0;
24966
24967
24968     Parse::RecDescent::_trace(q{Trying terminal: [/LCASE/i]}, Parse::RecDescent::_tracefirst($text),
24969             q{sysfun},
24970             $tracelevel)
24971             if defined $::RD_TRACE;
24972     $lastsep = "";
24973     $expectation->is(q{})->at($text);
24974
24975
24976     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LCASE)//i)
24977     {
24978
24979       $expectation->failed();
24980       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
24981               Parse::RecDescent::_tracefirst($text))
24982           if defined $::RD_TRACE;
24983
24984       last;
24985     }
24986     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
24987             . $& . q{])},
24988               Parse::RecDescent::_tracefirst($text))
24989           if defined $::RD_TRACE;
24990     push @item, $item{__PATTERN1__}=$&;
24991
24992
24993
24994     Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i]<<},
24995             Parse::RecDescent::_tracefirst($text),
24996             q{sysfun},
24997             $tracelevel)
24998             if defined $::RD_TRACE;
24999     $_matched = 1;
25000     last;
25001   }
25002
25003
25004   while (!$_matched && !$commit)
25005   {
25006
25007     Parse::RecDescent::_trace(q{Trying production: [/LEFT/i]},
25008             Parse::RecDescent::_tracefirst($_[1]),
25009             q{sysfun},
25010             $tracelevel)
25011             if defined $::RD_TRACE;
25012     my $thisprod = $thisrule->{"prods"}[24];
25013     $text = $_[1];
25014     my $_savetext;
25015     @item = (q{sysfun});
25016     %item = (__RULE__ => q{sysfun});
25017     my $repcount = 0;
25018
25019
25020     Parse::RecDescent::_trace(q{Trying terminal: [/LEFT/i]}, Parse::RecDescent::_tracefirst($text),
25021             q{sysfun},
25022             $tracelevel)
25023             if defined $::RD_TRACE;
25024     $lastsep = "";
25025     $expectation->is(q{})->at($text);
25026
25027
25028     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LEFT)//i)
25029     {
25030
25031       $expectation->failed();
25032       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25033               Parse::RecDescent::_tracefirst($text))
25034           if defined $::RD_TRACE;
25035
25036       last;
25037     }
25038     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25039             . $& . q{])},
25040               Parse::RecDescent::_tracefirst($text))
25041           if defined $::RD_TRACE;
25042     push @item, $item{__PATTERN1__}=$&;
25043
25044
25045
25046     Parse::RecDescent::_trace(q{>>Matched production: [/LEFT/i]<<},
25047             Parse::RecDescent::_tracefirst($text),
25048             q{sysfun},
25049             $tracelevel)
25050             if defined $::RD_TRACE;
25051     $_matched = 1;
25052     last;
25053   }
25054
25055
25056   while (!$_matched && !$commit)
25057   {
25058
25059     Parse::RecDescent::_trace(q{Trying production: [/LN/i]},
25060             Parse::RecDescent::_tracefirst($_[1]),
25061             q{sysfun},
25062             $tracelevel)
25063             if defined $::RD_TRACE;
25064     my $thisprod = $thisrule->{"prods"}[25];
25065     $text = $_[1];
25066     my $_savetext;
25067     @item = (q{sysfun});
25068     %item = (__RULE__ => q{sysfun});
25069     my $repcount = 0;
25070
25071
25072     Parse::RecDescent::_trace(q{Trying terminal: [/LN/i]}, Parse::RecDescent::_tracefirst($text),
25073             q{sysfun},
25074             $tracelevel)
25075             if defined $::RD_TRACE;
25076     $lastsep = "";
25077     $expectation->is(q{})->at($text);
25078
25079
25080     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LN)//i)
25081     {
25082
25083       $expectation->failed();
25084       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25085               Parse::RecDescent::_tracefirst($text))
25086           if defined $::RD_TRACE;
25087
25088       last;
25089     }
25090     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25091             . $& . q{])},
25092               Parse::RecDescent::_tracefirst($text))
25093           if defined $::RD_TRACE;
25094     push @item, $item{__PATTERN1__}=$&;
25095
25096
25097
25098     Parse::RecDescent::_trace(q{>>Matched production: [/LN/i]<<},
25099             Parse::RecDescent::_tracefirst($text),
25100             q{sysfun},
25101             $tracelevel)
25102             if defined $::RD_TRACE;
25103     $_matched = 1;
25104     last;
25105   }
25106
25107
25108   while (!$_matched && !$commit)
25109   {
25110
25111     Parse::RecDescent::_trace(q{Trying production: [/LOCATE/i]},
25112             Parse::RecDescent::_tracefirst($_[1]),
25113             q{sysfun},
25114             $tracelevel)
25115             if defined $::RD_TRACE;
25116     my $thisprod = $thisrule->{"prods"}[26];
25117     $text = $_[1];
25118     my $_savetext;
25119     @item = (q{sysfun});
25120     %item = (__RULE__ => q{sysfun});
25121     my $repcount = 0;
25122
25123
25124     Parse::RecDescent::_trace(q{Trying terminal: [/LOCATE/i]}, Parse::RecDescent::_tracefirst($text),
25125             q{sysfun},
25126             $tracelevel)
25127             if defined $::RD_TRACE;
25128     $lastsep = "";
25129     $expectation->is(q{})->at($text);
25130
25131
25132     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOCATE)//i)
25133     {
25134
25135       $expectation->failed();
25136       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25137               Parse::RecDescent::_tracefirst($text))
25138           if defined $::RD_TRACE;
25139
25140       last;
25141     }
25142     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25143             . $& . q{])},
25144               Parse::RecDescent::_tracefirst($text))
25145           if defined $::RD_TRACE;
25146     push @item, $item{__PATTERN1__}=$&;
25147
25148
25149
25150     Parse::RecDescent::_trace(q{>>Matched production: [/LOCATE/i]<<},
25151             Parse::RecDescent::_tracefirst($text),
25152             q{sysfun},
25153             $tracelevel)
25154             if defined $::RD_TRACE;
25155     $_matched = 1;
25156     last;
25157   }
25158
25159
25160   while (!$_matched && !$commit)
25161   {
25162
25163     Parse::RecDescent::_trace(q{Trying production: [/LOG/i]},
25164             Parse::RecDescent::_tracefirst($_[1]),
25165             q{sysfun},
25166             $tracelevel)
25167             if defined $::RD_TRACE;
25168     my $thisprod = $thisrule->{"prods"}[27];
25169     $text = $_[1];
25170     my $_savetext;
25171     @item = (q{sysfun});
25172     %item = (__RULE__ => q{sysfun});
25173     my $repcount = 0;
25174
25175
25176     Parse::RecDescent::_trace(q{Trying terminal: [/LOG/i]}, Parse::RecDescent::_tracefirst($text),
25177             q{sysfun},
25178             $tracelevel)
25179             if defined $::RD_TRACE;
25180     $lastsep = "";
25181     $expectation->is(q{})->at($text);
25182
25183
25184     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOG)//i)
25185     {
25186
25187       $expectation->failed();
25188       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25189               Parse::RecDescent::_tracefirst($text))
25190           if defined $::RD_TRACE;
25191
25192       last;
25193     }
25194     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25195             . $& . q{])},
25196               Parse::RecDescent::_tracefirst($text))
25197           if defined $::RD_TRACE;
25198     push @item, $item{__PATTERN1__}=$&;
25199
25200
25201
25202     Parse::RecDescent::_trace(q{>>Matched production: [/LOG/i]<<},
25203             Parse::RecDescent::_tracefirst($text),
25204             q{sysfun},
25205             $tracelevel)
25206             if defined $::RD_TRACE;
25207     $_matched = 1;
25208     last;
25209   }
25210
25211
25212   while (!$_matched && !$commit)
25213   {
25214
25215     Parse::RecDescent::_trace(q{Trying production: [/LOG10/i]},
25216             Parse::RecDescent::_tracefirst($_[1]),
25217             q{sysfun},
25218             $tracelevel)
25219             if defined $::RD_TRACE;
25220     my $thisprod = $thisrule->{"prods"}[28];
25221     $text = $_[1];
25222     my $_savetext;
25223     @item = (q{sysfun});
25224     %item = (__RULE__ => q{sysfun});
25225     my $repcount = 0;
25226
25227
25228     Parse::RecDescent::_trace(q{Trying terminal: [/LOG10/i]}, Parse::RecDescent::_tracefirst($text),
25229             q{sysfun},
25230             $tracelevel)
25231             if defined $::RD_TRACE;
25232     $lastsep = "";
25233     $expectation->is(q{})->at($text);
25234
25235
25236     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOG10)//i)
25237     {
25238
25239       $expectation->failed();
25240       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25241               Parse::RecDescent::_tracefirst($text))
25242           if defined $::RD_TRACE;
25243
25244       last;
25245     }
25246     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25247             . $& . q{])},
25248               Parse::RecDescent::_tracefirst($text))
25249           if defined $::RD_TRACE;
25250     push @item, $item{__PATTERN1__}=$&;
25251
25252
25253
25254     Parse::RecDescent::_trace(q{>>Matched production: [/LOG10/i]<<},
25255             Parse::RecDescent::_tracefirst($text),
25256             q{sysfun},
25257             $tracelevel)
25258             if defined $::RD_TRACE;
25259     $_matched = 1;
25260     last;
25261   }
25262
25263
25264   while (!$_matched && !$commit)
25265   {
25266
25267     Parse::RecDescent::_trace(q{Trying production: [/LTRIM/i]},
25268             Parse::RecDescent::_tracefirst($_[1]),
25269             q{sysfun},
25270             $tracelevel)
25271             if defined $::RD_TRACE;
25272     my $thisprod = $thisrule->{"prods"}[29];
25273     $text = $_[1];
25274     my $_savetext;
25275     @item = (q{sysfun});
25276     %item = (__RULE__ => q{sysfun});
25277     my $repcount = 0;
25278
25279
25280     Parse::RecDescent::_trace(q{Trying terminal: [/LTRIM/i]}, Parse::RecDescent::_tracefirst($text),
25281             q{sysfun},
25282             $tracelevel)
25283             if defined $::RD_TRACE;
25284     $lastsep = "";
25285     $expectation->is(q{})->at($text);
25286
25287
25288     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LTRIM)//i)
25289     {
25290
25291       $expectation->failed();
25292       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25293               Parse::RecDescent::_tracefirst($text))
25294           if defined $::RD_TRACE;
25295
25296       last;
25297     }
25298     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25299             . $& . q{])},
25300               Parse::RecDescent::_tracefirst($text))
25301           if defined $::RD_TRACE;
25302     push @item, $item{__PATTERN1__}=$&;
25303
25304
25305
25306     Parse::RecDescent::_trace(q{>>Matched production: [/LTRIM/i]<<},
25307             Parse::RecDescent::_tracefirst($text),
25308             q{sysfun},
25309             $tracelevel)
25310             if defined $::RD_TRACE;
25311     $_matched = 1;
25312     last;
25313   }
25314
25315
25316   while (!$_matched && !$commit)
25317   {
25318
25319     Parse::RecDescent::_trace(q{Trying production: [/MIDNIGHT_SECONDS/i]},
25320             Parse::RecDescent::_tracefirst($_[1]),
25321             q{sysfun},
25322             $tracelevel)
25323             if defined $::RD_TRACE;
25324     my $thisprod = $thisrule->{"prods"}[30];
25325     $text = $_[1];
25326     my $_savetext;
25327     @item = (q{sysfun});
25328     %item = (__RULE__ => q{sysfun});
25329     my $repcount = 0;
25330
25331
25332     Parse::RecDescent::_trace(q{Trying terminal: [/MIDNIGHT_SECONDS/i]}, Parse::RecDescent::_tracefirst($text),
25333             q{sysfun},
25334             $tracelevel)
25335             if defined $::RD_TRACE;
25336     $lastsep = "";
25337     $expectation->is(q{})->at($text);
25338
25339
25340     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MIDNIGHT_SECONDS)//i)
25341     {
25342
25343       $expectation->failed();
25344       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25345               Parse::RecDescent::_tracefirst($text))
25346           if defined $::RD_TRACE;
25347
25348       last;
25349     }
25350     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25351             . $& . q{])},
25352               Parse::RecDescent::_tracefirst($text))
25353           if defined $::RD_TRACE;
25354     push @item, $item{__PATTERN1__}=$&;
25355
25356
25357
25358     Parse::RecDescent::_trace(q{>>Matched production: [/MIDNIGHT_SECONDS/i]<<},
25359             Parse::RecDescent::_tracefirst($text),
25360             q{sysfun},
25361             $tracelevel)
25362             if defined $::RD_TRACE;
25363     $_matched = 1;
25364     last;
25365   }
25366
25367
25368   while (!$_matched && !$commit)
25369   {
25370
25371     Parse::RecDescent::_trace(q{Trying production: [/MOD/i]},
25372             Parse::RecDescent::_tracefirst($_[1]),
25373             q{sysfun},
25374             $tracelevel)
25375             if defined $::RD_TRACE;
25376     my $thisprod = $thisrule->{"prods"}[31];
25377     $text = $_[1];
25378     my $_savetext;
25379     @item = (q{sysfun});
25380     %item = (__RULE__ => q{sysfun});
25381     my $repcount = 0;
25382
25383
25384     Parse::RecDescent::_trace(q{Trying terminal: [/MOD/i]}, Parse::RecDescent::_tracefirst($text),
25385             q{sysfun},
25386             $tracelevel)
25387             if defined $::RD_TRACE;
25388     $lastsep = "";
25389     $expectation->is(q{})->at($text);
25390
25391
25392     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MOD)//i)
25393     {
25394
25395       $expectation->failed();
25396       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25397               Parse::RecDescent::_tracefirst($text))
25398           if defined $::RD_TRACE;
25399
25400       last;
25401     }
25402     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25403             . $& . q{])},
25404               Parse::RecDescent::_tracefirst($text))
25405           if defined $::RD_TRACE;
25406     push @item, $item{__PATTERN1__}=$&;
25407
25408
25409
25410     Parse::RecDescent::_trace(q{>>Matched production: [/MOD/i]<<},
25411             Parse::RecDescent::_tracefirst($text),
25412             q{sysfun},
25413             $tracelevel)
25414             if defined $::RD_TRACE;
25415     $_matched = 1;
25416     last;
25417   }
25418
25419
25420   while (!$_matched && !$commit)
25421   {
25422
25423     Parse::RecDescent::_trace(q{Trying production: [/MONTHNAME/i]},
25424             Parse::RecDescent::_tracefirst($_[1]),
25425             q{sysfun},
25426             $tracelevel)
25427             if defined $::RD_TRACE;
25428     my $thisprod = $thisrule->{"prods"}[32];
25429     $text = $_[1];
25430     my $_savetext;
25431     @item = (q{sysfun});
25432     %item = (__RULE__ => q{sysfun});
25433     my $repcount = 0;
25434
25435
25436     Parse::RecDescent::_trace(q{Trying terminal: [/MONTHNAME/i]}, Parse::RecDescent::_tracefirst($text),
25437             q{sysfun},
25438             $tracelevel)
25439             if defined $::RD_TRACE;
25440     $lastsep = "";
25441     $expectation->is(q{})->at($text);
25442
25443
25444     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:MONTHNAME)//i)
25445     {
25446
25447       $expectation->failed();
25448       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25449               Parse::RecDescent::_tracefirst($text))
25450           if defined $::RD_TRACE;
25451
25452       last;
25453     }
25454     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25455             . $& . q{])},
25456               Parse::RecDescent::_tracefirst($text))
25457           if defined $::RD_TRACE;
25458     push @item, $item{__PATTERN1__}=$&;
25459
25460
25461
25462     Parse::RecDescent::_trace(q{>>Matched production: [/MONTHNAME/i]<<},
25463             Parse::RecDescent::_tracefirst($text),
25464             q{sysfun},
25465             $tracelevel)
25466             if defined $::RD_TRACE;
25467     $_matched = 1;
25468     last;
25469   }
25470
25471
25472   while (!$_matched && !$commit)
25473   {
25474
25475     Parse::RecDescent::_trace(q{Trying production: [/POWER/i]},
25476             Parse::RecDescent::_tracefirst($_[1]),
25477             q{sysfun},
25478             $tracelevel)
25479             if defined $::RD_TRACE;
25480     my $thisprod = $thisrule->{"prods"}[33];
25481     $text = $_[1];
25482     my $_savetext;
25483     @item = (q{sysfun});
25484     %item = (__RULE__ => q{sysfun});
25485     my $repcount = 0;
25486
25487
25488     Parse::RecDescent::_trace(q{Trying terminal: [/POWER/i]}, Parse::RecDescent::_tracefirst($text),
25489             q{sysfun},
25490             $tracelevel)
25491             if defined $::RD_TRACE;
25492     $lastsep = "";
25493     $expectation->is(q{})->at($text);
25494
25495
25496     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:POWER)//i)
25497     {
25498
25499       $expectation->failed();
25500       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25501               Parse::RecDescent::_tracefirst($text))
25502           if defined $::RD_TRACE;
25503
25504       last;
25505     }
25506     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25507             . $& . q{])},
25508               Parse::RecDescent::_tracefirst($text))
25509           if defined $::RD_TRACE;
25510     push @item, $item{__PATTERN1__}=$&;
25511
25512
25513
25514     Parse::RecDescent::_trace(q{>>Matched production: [/POWER/i]<<},
25515             Parse::RecDescent::_tracefirst($text),
25516             q{sysfun},
25517             $tracelevel)
25518             if defined $::RD_TRACE;
25519     $_matched = 1;
25520     last;
25521   }
25522
25523
25524   while (!$_matched && !$commit)
25525   {
25526
25527     Parse::RecDescent::_trace(q{Trying production: [/PUT_ROUTINE_SAR/i]},
25528             Parse::RecDescent::_tracefirst($_[1]),
25529             q{sysfun},
25530             $tracelevel)
25531             if defined $::RD_TRACE;
25532     my $thisprod = $thisrule->{"prods"}[34];
25533     $text = $_[1];
25534     my $_savetext;
25535     @item = (q{sysfun});
25536     %item = (__RULE__ => q{sysfun});
25537     my $repcount = 0;
25538
25539
25540     Parse::RecDescent::_trace(q{Trying terminal: [/PUT_ROUTINE_SAR/i]}, Parse::RecDescent::_tracefirst($text),
25541             q{sysfun},
25542             $tracelevel)
25543             if defined $::RD_TRACE;
25544     $lastsep = "";
25545     $expectation->is(q{})->at($text);
25546
25547
25548     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PUT_ROUTINE_SAR)//i)
25549     {
25550
25551       $expectation->failed();
25552       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25553               Parse::RecDescent::_tracefirst($text))
25554           if defined $::RD_TRACE;
25555
25556       last;
25557     }
25558     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25559             . $& . q{])},
25560               Parse::RecDescent::_tracefirst($text))
25561           if defined $::RD_TRACE;
25562     push @item, $item{__PATTERN1__}=$&;
25563
25564
25565
25566     Parse::RecDescent::_trace(q{>>Matched production: [/PUT_ROUTINE_SAR/i]<<},
25567             Parse::RecDescent::_tracefirst($text),
25568             q{sysfun},
25569             $tracelevel)
25570             if defined $::RD_TRACE;
25571     $_matched = 1;
25572     last;
25573   }
25574
25575
25576   while (!$_matched && !$commit)
25577   {
25578
25579     Parse::RecDescent::_trace(q{Trying production: [/QUARTER/i]},
25580             Parse::RecDescent::_tracefirst($_[1]),
25581             q{sysfun},
25582             $tracelevel)
25583             if defined $::RD_TRACE;
25584     my $thisprod = $thisrule->{"prods"}[35];
25585     $text = $_[1];
25586     my $_savetext;
25587     @item = (q{sysfun});
25588     %item = (__RULE__ => q{sysfun});
25589     my $repcount = 0;
25590
25591
25592     Parse::RecDescent::_trace(q{Trying terminal: [/QUARTER/i]}, Parse::RecDescent::_tracefirst($text),
25593             q{sysfun},
25594             $tracelevel)
25595             if defined $::RD_TRACE;
25596     $lastsep = "";
25597     $expectation->is(q{})->at($text);
25598
25599
25600     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:QUARTER)//i)
25601     {
25602
25603       $expectation->failed();
25604       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25605               Parse::RecDescent::_tracefirst($text))
25606           if defined $::RD_TRACE;
25607
25608       last;
25609     }
25610     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25611             . $& . q{])},
25612               Parse::RecDescent::_tracefirst($text))
25613           if defined $::RD_TRACE;
25614     push @item, $item{__PATTERN1__}=$&;
25615
25616
25617
25618     Parse::RecDescent::_trace(q{>>Matched production: [/QUARTER/i]<<},
25619             Parse::RecDescent::_tracefirst($text),
25620             q{sysfun},
25621             $tracelevel)
25622             if defined $::RD_TRACE;
25623     $_matched = 1;
25624     last;
25625   }
25626
25627
25628   while (!$_matched && !$commit)
25629   {
25630
25631     Parse::RecDescent::_trace(q{Trying production: [/RADIANS/i]},
25632             Parse::RecDescent::_tracefirst($_[1]),
25633             q{sysfun},
25634             $tracelevel)
25635             if defined $::RD_TRACE;
25636     my $thisprod = $thisrule->{"prods"}[36];
25637     $text = $_[1];
25638     my $_savetext;
25639     @item = (q{sysfun});
25640     %item = (__RULE__ => q{sysfun});
25641     my $repcount = 0;
25642
25643
25644     Parse::RecDescent::_trace(q{Trying terminal: [/RADIANS/i]}, Parse::RecDescent::_tracefirst($text),
25645             q{sysfun},
25646             $tracelevel)
25647             if defined $::RD_TRACE;
25648     $lastsep = "";
25649     $expectation->is(q{})->at($text);
25650
25651
25652     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RADIANS)//i)
25653     {
25654
25655       $expectation->failed();
25656       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25657               Parse::RecDescent::_tracefirst($text))
25658           if defined $::RD_TRACE;
25659
25660       last;
25661     }
25662     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25663             . $& . q{])},
25664               Parse::RecDescent::_tracefirst($text))
25665           if defined $::RD_TRACE;
25666     push @item, $item{__PATTERN1__}=$&;
25667
25668
25669
25670     Parse::RecDescent::_trace(q{>>Matched production: [/RADIANS/i]<<},
25671             Parse::RecDescent::_tracefirst($text),
25672             q{sysfun},
25673             $tracelevel)
25674             if defined $::RD_TRACE;
25675     $_matched = 1;
25676     last;
25677   }
25678
25679
25680   while (!$_matched && !$commit)
25681   {
25682
25683     Parse::RecDescent::_trace(q{Trying production: [/RAND/i]},
25684             Parse::RecDescent::_tracefirst($_[1]),
25685             q{sysfun},
25686             $tracelevel)
25687             if defined $::RD_TRACE;
25688     my $thisprod = $thisrule->{"prods"}[37];
25689     $text = $_[1];
25690     my $_savetext;
25691     @item = (q{sysfun});
25692     %item = (__RULE__ => q{sysfun});
25693     my $repcount = 0;
25694
25695
25696     Parse::RecDescent::_trace(q{Trying terminal: [/RAND/i]}, Parse::RecDescent::_tracefirst($text),
25697             q{sysfun},
25698             $tracelevel)
25699             if defined $::RD_TRACE;
25700     $lastsep = "";
25701     $expectation->is(q{})->at($text);
25702
25703
25704     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RAND)//i)
25705     {
25706
25707       $expectation->failed();
25708       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25709               Parse::RecDescent::_tracefirst($text))
25710           if defined $::RD_TRACE;
25711
25712       last;
25713     }
25714     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25715             . $& . q{])},
25716               Parse::RecDescent::_tracefirst($text))
25717           if defined $::RD_TRACE;
25718     push @item, $item{__PATTERN1__}=$&;
25719
25720
25721
25722     Parse::RecDescent::_trace(q{>>Matched production: [/RAND/i]<<},
25723             Parse::RecDescent::_tracefirst($text),
25724             q{sysfun},
25725             $tracelevel)
25726             if defined $::RD_TRACE;
25727     $_matched = 1;
25728     last;
25729   }
25730
25731
25732   while (!$_matched && !$commit)
25733   {
25734
25735     Parse::RecDescent::_trace(q{Trying production: [/REPEAT/i]},
25736             Parse::RecDescent::_tracefirst($_[1]),
25737             q{sysfun},
25738             $tracelevel)
25739             if defined $::RD_TRACE;
25740     my $thisprod = $thisrule->{"prods"}[38];
25741     $text = $_[1];
25742     my $_savetext;
25743     @item = (q{sysfun});
25744     %item = (__RULE__ => q{sysfun});
25745     my $repcount = 0;
25746
25747
25748     Parse::RecDescent::_trace(q{Trying terminal: [/REPEAT/i]}, Parse::RecDescent::_tracefirst($text),
25749             q{sysfun},
25750             $tracelevel)
25751             if defined $::RD_TRACE;
25752     $lastsep = "";
25753     $expectation->is(q{})->at($text);
25754
25755
25756     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REPEAT)//i)
25757     {
25758
25759       $expectation->failed();
25760       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25761               Parse::RecDescent::_tracefirst($text))
25762           if defined $::RD_TRACE;
25763
25764       last;
25765     }
25766     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25767             . $& . q{])},
25768               Parse::RecDescent::_tracefirst($text))
25769           if defined $::RD_TRACE;
25770     push @item, $item{__PATTERN1__}=$&;
25771
25772
25773
25774     Parse::RecDescent::_trace(q{>>Matched production: [/REPEAT/i]<<},
25775             Parse::RecDescent::_tracefirst($text),
25776             q{sysfun},
25777             $tracelevel)
25778             if defined $::RD_TRACE;
25779     $_matched = 1;
25780     last;
25781   }
25782
25783
25784   while (!$_matched && !$commit)
25785   {
25786
25787     Parse::RecDescent::_trace(q{Trying production: [/REPLACE/i]},
25788             Parse::RecDescent::_tracefirst($_[1]),
25789             q{sysfun},
25790             $tracelevel)
25791             if defined $::RD_TRACE;
25792     my $thisprod = $thisrule->{"prods"}[39];
25793     $text = $_[1];
25794     my $_savetext;
25795     @item = (q{sysfun});
25796     %item = (__RULE__ => q{sysfun});
25797     my $repcount = 0;
25798
25799
25800     Parse::RecDescent::_trace(q{Trying terminal: [/REPLACE/i]}, Parse::RecDescent::_tracefirst($text),
25801             q{sysfun},
25802             $tracelevel)
25803             if defined $::RD_TRACE;
25804     $lastsep = "";
25805     $expectation->is(q{})->at($text);
25806
25807
25808     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REPLACE)//i)
25809     {
25810
25811       $expectation->failed();
25812       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25813               Parse::RecDescent::_tracefirst($text))
25814           if defined $::RD_TRACE;
25815
25816       last;
25817     }
25818     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25819             . $& . q{])},
25820               Parse::RecDescent::_tracefirst($text))
25821           if defined $::RD_TRACE;
25822     push @item, $item{__PATTERN1__}=$&;
25823
25824
25825
25826     Parse::RecDescent::_trace(q{>>Matched production: [/REPLACE/i]<<},
25827             Parse::RecDescent::_tracefirst($text),
25828             q{sysfun},
25829             $tracelevel)
25830             if defined $::RD_TRACE;
25831     $_matched = 1;
25832     last;
25833   }
25834
25835
25836   while (!$_matched && !$commit)
25837   {
25838
25839     Parse::RecDescent::_trace(q{Trying production: [/RIGHT/i]},
25840             Parse::RecDescent::_tracefirst($_[1]),
25841             q{sysfun},
25842             $tracelevel)
25843             if defined $::RD_TRACE;
25844     my $thisprod = $thisrule->{"prods"}[40];
25845     $text = $_[1];
25846     my $_savetext;
25847     @item = (q{sysfun});
25848     %item = (__RULE__ => q{sysfun});
25849     my $repcount = 0;
25850
25851
25852     Parse::RecDescent::_trace(q{Trying terminal: [/RIGHT/i]}, Parse::RecDescent::_tracefirst($text),
25853             q{sysfun},
25854             $tracelevel)
25855             if defined $::RD_TRACE;
25856     $lastsep = "";
25857     $expectation->is(q{})->at($text);
25858
25859
25860     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RIGHT)//i)
25861     {
25862
25863       $expectation->failed();
25864       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25865               Parse::RecDescent::_tracefirst($text))
25866           if defined $::RD_TRACE;
25867
25868       last;
25869     }
25870     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25871             . $& . q{])},
25872               Parse::RecDescent::_tracefirst($text))
25873           if defined $::RD_TRACE;
25874     push @item, $item{__PATTERN1__}=$&;
25875
25876
25877
25878     Parse::RecDescent::_trace(q{>>Matched production: [/RIGHT/i]<<},
25879             Parse::RecDescent::_tracefirst($text),
25880             q{sysfun},
25881             $tracelevel)
25882             if defined $::RD_TRACE;
25883     $_matched = 1;
25884     last;
25885   }
25886
25887
25888   while (!$_matched && !$commit)
25889   {
25890
25891     Parse::RecDescent::_trace(q{Trying production: [/ROUND/i]},
25892             Parse::RecDescent::_tracefirst($_[1]),
25893             q{sysfun},
25894             $tracelevel)
25895             if defined $::RD_TRACE;
25896     my $thisprod = $thisrule->{"prods"}[41];
25897     $text = $_[1];
25898     my $_savetext;
25899     @item = (q{sysfun});
25900     %item = (__RULE__ => q{sysfun});
25901     my $repcount = 0;
25902
25903
25904     Parse::RecDescent::_trace(q{Trying terminal: [/ROUND/i]}, Parse::RecDescent::_tracefirst($text),
25905             q{sysfun},
25906             $tracelevel)
25907             if defined $::RD_TRACE;
25908     $lastsep = "";
25909     $expectation->is(q{})->at($text);
25910
25911
25912     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ROUND)//i)
25913     {
25914
25915       $expectation->failed();
25916       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25917               Parse::RecDescent::_tracefirst($text))
25918           if defined $::RD_TRACE;
25919
25920       last;
25921     }
25922     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25923             . $& . q{])},
25924               Parse::RecDescent::_tracefirst($text))
25925           if defined $::RD_TRACE;
25926     push @item, $item{__PATTERN1__}=$&;
25927
25928
25929
25930     Parse::RecDescent::_trace(q{>>Matched production: [/ROUND/i]<<},
25931             Parse::RecDescent::_tracefirst($text),
25932             q{sysfun},
25933             $tracelevel)
25934             if defined $::RD_TRACE;
25935     $_matched = 1;
25936     last;
25937   }
25938
25939
25940   while (!$_matched && !$commit)
25941   {
25942
25943     Parse::RecDescent::_trace(q{Trying production: [/RTRIM/ I]},
25944             Parse::RecDescent::_tracefirst($_[1]),
25945             q{sysfun},
25946             $tracelevel)
25947             if defined $::RD_TRACE;
25948     my $thisprod = $thisrule->{"prods"}[42];
25949     $text = $_[1];
25950     my $_savetext;
25951     @item = (q{sysfun});
25952     %item = (__RULE__ => q{sysfun});
25953     my $repcount = 0;
25954
25955
25956     Parse::RecDescent::_trace(q{Trying terminal: [/RTRIM/]}, Parse::RecDescent::_tracefirst($text),
25957             q{sysfun},
25958             $tracelevel)
25959             if defined $::RD_TRACE;
25960     $lastsep = "";
25961     $expectation->is(q{})->at($text);
25962
25963
25964     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RTRIM)//)
25965     {
25966
25967       $expectation->failed();
25968       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
25969               Parse::RecDescent::_tracefirst($text))
25970           if defined $::RD_TRACE;
25971
25972       last;
25973     }
25974     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
25975             . $& . q{])},
25976               Parse::RecDescent::_tracefirst($text))
25977           if defined $::RD_TRACE;
25978     push @item, $item{__PATTERN1__}=$&;
25979
25980
25981     Parse::RecDescent::_trace(q{Trying subrule: [I]},
25982           Parse::RecDescent::_tracefirst($text),
25983           q{sysfun},
25984           $tracelevel)
25985           if defined $::RD_TRACE;
25986     if (1) { no strict qw{refs};
25987     $expectation->is(q{I})->at($text);
25988     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::I($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
25989     {
25990
25991       Parse::RecDescent::_trace(q{<<Didn't match subrule: [I]>>},
25992               Parse::RecDescent::_tracefirst($text),
25993               q{sysfun},
25994               $tracelevel)
25995               if defined $::RD_TRACE;
25996       $expectation->failed();
25997       last;
25998     }
25999     Parse::RecDescent::_trace(q{>>Matched subrule: [I]<< (return value: [}
26000           . $_tok . q{]},
26001
26002             Parse::RecDescent::_tracefirst($text),
26003             q{sysfun},
26004             $tracelevel)
26005             if defined $::RD_TRACE;
26006     $item{q{I}} = $_tok;
26007     push @item, $_tok;
26008
26009     }
26010
26011
26012     Parse::RecDescent::_trace(q{>>Matched production: [/RTRIM/ I]<<},
26013             Parse::RecDescent::_tracefirst($text),
26014             q{sysfun},
26015             $tracelevel)
26016             if defined $::RD_TRACE;
26017     $_matched = 1;
26018     last;
26019   }
26020
26021
26022   while (!$_matched && !$commit)
26023   {
26024
26025     Parse::RecDescent::_trace(q{Trying production: [/SIGN/i]},
26026             Parse::RecDescent::_tracefirst($_[1]),
26027             q{sysfun},
26028             $tracelevel)
26029             if defined $::RD_TRACE;
26030     my $thisprod = $thisrule->{"prods"}[43];
26031     $text = $_[1];
26032     my $_savetext;
26033     @item = (q{sysfun});
26034     %item = (__RULE__ => q{sysfun});
26035     my $repcount = 0;
26036
26037
26038     Parse::RecDescent::_trace(q{Trying terminal: [/SIGN/i]}, Parse::RecDescent::_tracefirst($text),
26039             q{sysfun},
26040             $tracelevel)
26041             if defined $::RD_TRACE;
26042     $lastsep = "";
26043     $expectation->is(q{})->at($text);
26044
26045
26046     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SIGN)//i)
26047     {
26048
26049       $expectation->failed();
26050       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26051               Parse::RecDescent::_tracefirst($text))
26052           if defined $::RD_TRACE;
26053
26054       last;
26055     }
26056     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26057             . $& . q{])},
26058               Parse::RecDescent::_tracefirst($text))
26059           if defined $::RD_TRACE;
26060     push @item, $item{__PATTERN1__}=$&;
26061
26062
26063
26064     Parse::RecDescent::_trace(q{>>Matched production: [/SIGN/i]<<},
26065             Parse::RecDescent::_tracefirst($text),
26066             q{sysfun},
26067             $tracelevel)
26068             if defined $::RD_TRACE;
26069     $_matched = 1;
26070     last;
26071   }
26072
26073
26074   while (!$_matched && !$commit)
26075   {
26076
26077     Parse::RecDescent::_trace(q{Trying production: [/SIN/i]},
26078             Parse::RecDescent::_tracefirst($_[1]),
26079             q{sysfun},
26080             $tracelevel)
26081             if defined $::RD_TRACE;
26082     my $thisprod = $thisrule->{"prods"}[44];
26083     $text = $_[1];
26084     my $_savetext;
26085     @item = (q{sysfun});
26086     %item = (__RULE__ => q{sysfun});
26087     my $repcount = 0;
26088
26089
26090     Parse::RecDescent::_trace(q{Trying terminal: [/SIN/i]}, Parse::RecDescent::_tracefirst($text),
26091             q{sysfun},
26092             $tracelevel)
26093             if defined $::RD_TRACE;
26094     $lastsep = "";
26095     $expectation->is(q{})->at($text);
26096
26097
26098     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SIN)//i)
26099     {
26100
26101       $expectation->failed();
26102       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26103               Parse::RecDescent::_tracefirst($text))
26104           if defined $::RD_TRACE;
26105
26106       last;
26107     }
26108     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26109             . $& . q{])},
26110               Parse::RecDescent::_tracefirst($text))
26111           if defined $::RD_TRACE;
26112     push @item, $item{__PATTERN1__}=$&;
26113
26114
26115
26116     Parse::RecDescent::_trace(q{>>Matched production: [/SIN/i]<<},
26117             Parse::RecDescent::_tracefirst($text),
26118             q{sysfun},
26119             $tracelevel)
26120             if defined $::RD_TRACE;
26121     $_matched = 1;
26122     last;
26123   }
26124
26125
26126   while (!$_matched && !$commit)
26127   {
26128
26129     Parse::RecDescent::_trace(q{Trying production: [/SOUNDEX/i]},
26130             Parse::RecDescent::_tracefirst($_[1]),
26131             q{sysfun},
26132             $tracelevel)
26133             if defined $::RD_TRACE;
26134     my $thisprod = $thisrule->{"prods"}[45];
26135     $text = $_[1];
26136     my $_savetext;
26137     @item = (q{sysfun});
26138     %item = (__RULE__ => q{sysfun});
26139     my $repcount = 0;
26140
26141
26142     Parse::RecDescent::_trace(q{Trying terminal: [/SOUNDEX/i]}, Parse::RecDescent::_tracefirst($text),
26143             q{sysfun},
26144             $tracelevel)
26145             if defined $::RD_TRACE;
26146     $lastsep = "";
26147     $expectation->is(q{})->at($text);
26148
26149
26150     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SOUNDEX)//i)
26151     {
26152
26153       $expectation->failed();
26154       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26155               Parse::RecDescent::_tracefirst($text))
26156           if defined $::RD_TRACE;
26157
26158       last;
26159     }
26160     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26161             . $& . q{])},
26162               Parse::RecDescent::_tracefirst($text))
26163           if defined $::RD_TRACE;
26164     push @item, $item{__PATTERN1__}=$&;
26165
26166
26167
26168     Parse::RecDescent::_trace(q{>>Matched production: [/SOUNDEX/i]<<},
26169             Parse::RecDescent::_tracefirst($text),
26170             q{sysfun},
26171             $tracelevel)
26172             if defined $::RD_TRACE;
26173     $_matched = 1;
26174     last;
26175   }
26176
26177
26178   while (!$_matched && !$commit)
26179   {
26180
26181     Parse::RecDescent::_trace(q{Trying production: [/SPACE/i]},
26182             Parse::RecDescent::_tracefirst($_[1]),
26183             q{sysfun},
26184             $tracelevel)
26185             if defined $::RD_TRACE;
26186     my $thisprod = $thisrule->{"prods"}[46];
26187     $text = $_[1];
26188     my $_savetext;
26189     @item = (q{sysfun});
26190     %item = (__RULE__ => q{sysfun});
26191     my $repcount = 0;
26192
26193
26194     Parse::RecDescent::_trace(q{Trying terminal: [/SPACE/i]}, Parse::RecDescent::_tracefirst($text),
26195             q{sysfun},
26196             $tracelevel)
26197             if defined $::RD_TRACE;
26198     $lastsep = "";
26199     $expectation->is(q{})->at($text);
26200
26201
26202     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SPACE)//i)
26203     {
26204
26205       $expectation->failed();
26206       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26207               Parse::RecDescent::_tracefirst($text))
26208           if defined $::RD_TRACE;
26209
26210       last;
26211     }
26212     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26213             . $& . q{])},
26214               Parse::RecDescent::_tracefirst($text))
26215           if defined $::RD_TRACE;
26216     push @item, $item{__PATTERN1__}=$&;
26217
26218
26219
26220     Parse::RecDescent::_trace(q{>>Matched production: [/SPACE/i]<<},
26221             Parse::RecDescent::_tracefirst($text),
26222             q{sysfun},
26223             $tracelevel)
26224             if defined $::RD_TRACE;
26225     $_matched = 1;
26226     last;
26227   }
26228
26229
26230   while (!$_matched && !$commit)
26231   {
26232
26233     Parse::RecDescent::_trace(q{Trying production: [/SQLCACHE_SNAPSHOT/i]},
26234             Parse::RecDescent::_tracefirst($_[1]),
26235             q{sysfun},
26236             $tracelevel)
26237             if defined $::RD_TRACE;
26238     my $thisprod = $thisrule->{"prods"}[47];
26239     $text = $_[1];
26240     my $_savetext;
26241     @item = (q{sysfun});
26242     %item = (__RULE__ => q{sysfun});
26243     my $repcount = 0;
26244
26245
26246     Parse::RecDescent::_trace(q{Trying terminal: [/SQLCACHE_SNAPSHOT/i]}, Parse::RecDescent::_tracefirst($text),
26247             q{sysfun},
26248             $tracelevel)
26249             if defined $::RD_TRACE;
26250     $lastsep = "";
26251     $expectation->is(q{})->at($text);
26252
26253
26254     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SQLCACHE_SNAPSHOT)//i)
26255     {
26256
26257       $expectation->failed();
26258       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26259               Parse::RecDescent::_tracefirst($text))
26260           if defined $::RD_TRACE;
26261
26262       last;
26263     }
26264     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26265             . $& . q{])},
26266               Parse::RecDescent::_tracefirst($text))
26267           if defined $::RD_TRACE;
26268     push @item, $item{__PATTERN1__}=$&;
26269
26270
26271
26272     Parse::RecDescent::_trace(q{>>Matched production: [/SQLCACHE_SNAPSHOT/i]<<},
26273             Parse::RecDescent::_tracefirst($text),
26274             q{sysfun},
26275             $tracelevel)
26276             if defined $::RD_TRACE;
26277     $_matched = 1;
26278     last;
26279   }
26280
26281
26282   while (!$_matched && !$commit)
26283   {
26284
26285     Parse::RecDescent::_trace(q{Trying production: [/SQRT/i]},
26286             Parse::RecDescent::_tracefirst($_[1]),
26287             q{sysfun},
26288             $tracelevel)
26289             if defined $::RD_TRACE;
26290     my $thisprod = $thisrule->{"prods"}[48];
26291     $text = $_[1];
26292     my $_savetext;
26293     @item = (q{sysfun});
26294     %item = (__RULE__ => q{sysfun});
26295     my $repcount = 0;
26296
26297
26298     Parse::RecDescent::_trace(q{Trying terminal: [/SQRT/i]}, Parse::RecDescent::_tracefirst($text),
26299             q{sysfun},
26300             $tracelevel)
26301             if defined $::RD_TRACE;
26302     $lastsep = "";
26303     $expectation->is(q{})->at($text);
26304
26305
26306     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SQRT)//i)
26307     {
26308
26309       $expectation->failed();
26310       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26311               Parse::RecDescent::_tracefirst($text))
26312           if defined $::RD_TRACE;
26313
26314       last;
26315     }
26316     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26317             . $& . q{])},
26318               Parse::RecDescent::_tracefirst($text))
26319           if defined $::RD_TRACE;
26320     push @item, $item{__PATTERN1__}=$&;
26321
26322
26323
26324     Parse::RecDescent::_trace(q{>>Matched production: [/SQRT/i]<<},
26325             Parse::RecDescent::_tracefirst($text),
26326             q{sysfun},
26327             $tracelevel)
26328             if defined $::RD_TRACE;
26329     $_matched = 1;
26330     last;
26331   }
26332
26333
26334   while (!$_matched && !$commit)
26335   {
26336
26337     Parse::RecDescent::_trace(q{Trying production: [/TAN/i]},
26338             Parse::RecDescent::_tracefirst($_[1]),
26339             q{sysfun},
26340             $tracelevel)
26341             if defined $::RD_TRACE;
26342     my $thisprod = $thisrule->{"prods"}[49];
26343     $text = $_[1];
26344     my $_savetext;
26345     @item = (q{sysfun});
26346     %item = (__RULE__ => q{sysfun});
26347     my $repcount = 0;
26348
26349
26350     Parse::RecDescent::_trace(q{Trying terminal: [/TAN/i]}, Parse::RecDescent::_tracefirst($text),
26351             q{sysfun},
26352             $tracelevel)
26353             if defined $::RD_TRACE;
26354     $lastsep = "";
26355     $expectation->is(q{})->at($text);
26356
26357
26358     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TAN)//i)
26359     {
26360
26361       $expectation->failed();
26362       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26363               Parse::RecDescent::_tracefirst($text))
26364           if defined $::RD_TRACE;
26365
26366       last;
26367     }
26368     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26369             . $& . q{])},
26370               Parse::RecDescent::_tracefirst($text))
26371           if defined $::RD_TRACE;
26372     push @item, $item{__PATTERN1__}=$&;
26373
26374
26375
26376     Parse::RecDescent::_trace(q{>>Matched production: [/TAN/i]<<},
26377             Parse::RecDescent::_tracefirst($text),
26378             q{sysfun},
26379             $tracelevel)
26380             if defined $::RD_TRACE;
26381     $_matched = 1;
26382     last;
26383   }
26384
26385
26386   while (!$_matched && !$commit)
26387   {
26388
26389     Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMP_ISO/i]},
26390             Parse::RecDescent::_tracefirst($_[1]),
26391             q{sysfun},
26392             $tracelevel)
26393             if defined $::RD_TRACE;
26394     my $thisprod = $thisrule->{"prods"}[50];
26395     $text = $_[1];
26396     my $_savetext;
26397     @item = (q{sysfun});
26398     %item = (__RULE__ => q{sysfun});
26399     my $repcount = 0;
26400
26401
26402     Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMP_ISO/i]}, Parse::RecDescent::_tracefirst($text),
26403             q{sysfun},
26404             $tracelevel)
26405             if defined $::RD_TRACE;
26406     $lastsep = "";
26407     $expectation->is(q{})->at($text);
26408
26409
26410     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIMESTAMP_ISO)//i)
26411     {
26412
26413       $expectation->failed();
26414       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26415               Parse::RecDescent::_tracefirst($text))
26416           if defined $::RD_TRACE;
26417
26418       last;
26419     }
26420     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26421             . $& . q{])},
26422               Parse::RecDescent::_tracefirst($text))
26423           if defined $::RD_TRACE;
26424     push @item, $item{__PATTERN1__}=$&;
26425
26426
26427
26428     Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMP_ISO/i]<<},
26429             Parse::RecDescent::_tracefirst($text),
26430             q{sysfun},
26431             $tracelevel)
26432             if defined $::RD_TRACE;
26433     $_matched = 1;
26434     last;
26435   }
26436
26437
26438   while (!$_matched && !$commit)
26439   {
26440
26441     Parse::RecDescent::_trace(q{Trying production: [/TIMESTAMPDIFF/i]},
26442             Parse::RecDescent::_tracefirst($_[1]),
26443             q{sysfun},
26444             $tracelevel)
26445             if defined $::RD_TRACE;
26446     my $thisprod = $thisrule->{"prods"}[51];
26447     $text = $_[1];
26448     my $_savetext;
26449     @item = (q{sysfun});
26450     %item = (__RULE__ => q{sysfun});
26451     my $repcount = 0;
26452
26453
26454     Parse::RecDescent::_trace(q{Trying terminal: [/TIMESTAMPDIFF/i]}, Parse::RecDescent::_tracefirst($text),
26455             q{sysfun},
26456             $tracelevel)
26457             if defined $::RD_TRACE;
26458     $lastsep = "";
26459     $expectation->is(q{})->at($text);
26460
26461
26462     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TIMESTAMPDIFF)//i)
26463     {
26464
26465       $expectation->failed();
26466       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26467               Parse::RecDescent::_tracefirst($text))
26468           if defined $::RD_TRACE;
26469
26470       last;
26471     }
26472     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26473             . $& . q{])},
26474               Parse::RecDescent::_tracefirst($text))
26475           if defined $::RD_TRACE;
26476     push @item, $item{__PATTERN1__}=$&;
26477
26478
26479
26480     Parse::RecDescent::_trace(q{>>Matched production: [/TIMESTAMPDIFF/i]<<},
26481             Parse::RecDescent::_tracefirst($text),
26482             q{sysfun},
26483             $tracelevel)
26484             if defined $::RD_TRACE;
26485     $_matched = 1;
26486     last;
26487   }
26488
26489
26490   while (!$_matched && !$commit)
26491   {
26492
26493     Parse::RecDescent::_trace(q{Trying production: [/TRUNCATE/i, or /TRUNC/i]},
26494             Parse::RecDescent::_tracefirst($_[1]),
26495             q{sysfun},
26496             $tracelevel)
26497             if defined $::RD_TRACE;
26498     my $thisprod = $thisrule->{"prods"}[52];
26499     $text = $_[1];
26500     my $_savetext;
26501     @item = (q{sysfun});
26502     %item = (__RULE__ => q{sysfun});
26503     my $repcount = 0;
26504
26505
26506     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_53_of_rule_sysfun]},
26507           Parse::RecDescent::_tracefirst($text),
26508           q{sysfun},
26509           $tracelevel)
26510           if defined $::RD_TRACE;
26511     if (1) { no strict qw{refs};
26512     $expectation->is(q{})->at($text);
26513     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_53_of_rule_sysfun($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
26514     {
26515
26516       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_53_of_rule_sysfun]>>},
26517               Parse::RecDescent::_tracefirst($text),
26518               q{sysfun},
26519               $tracelevel)
26520               if defined $::RD_TRACE;
26521       $expectation->failed();
26522       last;
26523     }
26524     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_53_of_rule_sysfun]<< (return value: [}
26525           . $_tok . q{]},
26526
26527             Parse::RecDescent::_tracefirst($text),
26528             q{sysfun},
26529             $tracelevel)
26530             if defined $::RD_TRACE;
26531     $item{q{_alternation_1_of_production_53_of_rule_sysfun}} = $_tok;
26532     push @item, $_tok;
26533
26534     }
26535
26536
26537     Parse::RecDescent::_trace(q{>>Matched production: [/TRUNCATE/i, or /TRUNC/i]<<},
26538             Parse::RecDescent::_tracefirst($text),
26539             q{sysfun},
26540             $tracelevel)
26541             if defined $::RD_TRACE;
26542     $_matched = 1;
26543     last;
26544   }
26545
26546
26547   while (!$_matched && !$commit)
26548   {
26549
26550     Parse::RecDescent::_trace(q{Trying production: [/UCASE/i]},
26551             Parse::RecDescent::_tracefirst($_[1]),
26552             q{sysfun},
26553             $tracelevel)
26554             if defined $::RD_TRACE;
26555     my $thisprod = $thisrule->{"prods"}[53];
26556     $text = $_[1];
26557     my $_savetext;
26558     @item = (q{sysfun});
26559     %item = (__RULE__ => q{sysfun});
26560     my $repcount = 0;
26561
26562
26563     Parse::RecDescent::_trace(q{Trying terminal: [/UCASE/i]}, Parse::RecDescent::_tracefirst($text),
26564             q{sysfun},
26565             $tracelevel)
26566             if defined $::RD_TRACE;
26567     $lastsep = "";
26568     $expectation->is(q{})->at($text);
26569
26570
26571     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UCASE)//i)
26572     {
26573
26574       $expectation->failed();
26575       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26576               Parse::RecDescent::_tracefirst($text))
26577           if defined $::RD_TRACE;
26578
26579       last;
26580     }
26581     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26582             . $& . q{])},
26583               Parse::RecDescent::_tracefirst($text))
26584           if defined $::RD_TRACE;
26585     push @item, $item{__PATTERN1__}=$&;
26586
26587
26588
26589     Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i]<<},
26590             Parse::RecDescent::_tracefirst($text),
26591             q{sysfun},
26592             $tracelevel)
26593             if defined $::RD_TRACE;
26594     $_matched = 1;
26595     last;
26596   }
26597
26598
26599   while (!$_matched && !$commit)
26600   {
26601
26602     Parse::RecDescent::_trace(q{Trying production: [/WEEK/i]},
26603             Parse::RecDescent::_tracefirst($_[1]),
26604             q{sysfun},
26605             $tracelevel)
26606             if defined $::RD_TRACE;
26607     my $thisprod = $thisrule->{"prods"}[54];
26608     $text = $_[1];
26609     my $_savetext;
26610     @item = (q{sysfun});
26611     %item = (__RULE__ => q{sysfun});
26612     my $repcount = 0;
26613
26614
26615     Parse::RecDescent::_trace(q{Trying terminal: [/WEEK/i]}, Parse::RecDescent::_tracefirst($text),
26616             q{sysfun},
26617             $tracelevel)
26618             if defined $::RD_TRACE;
26619     $lastsep = "";
26620     $expectation->is(q{})->at($text);
26621
26622
26623     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WEEK)//i)
26624     {
26625
26626       $expectation->failed();
26627       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26628               Parse::RecDescent::_tracefirst($text))
26629           if defined $::RD_TRACE;
26630
26631       last;
26632     }
26633     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26634             . $& . q{])},
26635               Parse::RecDescent::_tracefirst($text))
26636           if defined $::RD_TRACE;
26637     push @item, $item{__PATTERN1__}=$&;
26638
26639
26640
26641     Parse::RecDescent::_trace(q{>>Matched production: [/WEEK/i]<<},
26642             Parse::RecDescent::_tracefirst($text),
26643             q{sysfun},
26644             $tracelevel)
26645             if defined $::RD_TRACE;
26646     $_matched = 1;
26647     last;
26648   }
26649
26650
26651   while (!$_matched && !$commit)
26652   {
26653
26654     Parse::RecDescent::_trace(q{Trying production: [/WEEK_ISO/i]},
26655             Parse::RecDescent::_tracefirst($_[1]),
26656             q{sysfun},
26657             $tracelevel)
26658             if defined $::RD_TRACE;
26659     my $thisprod = $thisrule->{"prods"}[55];
26660     $text = $_[1];
26661     my $_savetext;
26662     @item = (q{sysfun});
26663     %item = (__RULE__ => q{sysfun});
26664     my $repcount = 0;
26665
26666
26667     Parse::RecDescent::_trace(q{Trying terminal: [/WEEK_ISO/i]}, Parse::RecDescent::_tracefirst($text),
26668             q{sysfun},
26669             $tracelevel)
26670             if defined $::RD_TRACE;
26671     $lastsep = "";
26672     $expectation->is(q{})->at($text);
26673
26674
26675     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WEEK_ISO)//i)
26676     {
26677
26678       $expectation->failed();
26679       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26680               Parse::RecDescent::_tracefirst($text))
26681           if defined $::RD_TRACE;
26682
26683       last;
26684     }
26685     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26686             . $& . q{])},
26687               Parse::RecDescent::_tracefirst($text))
26688           if defined $::RD_TRACE;
26689     push @item, $item{__PATTERN1__}=$&;
26690
26691
26692
26693     Parse::RecDescent::_trace(q{>>Matched production: [/WEEK_ISO/i]<<},
26694             Parse::RecDescent::_tracefirst($text),
26695             q{sysfun},
26696             $tracelevel)
26697             if defined $::RD_TRACE;
26698     $_matched = 1;
26699     last;
26700   }
26701
26702
26703         unless ( $_matched || defined($return) || defined($score) )
26704   {
26705
26706
26707     $_[1] = $text;  # NOT SURE THIS IS NEEDED
26708     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
26709            Parse::RecDescent::_tracefirst($_[1]),
26710            q{sysfun},
26711            $tracelevel)
26712           if defined $::RD_TRACE;
26713     return undef;
26714   }
26715   if (!defined($return) && defined($score))
26716   {
26717     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
26718             q{sysfun},
26719             $tracelevel)
26720             if defined $::RD_TRACE;
26721     $return = $score_return;
26722   }
26723   splice @{$thisparser->{errors}}, $err_at;
26724   $return = $item[$#item] unless defined $return;
26725   if (defined $::RD_TRACE)
26726   {
26727     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
26728             $return . q{])}, "",
26729             q{sysfun},
26730             $tracelevel);
26731     Parse::RecDescent::_trace(q{(consumed: [} .
26732             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
26733             Parse::RecDescent::_tracefirst($text),
26734             , q{sysfun},
26735             $tracelevel)
26736   }
26737   $_[1] = $text;
26738   return $return;
26739 }
26740
26741 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26742 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond
26743 {
26744   my $thisparser = $_[0];
26745   use vars q{$tracelevel};
26746   local $tracelevel = ($tracelevel||0)+1;
26747   $ERRORS = 0;
26748   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond"};
26749
26750   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond]},
26751           Parse::RecDescent::_tracefirst($_[1]),
26752           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26753           $tracelevel)
26754           if defined $::RD_TRACE;
26755
26756
26757   my $err_at = @{$thisparser->{errors}};
26758
26759   my $score;
26760   my $score_return;
26761   my $_tok;
26762   my $return = undef;
26763   my $_matched=0;
26764   my $commit=0;
26765   my @item = ();
26766   my %item = ();
26767   my $repeating =  defined($_[2]) && $_[2];
26768   my $_noactions = defined($_[3]) && $_[3];
26769    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
26770   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
26771   my $text;
26772   my $lastsep="";
26773   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26774   $expectation->at($_[1]);
26775
26776   my $thisline;
26777   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26778
26779
26780
26781   while (!$_matched && !$commit)
26782   {
26783
26784     Parse::RecDescent::_trace(q{Trying production: [/SELECTIVITY/i numeric_constant]},
26785             Parse::RecDescent::_tracefirst($_[1]),
26786             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26787             $tracelevel)
26788             if defined $::RD_TRACE;
26789     my $thisprod = $thisrule->{"prods"}[0];
26790     $text = $_[1];
26791     my $_savetext;
26792     @item = (q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
26793     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond});
26794     my $repcount = 0;
26795
26796
26797     Parse::RecDescent::_trace(q{Trying terminal: [/SELECTIVITY/i]}, Parse::RecDescent::_tracefirst($text),
26798             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26799             $tracelevel)
26800             if defined $::RD_TRACE;
26801     $lastsep = "";
26802     $expectation->is(q{})->at($text);
26803
26804
26805     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SELECTIVITY)//i)
26806     {
26807
26808       $expectation->failed();
26809       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26810               Parse::RecDescent::_tracefirst($text))
26811           if defined $::RD_TRACE;
26812
26813       last;
26814     }
26815     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26816             . $& . q{])},
26817               Parse::RecDescent::_tracefirst($text))
26818           if defined $::RD_TRACE;
26819     push @item, $item{__PATTERN1__}=$&;
26820
26821
26822     Parse::RecDescent::_trace(q{Trying subrule: [numeric_constant]},
26823           Parse::RecDescent::_tracefirst($text),
26824           q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26825           $tracelevel)
26826           if defined $::RD_TRACE;
26827     if (1) { no strict qw{refs};
26828     $expectation->is(q{numeric_constant})->at($text);
26829     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
26830     {
26831
26832       Parse::RecDescent::_trace(q{<<Didn't match subrule: [numeric_constant]>>},
26833               Parse::RecDescent::_tracefirst($text),
26834               q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26835               $tracelevel)
26836               if defined $::RD_TRACE;
26837       $expectation->failed();
26838       last;
26839     }
26840     Parse::RecDescent::_trace(q{>>Matched subrule: [numeric_constant]<< (return value: [}
26841           . $_tok . q{]},
26842
26843             Parse::RecDescent::_tracefirst($text),
26844             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26845             $tracelevel)
26846             if defined $::RD_TRACE;
26847     $item{q{numeric_constant}} = $_tok;
26848     push @item, $_tok;
26849
26850     }
26851
26852
26853     Parse::RecDescent::_trace(q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
26854             Parse::RecDescent::_tracefirst($text),
26855             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26856             $tracelevel)
26857             if defined $::RD_TRACE;
26858     $_matched = 1;
26859     last;
26860   }
26861
26862
26863         unless ( $_matched || defined($return) || defined($score) )
26864   {
26865
26866
26867     $_[1] = $text;  # NOT SURE THIS IS NEEDED
26868     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
26869            Parse::RecDescent::_tracefirst($_[1]),
26870            q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26871            $tracelevel)
26872           if defined $::RD_TRACE;
26873     return undef;
26874   }
26875   if (!defined($return) && defined($score))
26876   {
26877     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
26878             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26879             $tracelevel)
26880             if defined $::RD_TRACE;
26881     $return = $score_return;
26882   }
26883   splice @{$thisparser->{errors}}, $err_at;
26884   $return = $item[$#item] unless defined $return;
26885   if (defined $::RD_TRACE)
26886   {
26887     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
26888             $return . q{])}, "",
26889             q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26890             $tracelevel);
26891     Parse::RecDescent::_trace(q{(consumed: [} .
26892             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
26893             Parse::RecDescent::_tracefirst($text),
26894             , q{_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond},
26895             $tracelevel)
26896   }
26897   $_[1] = $text;
26898   return $return;
26899 }
26900
26901 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
26902 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME
26903 {
26904   my $thisparser = $_[0];
26905   use vars q{$tracelevel};
26906   local $tracelevel = ($tracelevel||0)+1;
26907   $ERRORS = 0;
26908   my $thisrule = $thisparser->{"rules"}{"NAME"};
26909
26910   Parse::RecDescent::_trace(q{Trying rule: [NAME]},
26911           Parse::RecDescent::_tracefirst($_[1]),
26912           q{NAME},
26913           $tracelevel)
26914           if defined $::RD_TRACE;
26915
26916
26917   my $err_at = @{$thisparser->{errors}};
26918
26919   my $score;
26920   my $score_return;
26921   my $_tok;
26922   my $return = undef;
26923   my $_matched=0;
26924   my $commit=0;
26925   my @item = ();
26926   my %item = ();
26927   my $repeating =  defined($_[2]) && $_[2];
26928   my $_noactions = defined($_[3]) && $_[3];
26929    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
26930   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
26931   my $text;
26932   my $lastsep="";
26933   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
26934   $expectation->at($_[1]);
26935
26936   my $thisline;
26937   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
26938
26939
26940
26941   while (!$_matched && !$commit)
26942   {
26943
26944     Parse::RecDescent::_trace(q{Trying production: [/\\w+/]},
26945             Parse::RecDescent::_tracefirst($_[1]),
26946             q{NAME},
26947             $tracelevel)
26948             if defined $::RD_TRACE;
26949     my $thisprod = $thisrule->{"prods"}[0];
26950     $text = $_[1];
26951     my $_savetext;
26952     @item = (q{NAME});
26953     %item = (__RULE__ => q{NAME});
26954     my $repcount = 0;
26955
26956
26957     Parse::RecDescent::_trace(q{Trying terminal: [/\\w+/]}, Parse::RecDescent::_tracefirst($text),
26958             q{NAME},
26959             $tracelevel)
26960             if defined $::RD_TRACE;
26961     $lastsep = "";
26962     $expectation->is(q{})->at($text);
26963
26964
26965     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w+)//)
26966     {
26967
26968       $expectation->failed();
26969       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
26970               Parse::RecDescent::_tracefirst($text))
26971           if defined $::RD_TRACE;
26972
26973       last;
26974     }
26975     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
26976             . $& . q{])},
26977               Parse::RecDescent::_tracefirst($text))
26978           if defined $::RD_TRACE;
26979     push @item, $item{__PATTERN1__}=$&;
26980
26981
26982
26983     Parse::RecDescent::_trace(q{>>Matched production: [/\\w+/]<<},
26984             Parse::RecDescent::_tracefirst($text),
26985             q{NAME},
26986             $tracelevel)
26987             if defined $::RD_TRACE;
26988     $_matched = 1;
26989     last;
26990   }
26991
26992
26993   while (!$_matched && !$commit)
26994   {
26995
26996     Parse::RecDescent::_trace(q{Trying production: [/\\w\{1,18\}/]},
26997             Parse::RecDescent::_tracefirst($_[1]),
26998             q{NAME},
26999             $tracelevel)
27000             if defined $::RD_TRACE;
27001     my $thisprod = $thisrule->{"prods"}[1];
27002     $text = $_[1];
27003     my $_savetext;
27004     @item = (q{NAME});
27005     %item = (__RULE__ => q{NAME});
27006     my $repcount = 0;
27007
27008
27009     Parse::RecDescent::_trace(q{Trying terminal: [/\\w\{1,18\}/]}, Parse::RecDescent::_tracefirst($text),
27010             q{NAME},
27011             $tracelevel)
27012             if defined $::RD_TRACE;
27013     $lastsep = "";
27014     $expectation->is(q{})->at($text);
27015
27016
27017     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\w{1,18})//)
27018     {
27019
27020       $expectation->failed();
27021       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
27022               Parse::RecDescent::_tracefirst($text))
27023           if defined $::RD_TRACE;
27024
27025       last;
27026     }
27027     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27028             . $& . q{])},
27029               Parse::RecDescent::_tracefirst($text))
27030           if defined $::RD_TRACE;
27031     push @item, $item{__PATTERN1__}=$&;
27032
27033
27034
27035     Parse::RecDescent::_trace(q{>>Matched production: [/\\w\{1,18\}/]<<},
27036             Parse::RecDescent::_tracefirst($text),
27037             q{NAME},
27038             $tracelevel)
27039             if defined $::RD_TRACE;
27040     $_matched = 1;
27041     last;
27042   }
27043
27044
27045         unless ( $_matched || defined($return) || defined($score) )
27046   {
27047
27048
27049     $_[1] = $text;  # NOT SURE THIS IS NEEDED
27050     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
27051            Parse::RecDescent::_tracefirst($_[1]),
27052            q{NAME},
27053            $tracelevel)
27054           if defined $::RD_TRACE;
27055     return undef;
27056   }
27057   if (!defined($return) && defined($score))
27058   {
27059     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27060             q{NAME},
27061             $tracelevel)
27062             if defined $::RD_TRACE;
27063     $return = $score_return;
27064   }
27065   splice @{$thisparser->{errors}}, $err_at;
27066   $return = $item[$#item] unless defined $return;
27067   if (defined $::RD_TRACE)
27068   {
27069     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27070             $return . q{])}, "",
27071             q{NAME},
27072             $tracelevel);
27073     Parse::RecDescent::_trace(q{(consumed: [} .
27074             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
27075             Parse::RecDescent::_tracefirst($text),
27076             , q{NAME},
27077             $tracelevel)
27078   }
27079   $_[1] = $text;
27080   return $return;
27081 }
27082
27083 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27084 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant
27085 {
27086   my $thisparser = $_[0];
27087   use vars q{$tracelevel};
27088   local $tracelevel = ($tracelevel||0)+1;
27089   $ERRORS = 0;
27090   my $thisrule = $thisparser->{"rules"}{"constant"};
27091
27092   Parse::RecDescent::_trace(q{Trying rule: [constant]},
27093           Parse::RecDescent::_tracefirst($_[1]),
27094           q{constant},
27095           $tracelevel)
27096           if defined $::RD_TRACE;
27097
27098
27099   my $err_at = @{$thisparser->{errors}};
27100
27101   my $score;
27102   my $score_return;
27103   my $_tok;
27104   my $return = undef;
27105   my $_matched=0;
27106   my $commit=0;
27107   my @item = ();
27108   my %item = ();
27109   my $repeating =  defined($_[2]) && $_[2];
27110   my $_noactions = defined($_[3]) && $_[3];
27111    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
27112   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
27113   my $text;
27114   my $lastsep="";
27115   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27116   $expectation->at($_[1]);
27117
27118   my $thisline;
27119   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27120
27121
27122
27123   while (!$_matched && !$commit)
27124   {
27125
27126     Parse::RecDescent::_trace(q{Trying production: [int_const]},
27127             Parse::RecDescent::_tracefirst($_[1]),
27128             q{constant},
27129             $tracelevel)
27130             if defined $::RD_TRACE;
27131     my $thisprod = $thisrule->{"prods"}[0];
27132     $text = $_[1];
27133     my $_savetext;
27134     @item = (q{constant});
27135     %item = (__RULE__ => q{constant});
27136     my $repcount = 0;
27137
27138
27139     Parse::RecDescent::_trace(q{Trying subrule: [int_const]},
27140           Parse::RecDescent::_tracefirst($text),
27141           q{constant},
27142           $tracelevel)
27143           if defined $::RD_TRACE;
27144     if (1) { no strict qw{refs};
27145     $expectation->is(q{})->at($text);
27146     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::int_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27147     {
27148
27149       Parse::RecDescent::_trace(q{<<Didn't match subrule: [int_const]>>},
27150               Parse::RecDescent::_tracefirst($text),
27151               q{constant},
27152               $tracelevel)
27153               if defined $::RD_TRACE;
27154       $expectation->failed();
27155       last;
27156     }
27157     Parse::RecDescent::_trace(q{>>Matched subrule: [int_const]<< (return value: [}
27158           . $_tok . q{]},
27159
27160             Parse::RecDescent::_tracefirst($text),
27161             q{constant},
27162             $tracelevel)
27163             if defined $::RD_TRACE;
27164     $item{q{int_const}} = $_tok;
27165     push @item, $_tok;
27166
27167     }
27168
27169
27170     Parse::RecDescent::_trace(q{>>Matched production: [int_const]<<},
27171             Parse::RecDescent::_tracefirst($text),
27172             q{constant},
27173             $tracelevel)
27174             if defined $::RD_TRACE;
27175     $_matched = 1;
27176     last;
27177   }
27178
27179
27180   while (!$_matched && !$commit)
27181   {
27182
27183     Parse::RecDescent::_trace(q{Trying production: [float_const]},
27184             Parse::RecDescent::_tracefirst($_[1]),
27185             q{constant},
27186             $tracelevel)
27187             if defined $::RD_TRACE;
27188     my $thisprod = $thisrule->{"prods"}[1];
27189     $text = $_[1];
27190     my $_savetext;
27191     @item = (q{constant});
27192     %item = (__RULE__ => q{constant});
27193     my $repcount = 0;
27194
27195
27196     Parse::RecDescent::_trace(q{Trying subrule: [float_const]},
27197           Parse::RecDescent::_tracefirst($text),
27198           q{constant},
27199           $tracelevel)
27200           if defined $::RD_TRACE;
27201     if (1) { no strict qw{refs};
27202     $expectation->is(q{})->at($text);
27203     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::float_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27204     {
27205
27206       Parse::RecDescent::_trace(q{<<Didn't match subrule: [float_const]>>},
27207               Parse::RecDescent::_tracefirst($text),
27208               q{constant},
27209               $tracelevel)
27210               if defined $::RD_TRACE;
27211       $expectation->failed();
27212       last;
27213     }
27214     Parse::RecDescent::_trace(q{>>Matched subrule: [float_const]<< (return value: [}
27215           . $_tok . q{]},
27216
27217             Parse::RecDescent::_tracefirst($text),
27218             q{constant},
27219             $tracelevel)
27220             if defined $::RD_TRACE;
27221     $item{q{float_const}} = $_tok;
27222     push @item, $_tok;
27223
27224     }
27225
27226
27227     Parse::RecDescent::_trace(q{>>Matched production: [float_const]<<},
27228             Parse::RecDescent::_tracefirst($text),
27229             q{constant},
27230             $tracelevel)
27231             if defined $::RD_TRACE;
27232     $_matched = 1;
27233     last;
27234   }
27235
27236
27237   while (!$_matched && !$commit)
27238   {
27239
27240     Parse::RecDescent::_trace(q{Trying production: [dec_const]},
27241             Parse::RecDescent::_tracefirst($_[1]),
27242             q{constant},
27243             $tracelevel)
27244             if defined $::RD_TRACE;
27245     my $thisprod = $thisrule->{"prods"}[2];
27246     $text = $_[1];
27247     my $_savetext;
27248     @item = (q{constant});
27249     %item = (__RULE__ => q{constant});
27250     my $repcount = 0;
27251
27252
27253     Parse::RecDescent::_trace(q{Trying subrule: [dec_const]},
27254           Parse::RecDescent::_tracefirst($text),
27255           q{constant},
27256           $tracelevel)
27257           if defined $::RD_TRACE;
27258     if (1) { no strict qw{refs};
27259     $expectation->is(q{})->at($text);
27260     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dec_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27261     {
27262
27263       Parse::RecDescent::_trace(q{<<Didn't match subrule: [dec_const]>>},
27264               Parse::RecDescent::_tracefirst($text),
27265               q{constant},
27266               $tracelevel)
27267               if defined $::RD_TRACE;
27268       $expectation->failed();
27269       last;
27270     }
27271     Parse::RecDescent::_trace(q{>>Matched subrule: [dec_const]<< (return value: [}
27272           . $_tok . q{]},
27273
27274             Parse::RecDescent::_tracefirst($text),
27275             q{constant},
27276             $tracelevel)
27277             if defined $::RD_TRACE;
27278     $item{q{dec_const}} = $_tok;
27279     push @item, $_tok;
27280
27281     }
27282
27283
27284     Parse::RecDescent::_trace(q{>>Matched production: [dec_const]<<},
27285             Parse::RecDescent::_tracefirst($text),
27286             q{constant},
27287             $tracelevel)
27288             if defined $::RD_TRACE;
27289     $_matched = 1;
27290     last;
27291   }
27292
27293
27294   while (!$_matched && !$commit)
27295   {
27296
27297     Parse::RecDescent::_trace(q{Trying production: [char_const]},
27298             Parse::RecDescent::_tracefirst($_[1]),
27299             q{constant},
27300             $tracelevel)
27301             if defined $::RD_TRACE;
27302     my $thisprod = $thisrule->{"prods"}[3];
27303     $text = $_[1];
27304     my $_savetext;
27305     @item = (q{constant});
27306     %item = (__RULE__ => q{constant});
27307     my $repcount = 0;
27308
27309
27310     Parse::RecDescent::_trace(q{Trying subrule: [char_const]},
27311           Parse::RecDescent::_tracefirst($text),
27312           q{constant},
27313           $tracelevel)
27314           if defined $::RD_TRACE;
27315     if (1) { no strict qw{refs};
27316     $expectation->is(q{})->at($text);
27317     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::char_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27318     {
27319
27320       Parse::RecDescent::_trace(q{<<Didn't match subrule: [char_const]>>},
27321               Parse::RecDescent::_tracefirst($text),
27322               q{constant},
27323               $tracelevel)
27324               if defined $::RD_TRACE;
27325       $expectation->failed();
27326       last;
27327     }
27328     Parse::RecDescent::_trace(q{>>Matched subrule: [char_const]<< (return value: [}
27329           . $_tok . q{]},
27330
27331             Parse::RecDescent::_tracefirst($text),
27332             q{constant},
27333             $tracelevel)
27334             if defined $::RD_TRACE;
27335     $item{q{char_const}} = $_tok;
27336     push @item, $_tok;
27337
27338     }
27339
27340
27341     Parse::RecDescent::_trace(q{>>Matched production: [char_const]<<},
27342             Parse::RecDescent::_tracefirst($text),
27343             q{constant},
27344             $tracelevel)
27345             if defined $::RD_TRACE;
27346     $_matched = 1;
27347     last;
27348   }
27349
27350
27351   while (!$_matched && !$commit)
27352   {
27353
27354     Parse::RecDescent::_trace(q{Trying production: [hex_const]},
27355             Parse::RecDescent::_tracefirst($_[1]),
27356             q{constant},
27357             $tracelevel)
27358             if defined $::RD_TRACE;
27359     my $thisprod = $thisrule->{"prods"}[4];
27360     $text = $_[1];
27361     my $_savetext;
27362     @item = (q{constant});
27363     %item = (__RULE__ => q{constant});
27364     my $repcount = 0;
27365
27366
27367     Parse::RecDescent::_trace(q{Trying subrule: [hex_const]},
27368           Parse::RecDescent::_tracefirst($text),
27369           q{constant},
27370           $tracelevel)
27371           if defined $::RD_TRACE;
27372     if (1) { no strict qw{refs};
27373     $expectation->is(q{})->at($text);
27374     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::hex_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27375     {
27376
27377       Parse::RecDescent::_trace(q{<<Didn't match subrule: [hex_const]>>},
27378               Parse::RecDescent::_tracefirst($text),
27379               q{constant},
27380               $tracelevel)
27381               if defined $::RD_TRACE;
27382       $expectation->failed();
27383       last;
27384     }
27385     Parse::RecDescent::_trace(q{>>Matched subrule: [hex_const]<< (return value: [}
27386           . $_tok . q{]},
27387
27388             Parse::RecDescent::_tracefirst($text),
27389             q{constant},
27390             $tracelevel)
27391             if defined $::RD_TRACE;
27392     $item{q{hex_const}} = $_tok;
27393     push @item, $_tok;
27394
27395     }
27396
27397
27398     Parse::RecDescent::_trace(q{>>Matched production: [hex_const]<<},
27399             Parse::RecDescent::_tracefirst($text),
27400             q{constant},
27401             $tracelevel)
27402             if defined $::RD_TRACE;
27403     $_matched = 1;
27404     last;
27405   }
27406
27407
27408   while (!$_matched && !$commit)
27409   {
27410
27411     Parse::RecDescent::_trace(q{Trying production: [grastr_const]},
27412             Parse::RecDescent::_tracefirst($_[1]),
27413             q{constant},
27414             $tracelevel)
27415             if defined $::RD_TRACE;
27416     my $thisprod = $thisrule->{"prods"}[5];
27417     $text = $_[1];
27418     my $_savetext;
27419     @item = (q{constant});
27420     %item = (__RULE__ => q{constant});
27421     my $repcount = 0;
27422
27423
27424     Parse::RecDescent::_trace(q{Trying subrule: [grastr_const]},
27425           Parse::RecDescent::_tracefirst($text),
27426           q{constant},
27427           $tracelevel)
27428           if defined $::RD_TRACE;
27429     if (1) { no strict qw{refs};
27430     $expectation->is(q{})->at($text);
27431     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::grastr_const($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27432     {
27433
27434       Parse::RecDescent::_trace(q{<<Didn't match subrule: [grastr_const]>>},
27435               Parse::RecDescent::_tracefirst($text),
27436               q{constant},
27437               $tracelevel)
27438               if defined $::RD_TRACE;
27439       $expectation->failed();
27440       last;
27441     }
27442     Parse::RecDescent::_trace(q{>>Matched subrule: [grastr_const]<< (return value: [}
27443           . $_tok . q{]},
27444
27445             Parse::RecDescent::_tracefirst($text),
27446             q{constant},
27447             $tracelevel)
27448             if defined $::RD_TRACE;
27449     $item{q{grastr_const}} = $_tok;
27450     push @item, $_tok;
27451
27452     }
27453
27454
27455     Parse::RecDescent::_trace(q{>>Matched production: [grastr_const]<<},
27456             Parse::RecDescent::_tracefirst($text),
27457             q{constant},
27458             $tracelevel)
27459             if defined $::RD_TRACE;
27460     $_matched = 1;
27461     last;
27462   }
27463
27464
27465         unless ( $_matched || defined($return) || defined($score) )
27466   {
27467
27468
27469     $_[1] = $text;  # NOT SURE THIS IS NEEDED
27470     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
27471            Parse::RecDescent::_tracefirst($_[1]),
27472            q{constant},
27473            $tracelevel)
27474           if defined $::RD_TRACE;
27475     return undef;
27476   }
27477   if (!defined($return) && defined($score))
27478   {
27479     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27480             q{constant},
27481             $tracelevel)
27482             if defined $::RD_TRACE;
27483     $return = $score_return;
27484   }
27485   splice @{$thisparser->{errors}}, $err_at;
27486   $return = $item[$#item] unless defined $return;
27487   if (defined $::RD_TRACE)
27488   {
27489     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27490             $return . q{])}, "",
27491             q{constant},
27492             $tracelevel);
27493     Parse::RecDescent::_trace(q{(consumed: [} .
27494             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
27495             Parse::RecDescent::_tracefirst($text),
27496             , q{constant},
27497             $tracelevel)
27498   }
27499   $_[1] = $text;
27500   return $return;
27501 }
27502
27503 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27504 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_ranking_function
27505 {
27506   my $thisparser = $_[0];
27507   use vars q{$tracelevel};
27508   local $tracelevel = ($tracelevel||0)+1;
27509   $ERRORS = 0;
27510   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_ranking_function"};
27511
27512   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_ranking_function]},
27513           Parse::RecDescent::_tracefirst($_[1]),
27514           q{_alternation_1_of_production_1_of_rule_ranking_function},
27515           $tracelevel)
27516           if defined $::RD_TRACE;
27517
27518
27519   my $err_at = @{$thisparser->{errors}};
27520
27521   my $score;
27522   my $score_return;
27523   my $_tok;
27524   my $return = undef;
27525   my $_matched=0;
27526   my $commit=0;
27527   my @item = ();
27528   my %item = ();
27529   my $repeating =  defined($_[2]) && $_[2];
27530   my $_noactions = defined($_[3]) && $_[3];
27531    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
27532   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
27533   my $text;
27534   my $lastsep="";
27535   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27536   $expectation->at($_[1]);
27537
27538   my $thisline;
27539   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27540
27541
27542
27543   while (!$_matched && !$commit)
27544   {
27545
27546     Parse::RecDescent::_trace(q{Trying production: [/RANK/ '()']},
27547             Parse::RecDescent::_tracefirst($_[1]),
27548             q{_alternation_1_of_production_1_of_rule_ranking_function},
27549             $tracelevel)
27550             if defined $::RD_TRACE;
27551     my $thisprod = $thisrule->{"prods"}[0];
27552     $text = $_[1];
27553     my $_savetext;
27554     @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
27555     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
27556     my $repcount = 0;
27557
27558
27559     Parse::RecDescent::_trace(q{Trying terminal: [/RANK/]}, Parse::RecDescent::_tracefirst($text),
27560             q{_alternation_1_of_production_1_of_rule_ranking_function},
27561             $tracelevel)
27562             if defined $::RD_TRACE;
27563     $lastsep = "";
27564     $expectation->is(q{})->at($text);
27565
27566
27567     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:RANK)//)
27568     {
27569
27570       $expectation->failed();
27571       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
27572               Parse::RecDescent::_tracefirst($text))
27573           if defined $::RD_TRACE;
27574
27575       last;
27576     }
27577     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27578             . $& . q{])},
27579               Parse::RecDescent::_tracefirst($text))
27580           if defined $::RD_TRACE;
27581     push @item, $item{__PATTERN1__}=$&;
27582
27583
27584     Parse::RecDescent::_trace(q{Trying terminal: ['()']},
27585             Parse::RecDescent::_tracefirst($text),
27586             q{_alternation_1_of_production_1_of_rule_ranking_function},
27587             $tracelevel)
27588             if defined $::RD_TRACE;
27589     $lastsep = "";
27590     $expectation->is(q{'()'})->at($text);
27591
27592
27593     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(\)//)
27594     {
27595
27596       $expectation->failed();
27597       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
27598               Parse::RecDescent::_tracefirst($text))
27599               if defined $::RD_TRACE;
27600       last;
27601     }
27602     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27603             . $& . q{])},
27604               Parse::RecDescent::_tracefirst($text))
27605               if defined $::RD_TRACE;
27606     push @item, $item{__STRING1__}=$&;
27607
27608
27609
27610     Parse::RecDescent::_trace(q{>>Matched production: [/RANK/ '()']<<},
27611             Parse::RecDescent::_tracefirst($text),
27612             q{_alternation_1_of_production_1_of_rule_ranking_function},
27613             $tracelevel)
27614             if defined $::RD_TRACE;
27615     $_matched = 1;
27616     last;
27617   }
27618
27619
27620   while (!$_matched && !$commit)
27621   {
27622
27623     Parse::RecDescent::_trace(q{Trying production: [/DENSE_RANK|DENSERANK/i '()']},
27624             Parse::RecDescent::_tracefirst($_[1]),
27625             q{_alternation_1_of_production_1_of_rule_ranking_function},
27626             $tracelevel)
27627             if defined $::RD_TRACE;
27628     my $thisprod = $thisrule->{"prods"}[1];
27629     $text = $_[1];
27630     my $_savetext;
27631     @item = (q{_alternation_1_of_production_1_of_rule_ranking_function});
27632     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_ranking_function});
27633     my $repcount = 0;
27634
27635
27636     Parse::RecDescent::_trace(q{Trying terminal: [/DENSE_RANK|DENSERANK/i]}, Parse::RecDescent::_tracefirst($text),
27637             q{_alternation_1_of_production_1_of_rule_ranking_function},
27638             $tracelevel)
27639             if defined $::RD_TRACE;
27640     $lastsep = "";
27641     $expectation->is(q{})->at($text);
27642
27643
27644     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DENSE_RANK|DENSERANK)//i)
27645     {
27646
27647       $expectation->failed();
27648       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
27649               Parse::RecDescent::_tracefirst($text))
27650           if defined $::RD_TRACE;
27651
27652       last;
27653     }
27654     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27655             . $& . q{])},
27656               Parse::RecDescent::_tracefirst($text))
27657           if defined $::RD_TRACE;
27658     push @item, $item{__PATTERN1__}=$&;
27659
27660
27661     Parse::RecDescent::_trace(q{Trying terminal: ['()']},
27662             Parse::RecDescent::_tracefirst($text),
27663             q{_alternation_1_of_production_1_of_rule_ranking_function},
27664             $tracelevel)
27665             if defined $::RD_TRACE;
27666     $lastsep = "";
27667     $expectation->is(q{'()'})->at($text);
27668
27669
27670     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(\)//)
27671     {
27672
27673       $expectation->failed();
27674       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
27675               Parse::RecDescent::_tracefirst($text))
27676               if defined $::RD_TRACE;
27677       last;
27678     }
27679     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
27680             . $& . q{])},
27681               Parse::RecDescent::_tracefirst($text))
27682               if defined $::RD_TRACE;
27683     push @item, $item{__STRING1__}=$&;
27684
27685
27686
27687     Parse::RecDescent::_trace(q{>>Matched production: [/DENSE_RANK|DENSERANK/i '()']<<},
27688             Parse::RecDescent::_tracefirst($text),
27689             q{_alternation_1_of_production_1_of_rule_ranking_function},
27690             $tracelevel)
27691             if defined $::RD_TRACE;
27692     $_matched = 1;
27693     last;
27694   }
27695
27696
27697         unless ( $_matched || defined($return) || defined($score) )
27698   {
27699
27700
27701     $_[1] = $text;  # NOT SURE THIS IS NEEDED
27702     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
27703            Parse::RecDescent::_tracefirst($_[1]),
27704            q{_alternation_1_of_production_1_of_rule_ranking_function},
27705            $tracelevel)
27706           if defined $::RD_TRACE;
27707     return undef;
27708   }
27709   if (!defined($return) && defined($score))
27710   {
27711     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27712             q{_alternation_1_of_production_1_of_rule_ranking_function},
27713             $tracelevel)
27714             if defined $::RD_TRACE;
27715     $return = $score_return;
27716   }
27717   splice @{$thisparser->{errors}}, $err_at;
27718   $return = $item[$#item] unless defined $return;
27719   if (defined $::RD_TRACE)
27720   {
27721     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27722             $return . q{])}, "",
27723             q{_alternation_1_of_production_1_of_rule_ranking_function},
27724             $tracelevel);
27725     Parse::RecDescent::_trace(q{(consumed: [} .
27726             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
27727             Parse::RecDescent::_tracefirst($text),
27728             , q{_alternation_1_of_production_1_of_rule_ranking_function},
27729             $tracelevel)
27730   }
27731   $_[1] = $text;
27732   return $return;
27733 }
27734
27735 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27736 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause
27737 {
27738   my $thisparser = $_[0];
27739   use vars q{$tracelevel};
27740   local $tracelevel = ($tracelevel||0)+1;
27741   $ERRORS = 0;
27742   my $thisrule = $thisparser->{"rules"}{"window_aggregation_group_clause"};
27743
27744   Parse::RecDescent::_trace(q{Trying rule: [window_aggregation_group_clause]},
27745           Parse::RecDescent::_tracefirst($_[1]),
27746           q{window_aggregation_group_clause},
27747           $tracelevel)
27748           if defined $::RD_TRACE;
27749
27750
27751   my $err_at = @{$thisparser->{errors}};
27752
27753   my $score;
27754   my $score_return;
27755   my $_tok;
27756   my $return = undef;
27757   my $_matched=0;
27758   my $commit=0;
27759   my @item = ();
27760   my %item = ();
27761   my $repeating =  defined($_[2]) && $_[2];
27762   my $_noactions = defined($_[3]) && $_[3];
27763    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
27764   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
27765   my $text;
27766   my $lastsep="";
27767   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27768   $expectation->at($_[1]);
27769
27770   my $thisline;
27771   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27772
27773
27774
27775   while (!$_matched && !$commit)
27776   {
27777
27778     Parse::RecDescent::_trace(q{Trying production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]},
27779             Parse::RecDescent::_tracefirst($_[1]),
27780             q{window_aggregation_group_clause},
27781             $tracelevel)
27782             if defined $::RD_TRACE;
27783     my $thisprod = $thisrule->{"prods"}[0];
27784     $text = $_[1];
27785     my $_savetext;
27786     @item = (q{window_aggregation_group_clause});
27787     %item = (__RULE__ => q{window_aggregation_group_clause});
27788     my $repcount = 0;
27789
27790
27791     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]},
27792           Parse::RecDescent::_tracefirst($text),
27793           q{window_aggregation_group_clause},
27794           $tracelevel)
27795           if defined $::RD_TRACE;
27796     if (1) { no strict qw{refs};
27797     $expectation->is(q{})->at($text);
27798     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_aggregation_group_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27799     {
27800
27801       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]>>},
27802               Parse::RecDescent::_tracefirst($text),
27803               q{window_aggregation_group_clause},
27804               $tracelevel)
27805               if defined $::RD_TRACE;
27806       $expectation->failed();
27807       last;
27808     }
27809     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
27810           . $_tok . q{]},
27811
27812             Parse::RecDescent::_tracefirst($text),
27813             q{window_aggregation_group_clause},
27814             $tracelevel)
27815             if defined $::RD_TRACE;
27816     $item{q{_alternation_1_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
27817     push @item, $_tok;
27818
27819     }
27820
27821     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
27822           Parse::RecDescent::_tracefirst($text),
27823           q{window_aggregation_group_clause},
27824           $tracelevel)
27825           if defined $::RD_TRACE;
27826     if (1) { no strict qw{refs};
27827     $expectation->is(q{group_start, or group_between, or group_end})->at($text);
27828     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_window_aggregation_group_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27829     {
27830
27831       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]>>},
27832               Parse::RecDescent::_tracefirst($text),
27833               q{window_aggregation_group_clause},
27834               $tracelevel)
27835               if defined $::RD_TRACE;
27836       $expectation->failed();
27837       last;
27838     }
27839     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]<< (return value: [}
27840           . $_tok . q{]},
27841
27842             Parse::RecDescent::_tracefirst($text),
27843             q{window_aggregation_group_clause},
27844             $tracelevel)
27845             if defined $::RD_TRACE;
27846     $item{q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause}} = $_tok;
27847     push @item, $_tok;
27848
27849     }
27850
27851
27852     Parse::RecDescent::_trace(q{>>Matched production: [/ROWS/i, or /RANGE/i group_start, or group_between, or group_end]<<},
27853             Parse::RecDescent::_tracefirst($text),
27854             q{window_aggregation_group_clause},
27855             $tracelevel)
27856             if defined $::RD_TRACE;
27857     $_matched = 1;
27858     last;
27859   }
27860
27861
27862         unless ( $_matched || defined($return) || defined($score) )
27863   {
27864
27865
27866     $_[1] = $text;  # NOT SURE THIS IS NEEDED
27867     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
27868            Parse::RecDescent::_tracefirst($_[1]),
27869            q{window_aggregation_group_clause},
27870            $tracelevel)
27871           if defined $::RD_TRACE;
27872     return undef;
27873   }
27874   if (!defined($return) && defined($score))
27875   {
27876     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
27877             q{window_aggregation_group_clause},
27878             $tracelevel)
27879             if defined $::RD_TRACE;
27880     $return = $score_return;
27881   }
27882   splice @{$thisparser->{errors}}, $err_at;
27883   $return = $item[$#item] unless defined $return;
27884   if (defined $::RD_TRACE)
27885   {
27886     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
27887             $return . q{])}, "",
27888             q{window_aggregation_group_clause},
27889             $tracelevel);
27890     Parse::RecDescent::_trace(q{(consumed: [} .
27891             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
27892             Parse::RecDescent::_tracefirst($text),
27893             , q{window_aggregation_group_clause},
27894             $tracelevel)
27895   }
27896   $_[1] = $text;
27897   return $return;
27898 }
27899
27900 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
27901 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule_window_aggregation_group_clause
27902 {
27903   my $thisparser = $_[0];
27904   use vars q{$tracelevel};
27905   local $tracelevel = ($tracelevel||0)+1;
27906   $ERRORS = 0;
27907   my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule_window_aggregation_group_clause"};
27908
27909   Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule_window_aggregation_group_clause]},
27910           Parse::RecDescent::_tracefirst($_[1]),
27911           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27912           $tracelevel)
27913           if defined $::RD_TRACE;
27914
27915
27916   my $err_at = @{$thisparser->{errors}};
27917
27918   my $score;
27919   my $score_return;
27920   my $_tok;
27921   my $return = undef;
27922   my $_matched=0;
27923   my $commit=0;
27924   my @item = ();
27925   my %item = ();
27926   my $repeating =  defined($_[2]) && $_[2];
27927   my $_noactions = defined($_[3]) && $_[3];
27928    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
27929   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
27930   my $text;
27931   my $lastsep="";
27932   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
27933   $expectation->at($_[1]);
27934
27935   my $thisline;
27936   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
27937
27938
27939
27940   while (!$_matched && !$commit)
27941   {
27942
27943     Parse::RecDescent::_trace(q{Trying production: [group_start]},
27944             Parse::RecDescent::_tracefirst($_[1]),
27945             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27946             $tracelevel)
27947             if defined $::RD_TRACE;
27948     my $thisprod = $thisrule->{"prods"}[0];
27949     $text = $_[1];
27950     my $_savetext;
27951     @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
27952     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
27953     my $repcount = 0;
27954
27955
27956     Parse::RecDescent::_trace(q{Trying subrule: [group_start]},
27957           Parse::RecDescent::_tracefirst($text),
27958           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27959           $tracelevel)
27960           if defined $::RD_TRACE;
27961     if (1) { no strict qw{refs};
27962     $expectation->is(q{})->at($text);
27963     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
27964     {
27965
27966       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_start]>>},
27967               Parse::RecDescent::_tracefirst($text),
27968               q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27969               $tracelevel)
27970               if defined $::RD_TRACE;
27971       $expectation->failed();
27972       last;
27973     }
27974     Parse::RecDescent::_trace(q{>>Matched subrule: [group_start]<< (return value: [}
27975           . $_tok . q{]},
27976
27977             Parse::RecDescent::_tracefirst($text),
27978             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27979             $tracelevel)
27980             if defined $::RD_TRACE;
27981     $item{q{group_start}} = $_tok;
27982     push @item, $_tok;
27983
27984     }
27985
27986
27987     Parse::RecDescent::_trace(q{>>Matched production: [group_start]<<},
27988             Parse::RecDescent::_tracefirst($text),
27989             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
27990             $tracelevel)
27991             if defined $::RD_TRACE;
27992     $_matched = 1;
27993     last;
27994   }
27995
27996
27997   while (!$_matched && !$commit)
27998   {
27999
28000     Parse::RecDescent::_trace(q{Trying production: [group_between]},
28001             Parse::RecDescent::_tracefirst($_[1]),
28002             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28003             $tracelevel)
28004             if defined $::RD_TRACE;
28005     my $thisprod = $thisrule->{"prods"}[1];
28006     $text = $_[1];
28007     my $_savetext;
28008     @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28009     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28010     my $repcount = 0;
28011
28012
28013     Parse::RecDescent::_trace(q{Trying subrule: [group_between]},
28014           Parse::RecDescent::_tracefirst($text),
28015           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28016           $tracelevel)
28017           if defined $::RD_TRACE;
28018     if (1) { no strict qw{refs};
28019     $expectation->is(q{})->at($text);
28020     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28021     {
28022
28023       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_between]>>},
28024               Parse::RecDescent::_tracefirst($text),
28025               q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28026               $tracelevel)
28027               if defined $::RD_TRACE;
28028       $expectation->failed();
28029       last;
28030     }
28031     Parse::RecDescent::_trace(q{>>Matched subrule: [group_between]<< (return value: [}
28032           . $_tok . q{]},
28033
28034             Parse::RecDescent::_tracefirst($text),
28035             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28036             $tracelevel)
28037             if defined $::RD_TRACE;
28038     $item{q{group_between}} = $_tok;
28039     push @item, $_tok;
28040
28041     }
28042
28043
28044     Parse::RecDescent::_trace(q{>>Matched production: [group_between]<<},
28045             Parse::RecDescent::_tracefirst($text),
28046             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28047             $tracelevel)
28048             if defined $::RD_TRACE;
28049     $_matched = 1;
28050     last;
28051   }
28052
28053
28054   while (!$_matched && !$commit)
28055   {
28056
28057     Parse::RecDescent::_trace(q{Trying production: [group_end]},
28058             Parse::RecDescent::_tracefirst($_[1]),
28059             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28060             $tracelevel)
28061             if defined $::RD_TRACE;
28062     my $thisprod = $thisrule->{"prods"}[2];
28063     $text = $_[1];
28064     my $_savetext;
28065     @item = (q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28066     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause});
28067     my $repcount = 0;
28068
28069
28070     Parse::RecDescent::_trace(q{Trying subrule: [group_end]},
28071           Parse::RecDescent::_tracefirst($text),
28072           q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28073           $tracelevel)
28074           if defined $::RD_TRACE;
28075     if (1) { no strict qw{refs};
28076     $expectation->is(q{})->at($text);
28077     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_end($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28078     {
28079
28080       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_end]>>},
28081               Parse::RecDescent::_tracefirst($text),
28082               q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28083               $tracelevel)
28084               if defined $::RD_TRACE;
28085       $expectation->failed();
28086       last;
28087     }
28088     Parse::RecDescent::_trace(q{>>Matched subrule: [group_end]<< (return value: [}
28089           . $_tok . q{]},
28090
28091             Parse::RecDescent::_tracefirst($text),
28092             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28093             $tracelevel)
28094             if defined $::RD_TRACE;
28095     $item{q{group_end}} = $_tok;
28096     push @item, $_tok;
28097
28098     }
28099
28100
28101     Parse::RecDescent::_trace(q{>>Matched production: [group_end]<<},
28102             Parse::RecDescent::_tracefirst($text),
28103             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28104             $tracelevel)
28105             if defined $::RD_TRACE;
28106     $_matched = 1;
28107     last;
28108   }
28109
28110
28111         unless ( $_matched || defined($return) || defined($score) )
28112   {
28113
28114
28115     $_[1] = $text;  # NOT SURE THIS IS NEEDED
28116     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
28117            Parse::RecDescent::_tracefirst($_[1]),
28118            q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28119            $tracelevel)
28120           if defined $::RD_TRACE;
28121     return undef;
28122   }
28123   if (!defined($return) && defined($score))
28124   {
28125     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28126             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28127             $tracelevel)
28128             if defined $::RD_TRACE;
28129     $return = $score_return;
28130   }
28131   splice @{$thisparser->{errors}}, $err_at;
28132   $return = $item[$#item] unless defined $return;
28133   if (defined $::RD_TRACE)
28134   {
28135     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28136             $return . q{])}, "",
28137             q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28138             $tracelevel);
28139     Parse::RecDescent::_trace(q{(consumed: [} .
28140             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
28141             Parse::RecDescent::_tracefirst($text),
28142             , q{_alternation_2_of_production_1_of_rule_window_aggregation_group_clause},
28143             $tracelevel)
28144   }
28145   $_[1] = $text;
28146   return $return;
28147 }
28148
28149 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28150 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::VIEW
28151 {
28152   my $thisparser = $_[0];
28153   use vars q{$tracelevel};
28154   local $tracelevel = ($tracelevel||0)+1;
28155   $ERRORS = 0;
28156   my $thisrule = $thisparser->{"rules"}{"VIEW"};
28157
28158   Parse::RecDescent::_trace(q{Trying rule: [VIEW]},
28159           Parse::RecDescent::_tracefirst($_[1]),
28160           q{VIEW},
28161           $tracelevel)
28162           if defined $::RD_TRACE;
28163
28164
28165   my $err_at = @{$thisparser->{errors}};
28166
28167   my $score;
28168   my $score_return;
28169   my $_tok;
28170   my $return = undef;
28171   my $_matched=0;
28172   my $commit=0;
28173   my @item = ();
28174   my %item = ();
28175   my $repeating =  defined($_[2]) && $_[2];
28176   my $_noactions = defined($_[3]) && $_[3];
28177    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
28178   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
28179   my $text;
28180   my $lastsep="";
28181   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28182   $expectation->at($_[1]);
28183
28184   my $thisline;
28185   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28186
28187
28188
28189   while (!$_matched && !$commit)
28190   {
28191
28192     Parse::RecDescent::_trace(q{Trying production: [/view/i]},
28193             Parse::RecDescent::_tracefirst($_[1]),
28194             q{VIEW},
28195             $tracelevel)
28196             if defined $::RD_TRACE;
28197     my $thisprod = $thisrule->{"prods"}[0];
28198     $text = $_[1];
28199     my $_savetext;
28200     @item = (q{VIEW});
28201     %item = (__RULE__ => q{VIEW});
28202     my $repcount = 0;
28203
28204
28205     Parse::RecDescent::_trace(q{Trying terminal: [/view/i]}, Parse::RecDescent::_tracefirst($text),
28206             q{VIEW},
28207             $tracelevel)
28208             if defined $::RD_TRACE;
28209     $lastsep = "";
28210     $expectation->is(q{})->at($text);
28211
28212
28213     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:view)//i)
28214     {
28215
28216       $expectation->failed();
28217       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28218               Parse::RecDescent::_tracefirst($text))
28219           if defined $::RD_TRACE;
28220
28221       last;
28222     }
28223     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28224             . $& . q{])},
28225               Parse::RecDescent::_tracefirst($text))
28226           if defined $::RD_TRACE;
28227     push @item, $item{__PATTERN1__}=$&;
28228
28229
28230
28231     Parse::RecDescent::_trace(q{>>Matched production: [/view/i]<<},
28232             Parse::RecDescent::_tracefirst($text),
28233             q{VIEW},
28234             $tracelevel)
28235             if defined $::RD_TRACE;
28236     $_matched = 1;
28237     last;
28238   }
28239
28240
28241         unless ( $_matched || defined($return) || defined($score) )
28242   {
28243
28244
28245     $_[1] = $text;  # NOT SURE THIS IS NEEDED
28246     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
28247            Parse::RecDescent::_tracefirst($_[1]),
28248            q{VIEW},
28249            $tracelevel)
28250           if defined $::RD_TRACE;
28251     return undef;
28252   }
28253   if (!defined($return) && defined($score))
28254   {
28255     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28256             q{VIEW},
28257             $tracelevel)
28258             if defined $::RD_TRACE;
28259     $return = $score_return;
28260   }
28261   splice @{$thisparser->{errors}}, $err_at;
28262   $return = $item[$#item] unless defined $return;
28263   if (defined $::RD_TRACE)
28264   {
28265     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28266             $return . q{])}, "",
28267             q{VIEW},
28268             $tracelevel);
28269     Parse::RecDescent::_trace(q{(consumed: [} .
28270             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
28271             Parse::RecDescent::_tracefirst($text),
28272             , q{VIEW},
28273             $tracelevel)
28274   }
28275   $_[1] = $text;
28276   return $return;
28277 }
28278
28279 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28280 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::with_expression
28281 {
28282   my $thisparser = $_[0];
28283   use vars q{$tracelevel};
28284   local $tracelevel = ($tracelevel||0)+1;
28285   $ERRORS = 0;
28286   my $thisrule = $thisparser->{"rules"}{"with_expression"};
28287
28288   Parse::RecDescent::_trace(q{Trying rule: [with_expression]},
28289           Parse::RecDescent::_tracefirst($_[1]),
28290           q{with_expression},
28291           $tracelevel)
28292           if defined $::RD_TRACE;
28293
28294
28295   my $err_at = @{$thisparser->{errors}};
28296
28297   my $score;
28298   my $score_return;
28299   my $_tok;
28300   my $return = undef;
28301   my $_matched=0;
28302   my $commit=0;
28303   my @item = ();
28304   my %item = ();
28305   my $repeating =  defined($_[2]) && $_[2];
28306   my $_noactions = defined($_[3]) && $_[3];
28307    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
28308   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
28309   my $text;
28310   my $lastsep="";
28311   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28312   $expectation->at($_[1]);
28313
28314   my $thisline;
28315   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28316
28317
28318
28319   while (!$_matched && !$commit)
28320   {
28321
28322     Parse::RecDescent::_trace(q{Trying production: [/WITH/i <leftop: common_table_expression /,/ common_table_expression>]},
28323             Parse::RecDescent::_tracefirst($_[1]),
28324             q{with_expression},
28325             $tracelevel)
28326             if defined $::RD_TRACE;
28327     my $thisprod = $thisrule->{"prods"}[0];
28328     $text = $_[1];
28329     my $_savetext;
28330     @item = (q{with_expression});
28331     %item = (__RULE__ => q{with_expression});
28332     my $repcount = 0;
28333
28334
28335     Parse::RecDescent::_trace(q{Trying terminal: [/WITH/i]}, Parse::RecDescent::_tracefirst($text),
28336             q{with_expression},
28337             $tracelevel)
28338             if defined $::RD_TRACE;
28339     $lastsep = "";
28340     $expectation->is(q{})->at($text);
28341
28342
28343     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WITH)//i)
28344     {
28345
28346       $expectation->failed();
28347       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28348               Parse::RecDescent::_tracefirst($text))
28349           if defined $::RD_TRACE;
28350
28351       last;
28352     }
28353     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28354             . $& . q{])},
28355               Parse::RecDescent::_tracefirst($text))
28356           if defined $::RD_TRACE;
28357     push @item, $item{__PATTERN1__}=$&;
28358
28359
28360     Parse::RecDescent::_trace(q{Trying operator: [<leftop: common_table_expression /,/ common_table_expression>]},
28361           Parse::RecDescent::_tracefirst($text),
28362           q{with_expression},
28363           $tracelevel)
28364           if defined $::RD_TRACE;
28365     $expectation->is(q{<leftop: common_table_expression /,/ common_table_expression>})->at($text);
28366
28367     $_tok = undef;
28368     OPLOOP: while (1)
28369     {
28370       $repcount = 0;
28371       my  @item;
28372
28373       # MATCH LEFTARG
28374
28375     Parse::RecDescent::_trace(q{Trying subrule: [common_table_expression]},
28376           Parse::RecDescent::_tracefirst($text),
28377           q{with_expression},
28378           $tracelevel)
28379           if defined $::RD_TRACE;
28380     if (1) { no strict qw{refs};
28381     $expectation->is(q{common_table_expression})->at($text);
28382     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28383     {
28384
28385       Parse::RecDescent::_trace(q{<<Didn't match subrule: [common_table_expression]>>},
28386               Parse::RecDescent::_tracefirst($text),
28387               q{with_expression},
28388               $tracelevel)
28389               if defined $::RD_TRACE;
28390       $expectation->failed();
28391       last;
28392     }
28393     Parse::RecDescent::_trace(q{>>Matched subrule: [common_table_expression]<< (return value: [}
28394           . $_tok . q{]},
28395
28396             Parse::RecDescent::_tracefirst($text),
28397             q{with_expression},
28398             $tracelevel)
28399             if defined $::RD_TRACE;
28400     $item{q{common_table_expression}} = $_tok;
28401     push @item, $_tok;
28402
28403     }
28404
28405
28406       $repcount++;
28407
28408       my $savetext = $text;
28409       my $backtrack;
28410
28411       # MATCH (OP RIGHTARG)(s)
28412       while ($repcount < 100000000)
28413       {
28414       $backtrack = 0;
28415
28416     Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
28417             q{with_expression},
28418             $tracelevel)
28419             if defined $::RD_TRACE;
28420     $lastsep = "";
28421     $expectation->is(q{/,/})->at($text);
28422
28423
28424     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
28425     {
28426
28427       $expectation->failed();
28428       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28429               Parse::RecDescent::_tracefirst($text))
28430           if defined $::RD_TRACE;
28431
28432       last;
28433     }
28434     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28435             . $& . q{])},
28436               Parse::RecDescent::_tracefirst($text))
28437           if defined $::RD_TRACE;
28438     push @item, $item{__PATTERN2__}=$&;
28439
28440
28441       pop @item;
28442       if (defined $1) {push @item, $item{'common_table_expression(s)'}=$1; $backtrack=1;}
28443
28444     Parse::RecDescent::_trace(q{Trying subrule: [common_table_expression]},
28445           Parse::RecDescent::_tracefirst($text),
28446           q{with_expression},
28447           $tracelevel)
28448           if defined $::RD_TRACE;
28449     if (1) { no strict qw{refs};
28450     $expectation->is(q{common_table_expression})->at($text);
28451     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::common_table_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28452     {
28453
28454       Parse::RecDescent::_trace(q{<<Didn't match subrule: [common_table_expression]>>},
28455               Parse::RecDescent::_tracefirst($text),
28456               q{with_expression},
28457               $tracelevel)
28458               if defined $::RD_TRACE;
28459       $expectation->failed();
28460       last;
28461     }
28462     Parse::RecDescent::_trace(q{>>Matched subrule: [common_table_expression]<< (return value: [}
28463           . $_tok . q{]},
28464
28465             Parse::RecDescent::_tracefirst($text),
28466             q{with_expression},
28467             $tracelevel)
28468             if defined $::RD_TRACE;
28469     $item{q{common_table_expression}} = $_tok;
28470     push @item, $_tok;
28471
28472     }
28473
28474       $savetext = $text;
28475       $repcount++;
28476       }
28477       $text = $savetext;
28478       pop @item if $backtrack;
28479
28480       unless (@item) { undef $_tok; last }
28481       $_tok = [ @item ];
28482       last;
28483     }
28484
28485     unless ($repcount>=1)
28486     {
28487       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: common_table_expression /,/ common_table_expression>]>>},
28488               Parse::RecDescent::_tracefirst($text),
28489               q{with_expression},
28490               $tracelevel)
28491               if defined $::RD_TRACE;
28492       $expectation->failed();
28493       last;
28494     }
28495     Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: common_table_expression /,/ common_table_expression>]<< (return value: [}
28496             . qq{@{$_tok||[]}} . q{]},
28497             Parse::RecDescent::_tracefirst($text),
28498             q{with_expression},
28499             $tracelevel)
28500             if defined $::RD_TRACE;
28501
28502     push @item, $item{'common_table_expression(s)'}=$_tok||[];
28503
28504
28505     Parse::RecDescent::_trace(q{Trying action},
28506             Parse::RecDescent::_tracefirst($text),
28507             q{with_expression},
28508             $tracelevel)
28509             if defined $::RD_TRACE;
28510
28511
28512     $_tok = ($_noactions) ? 0 : do {
28513     $return = $item{'common_table_expression'};
28514 };
28515     unless (defined $_tok)
28516     {
28517       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
28518           if defined $::RD_TRACE;
28519       last;
28520     }
28521     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28522             . $_tok . q{])},
28523             Parse::RecDescent::_tracefirst($text))
28524             if defined $::RD_TRACE;
28525     push @item, $_tok;
28526     $item{__ACTION1__}=$_tok;
28527
28528
28529
28530     Parse::RecDescent::_trace(q{>>Matched production: [/WITH/i <leftop: common_table_expression /,/ common_table_expression>]<<},
28531             Parse::RecDescent::_tracefirst($text),
28532             q{with_expression},
28533             $tracelevel)
28534             if defined $::RD_TRACE;
28535     $_matched = 1;
28536     last;
28537   }
28538
28539
28540         unless ( $_matched || defined($return) || defined($score) )
28541   {
28542
28543
28544     $_[1] = $text;  # NOT SURE THIS IS NEEDED
28545     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
28546            Parse::RecDescent::_tracefirst($_[1]),
28547            q{with_expression},
28548            $tracelevel)
28549           if defined $::RD_TRACE;
28550     return undef;
28551   }
28552   if (!defined($return) && defined($score))
28553   {
28554     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28555             q{with_expression},
28556             $tracelevel)
28557             if defined $::RD_TRACE;
28558     $return = $score_return;
28559   }
28560   splice @{$thisparser->{errors}}, $err_at;
28561   $return = $item[$#item] unless defined $return;
28562   if (defined $::RD_TRACE)
28563   {
28564     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28565             $return . q{])}, "",
28566             q{with_expression},
28567             $tracelevel);
28568     Parse::RecDescent::_trace(q{(consumed: [} .
28569             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
28570             Parse::RecDescent::_tracefirst($text),
28571             , q{with_expression},
28572             $tracelevel)
28573   }
28574   $_[1] = $text;
28575   return $return;
28576 }
28577
28578 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28579 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant
28580 {
28581   my $thisparser = $_[0];
28582   use vars q{$tracelevel};
28583   local $tracelevel = ($tracelevel||0)+1;
28584   $ERRORS = 0;
28585   my $thisrule = $thisparser->{"rules"}{"numeric_constant"};
28586
28587   Parse::RecDescent::_trace(q{Trying rule: [numeric_constant]},
28588           Parse::RecDescent::_tracefirst($_[1]),
28589           q{numeric_constant},
28590           $tracelevel)
28591           if defined $::RD_TRACE;
28592
28593
28594   my $err_at = @{$thisparser->{errors}};
28595
28596   my $score;
28597   my $score_return;
28598   my $_tok;
28599   my $return = undef;
28600   my $_matched=0;
28601   my $commit=0;
28602   my @item = ();
28603   my %item = ();
28604   my $repeating =  defined($_[2]) && $_[2];
28605   my $_noactions = defined($_[3]) && $_[3];
28606    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
28607   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
28608   my $text;
28609   my $lastsep="";
28610   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28611   $expectation->at($_[1]);
28612
28613   my $thisline;
28614   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28615
28616
28617
28618   while (!$_matched && !$commit)
28619   {
28620
28621     Parse::RecDescent::_trace(q{Trying production: [/\\d+/]},
28622             Parse::RecDescent::_tracefirst($_[1]),
28623             q{numeric_constant},
28624             $tracelevel)
28625             if defined $::RD_TRACE;
28626     my $thisprod = $thisrule->{"prods"}[0];
28627     $text = $_[1];
28628     my $_savetext;
28629     @item = (q{numeric_constant});
28630     %item = (__RULE__ => q{numeric_constant});
28631     my $repcount = 0;
28632
28633
28634     Parse::RecDescent::_trace(q{Trying terminal: [/\\d+/]}, Parse::RecDescent::_tracefirst($text),
28635             q{numeric_constant},
28636             $tracelevel)
28637             if defined $::RD_TRACE;
28638     $lastsep = "";
28639     $expectation->is(q{})->at($text);
28640
28641
28642     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:\d+)//)
28643     {
28644
28645       $expectation->failed();
28646       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28647               Parse::RecDescent::_tracefirst($text))
28648           if defined $::RD_TRACE;
28649
28650       last;
28651     }
28652     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28653             . $& . q{])},
28654               Parse::RecDescent::_tracefirst($text))
28655           if defined $::RD_TRACE;
28656     push @item, $item{__PATTERN1__}=$&;
28657
28658
28659
28660     Parse::RecDescent::_trace(q{>>Matched production: [/\\d+/]<<},
28661             Parse::RecDescent::_tracefirst($text),
28662             q{numeric_constant},
28663             $tracelevel)
28664             if defined $::RD_TRACE;
28665     $_matched = 1;
28666     last;
28667   }
28668
28669
28670         unless ( $_matched || defined($return) || defined($score) )
28671   {
28672
28673
28674     $_[1] = $text;  # NOT SURE THIS IS NEEDED
28675     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
28676            Parse::RecDescent::_tracefirst($_[1]),
28677            q{numeric_constant},
28678            $tracelevel)
28679           if defined $::RD_TRACE;
28680     return undef;
28681   }
28682   if (!defined($return) && defined($score))
28683   {
28684     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
28685             q{numeric_constant},
28686             $tracelevel)
28687             if defined $::RD_TRACE;
28688     $return = $score_return;
28689   }
28690   splice @{$thisparser->{errors}}, $err_at;
28691   $return = $item[$#item] unless defined $return;
28692   if (defined $::RD_TRACE)
28693   {
28694     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
28695             $return . q{])}, "",
28696             q{numeric_constant},
28697             $tracelevel);
28698     Parse::RecDescent::_trace(q{(consumed: [} .
28699             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
28700             Parse::RecDescent::_tracefirst($text),
28701             , q{numeric_constant},
28702             $tracelevel)
28703   }
28704   $_[1] = $text;
28705   return $return;
28706 }
28707
28708 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
28709 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_table
28710 {
28711   my $thisparser = $_[0];
28712   use vars q{$tracelevel};
28713   local $tracelevel = ($tracelevel||0)+1;
28714   $ERRORS = 0;
28715   my $thisrule = $thisparser->{"rules"}{"old_new_table"};
28716
28717   Parse::RecDescent::_trace(q{Trying rule: [old_new_table]},
28718           Parse::RecDescent::_tracefirst($_[1]),
28719           q{old_new_table},
28720           $tracelevel)
28721           if defined $::RD_TRACE;
28722
28723
28724   my $err_at = @{$thisparser->{errors}};
28725
28726   my $score;
28727   my $score_return;
28728   my $_tok;
28729   my $return = undef;
28730   my $_matched=0;
28731   my $commit=0;
28732   my @item = ();
28733   my %item = ();
28734   my $repeating =  defined($_[2]) && $_[2];
28735   my $_noactions = defined($_[3]) && $_[3];
28736    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
28737   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
28738   my $text;
28739   my $lastsep="";
28740   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
28741   $expectation->at($_[1]);
28742
28743   my $thisline;
28744   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
28745
28746
28747
28748   while (!$_matched && !$commit)
28749   {
28750
28751     Parse::RecDescent::_trace(q{Trying production: [/OLD_TABLE/i /(AS)?/i identifier]},
28752             Parse::RecDescent::_tracefirst($_[1]),
28753             q{old_new_table},
28754             $tracelevel)
28755             if defined $::RD_TRACE;
28756     my $thisprod = $thisrule->{"prods"}[0];
28757     $text = $_[1];
28758     my $_savetext;
28759     @item = (q{old_new_table});
28760     %item = (__RULE__ => q{old_new_table});
28761     my $repcount = 0;
28762
28763
28764     Parse::RecDescent::_trace(q{Trying terminal: [/OLD_TABLE/i]}, Parse::RecDescent::_tracefirst($text),
28765             q{old_new_table},
28766             $tracelevel)
28767             if defined $::RD_TRACE;
28768     $lastsep = "";
28769     $expectation->is(q{})->at($text);
28770
28771
28772     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OLD_TABLE)//i)
28773     {
28774
28775       $expectation->failed();
28776       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28777               Parse::RecDescent::_tracefirst($text))
28778           if defined $::RD_TRACE;
28779
28780       last;
28781     }
28782     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28783             . $& . q{])},
28784               Parse::RecDescent::_tracefirst($text))
28785           if defined $::RD_TRACE;
28786     push @item, $item{__PATTERN1__}=$&;
28787
28788
28789     Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
28790             q{old_new_table},
28791             $tracelevel)
28792             if defined $::RD_TRACE;
28793     $lastsep = "";
28794     $expectation->is(q{/(AS)?/i})->at($text);
28795
28796
28797     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(AS)?)//i)
28798     {
28799
28800       $expectation->failed();
28801       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28802               Parse::RecDescent::_tracefirst($text))
28803           if defined $::RD_TRACE;
28804
28805       last;
28806     }
28807     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28808             . $& . q{])},
28809               Parse::RecDescent::_tracefirst($text))
28810           if defined $::RD_TRACE;
28811     push @item, $item{__PATTERN2__}=$&;
28812
28813
28814     Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
28815           Parse::RecDescent::_tracefirst($text),
28816           q{old_new_table},
28817           $tracelevel)
28818           if defined $::RD_TRACE;
28819     if (1) { no strict qw{refs};
28820     $expectation->is(q{identifier})->at($text);
28821     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28822     {
28823
28824       Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
28825               Parse::RecDescent::_tracefirst($text),
28826               q{old_new_table},
28827               $tracelevel)
28828               if defined $::RD_TRACE;
28829       $expectation->failed();
28830       last;
28831     }
28832     Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
28833           . $_tok . q{]},
28834
28835             Parse::RecDescent::_tracefirst($text),
28836             q{old_new_table},
28837             $tracelevel)
28838             if defined $::RD_TRACE;
28839     $item{q{identifier}} = $_tok;
28840     push @item, $_tok;
28841
28842     }
28843
28844     Parse::RecDescent::_trace(q{Trying action},
28845             Parse::RecDescent::_tracefirst($text),
28846             q{old_new_table},
28847             $tracelevel)
28848             if defined $::RD_TRACE;
28849
28850
28851     $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
28852     unless (defined $_tok)
28853     {
28854       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
28855           if defined $::RD_TRACE;
28856       last;
28857     }
28858     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28859             . $_tok . q{])},
28860             Parse::RecDescent::_tracefirst($text))
28861             if defined $::RD_TRACE;
28862     push @item, $_tok;
28863     $item{__ACTION1__}=$_tok;
28864
28865
28866
28867     Parse::RecDescent::_trace(q{>>Matched production: [/OLD_TABLE/i /(AS)?/i identifier]<<},
28868             Parse::RecDescent::_tracefirst($text),
28869             q{old_new_table},
28870             $tracelevel)
28871             if defined $::RD_TRACE;
28872     $_matched = 1;
28873     last;
28874   }
28875
28876
28877   while (!$_matched && !$commit)
28878   {
28879
28880     Parse::RecDescent::_trace(q{Trying production: [/NEW_TABLE/i /(AS)?/i identifier]},
28881             Parse::RecDescent::_tracefirst($_[1]),
28882             q{old_new_table},
28883             $tracelevel)
28884             if defined $::RD_TRACE;
28885     my $thisprod = $thisrule->{"prods"}[1];
28886     $text = $_[1];
28887     my $_savetext;
28888     @item = (q{old_new_table});
28889     %item = (__RULE__ => q{old_new_table});
28890     my $repcount = 0;
28891
28892
28893     Parse::RecDescent::_trace(q{Trying terminal: [/NEW_TABLE/i]}, Parse::RecDescent::_tracefirst($text),
28894             q{old_new_table},
28895             $tracelevel)
28896             if defined $::RD_TRACE;
28897     $lastsep = "";
28898     $expectation->is(q{})->at($text);
28899
28900
28901     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NEW_TABLE)//i)
28902     {
28903
28904       $expectation->failed();
28905       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28906               Parse::RecDescent::_tracefirst($text))
28907           if defined $::RD_TRACE;
28908
28909       last;
28910     }
28911     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28912             . $& . q{])},
28913               Parse::RecDescent::_tracefirst($text))
28914           if defined $::RD_TRACE;
28915     push @item, $item{__PATTERN1__}=$&;
28916
28917
28918     Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
28919             q{old_new_table},
28920             $tracelevel)
28921             if defined $::RD_TRACE;
28922     $lastsep = "";
28923     $expectation->is(q{/(AS)?/i})->at($text);
28924
28925
28926     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(AS)?)//i)
28927     {
28928
28929       $expectation->failed();
28930       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
28931               Parse::RecDescent::_tracefirst($text))
28932           if defined $::RD_TRACE;
28933
28934       last;
28935     }
28936     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
28937             . $& . q{])},
28938               Parse::RecDescent::_tracefirst($text))
28939           if defined $::RD_TRACE;
28940     push @item, $item{__PATTERN2__}=$&;
28941
28942
28943     Parse::RecDescent::_trace(q{Trying subrule: [identifier]},
28944           Parse::RecDescent::_tracefirst($text),
28945           q{old_new_table},
28946           $tracelevel)
28947           if defined $::RD_TRACE;
28948     if (1) { no strict qw{refs};
28949     $expectation->is(q{identifier})->at($text);
28950     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::identifier($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
28951     {
28952
28953       Parse::RecDescent::_trace(q{<<Didn't match subrule: [identifier]>>},
28954               Parse::RecDescent::_tracefirst($text),
28955               q{old_new_table},
28956               $tracelevel)
28957               if defined $::RD_TRACE;
28958       $expectation->failed();
28959       last;
28960     }
28961     Parse::RecDescent::_trace(q{>>Matched subrule: [identifier]<< (return value: [}
28962           . $_tok . q{]},
28963
28964             Parse::RecDescent::_tracefirst($text),
28965             q{old_new_table},
28966             $tracelevel)
28967             if defined $::RD_TRACE;
28968     $item{q{identifier}} = $_tok;
28969     push @item, $_tok;
28970
28971     }
28972
28973     Parse::RecDescent::_trace(q{Trying action},
28974             Parse::RecDescent::_tracefirst($text),
28975             q{old_new_table},
28976             $tracelevel)
28977             if defined $::RD_TRACE;
28978
28979
28980     $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
28981     unless (defined $_tok)
28982     {
28983       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
28984           if defined $::RD_TRACE;
28985       last;
28986     }
28987     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
28988             . $_tok . q{])},
28989             Parse::RecDescent::_tracefirst($text))
28990             if defined $::RD_TRACE;
28991     push @item, $_tok;
28992     $item{__ACTION1__}=$_tok;
28993
28994
28995
28996     Parse::RecDescent::_trace(q{>>Matched production: [/NEW_TABLE/i /(AS)?/i identifier]<<},
28997             Parse::RecDescent::_tracefirst($text),
28998             q{old_new_table},
28999             $tracelevel)
29000             if defined $::RD_TRACE;
29001     $_matched = 1;
29002     last;
29003   }
29004
29005
29006         unless ( $_matched || defined($return) || defined($score) )
29007   {
29008
29009
29010     $_[1] = $text;  # NOT SURE THIS IS NEEDED
29011     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29012            Parse::RecDescent::_tracefirst($_[1]),
29013            q{old_new_table},
29014            $tracelevel)
29015           if defined $::RD_TRACE;
29016     return undef;
29017   }
29018   if (!defined($return) && defined($score))
29019   {
29020     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29021             q{old_new_table},
29022             $tracelevel)
29023             if defined $::RD_TRACE;
29024     $return = $score_return;
29025   }
29026   splice @{$thisparser->{errors}}, $err_at;
29027   $return = $item[$#item] unless defined $return;
29028   if (defined $::RD_TRACE)
29029   {
29030     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29031             $return . q{])}, "",
29032             q{old_new_table},
29033             $tracelevel);
29034     Parse::RecDescent::_trace(q{(consumed: [} .
29035             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29036             Parse::RecDescent::_tracefirst($text),
29037             , q{old_new_table},
29038             $tracelevel)
29039   }
29040   $_[1] = $text;
29041   return $return;
29042 }
29043
29044 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29045 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_numbering_function
29046 {
29047   my $thisparser = $_[0];
29048   use vars q{$tracelevel};
29049   local $tracelevel = ($tracelevel||0)+1;
29050   $ERRORS = 0;
29051   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_numbering_function"};
29052
29053   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_numbering_function]},
29054           Parse::RecDescent::_tracefirst($_[1]),
29055           q{_alternation_1_of_production_1_of_rule_numbering_function},
29056           $tracelevel)
29057           if defined $::RD_TRACE;
29058
29059
29060   my $err_at = @{$thisparser->{errors}};
29061
29062   my $score;
29063   my $score_return;
29064   my $_tok;
29065   my $return = undef;
29066   my $_matched=0;
29067   my $commit=0;
29068   my @item = ();
29069   my %item = ();
29070   my $repeating =  defined($_[2]) && $_[2];
29071   my $_noactions = defined($_[3]) && $_[3];
29072    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29073   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29074   my $text;
29075   my $lastsep="";
29076   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29077   $expectation->at($_[1]);
29078
29079   my $thisline;
29080   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29081
29082
29083
29084   while (!$_matched && !$commit)
29085   {
29086
29087     Parse::RecDescent::_trace(q{Trying production: [window_order_clause window_aggregation_group_clause]},
29088             Parse::RecDescent::_tracefirst($_[1]),
29089             q{_alternation_1_of_production_1_of_rule_numbering_function},
29090             $tracelevel)
29091             if defined $::RD_TRACE;
29092     my $thisprod = $thisrule->{"prods"}[0];
29093     $text = $_[1];
29094     my $_savetext;
29095     @item = (q{_alternation_1_of_production_1_of_rule_numbering_function});
29096     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_numbering_function});
29097     my $repcount = 0;
29098
29099
29100     Parse::RecDescent::_trace(q{Trying subrule: [window_order_clause]},
29101           Parse::RecDescent::_tracefirst($text),
29102           q{_alternation_1_of_production_1_of_rule_numbering_function},
29103           $tracelevel)
29104           if defined $::RD_TRACE;
29105     if (1) { no strict qw{refs};
29106     $expectation->is(q{})->at($text);
29107     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
29108     {
29109
29110       Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_order_clause]>>},
29111               Parse::RecDescent::_tracefirst($text),
29112               q{_alternation_1_of_production_1_of_rule_numbering_function},
29113               $tracelevel)
29114               if defined $::RD_TRACE;
29115       $expectation->failed();
29116       last;
29117     }
29118     Parse::RecDescent::_trace(q{>>Matched subrule: [window_order_clause]<< (return value: [}
29119           . $_tok . q{]},
29120
29121             Parse::RecDescent::_tracefirst($text),
29122             q{_alternation_1_of_production_1_of_rule_numbering_function},
29123             $tracelevel)
29124             if defined $::RD_TRACE;
29125     $item{q{window_order_clause}} = $_tok;
29126     push @item, $_tok;
29127
29128     }
29129
29130     Parse::RecDescent::_trace(q{Trying repeated subrule: [window_aggregation_group_clause]},
29131           Parse::RecDescent::_tracefirst($text),
29132           q{_alternation_1_of_production_1_of_rule_numbering_function},
29133           $tracelevel)
29134           if defined $::RD_TRACE;
29135     $expectation->is(q{window_aggregation_group_clause})->at($text);
29136
29137     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_aggregation_group_clause, 0, 1, $_noactions,$expectation,undef)))
29138     {
29139       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_aggregation_group_clause]>>},
29140               Parse::RecDescent::_tracefirst($text),
29141               q{_alternation_1_of_production_1_of_rule_numbering_function},
29142               $tracelevel)
29143               if defined $::RD_TRACE;
29144       last;
29145     }
29146     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_aggregation_group_clause]<< (}
29147           . @$_tok . q{ times)},
29148
29149             Parse::RecDescent::_tracefirst($text),
29150             q{_alternation_1_of_production_1_of_rule_numbering_function},
29151             $tracelevel)
29152             if defined $::RD_TRACE;
29153     $item{q{window_aggregation_group_clause(?)}} = $_tok;
29154     push @item, $_tok;
29155
29156
29157
29158
29159     Parse::RecDescent::_trace(q{>>Matched production: [window_order_clause window_aggregation_group_clause]<<},
29160             Parse::RecDescent::_tracefirst($text),
29161             q{_alternation_1_of_production_1_of_rule_numbering_function},
29162             $tracelevel)
29163             if defined $::RD_TRACE;
29164     $_matched = 1;
29165     last;
29166   }
29167
29168
29169         unless ( $_matched || defined($return) || defined($score) )
29170   {
29171
29172
29173     $_[1] = $text;  # NOT SURE THIS IS NEEDED
29174     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29175            Parse::RecDescent::_tracefirst($_[1]),
29176            q{_alternation_1_of_production_1_of_rule_numbering_function},
29177            $tracelevel)
29178           if defined $::RD_TRACE;
29179     return undef;
29180   }
29181   if (!defined($return) && defined($score))
29182   {
29183     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29184             q{_alternation_1_of_production_1_of_rule_numbering_function},
29185             $tracelevel)
29186             if defined $::RD_TRACE;
29187     $return = $score_return;
29188   }
29189   splice @{$thisparser->{errors}}, $err_at;
29190   $return = $item[$#item] unless defined $return;
29191   if (defined $::RD_TRACE)
29192   {
29193     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29194             $return . q{])}, "",
29195             q{_alternation_1_of_production_1_of_rule_numbering_function},
29196             $tracelevel);
29197     Parse::RecDescent::_trace(q{(consumed: [} .
29198             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29199             Parse::RecDescent::_tracefirst($text),
29200             , q{_alternation_1_of_production_1_of_rule_numbering_function},
29201             $tracelevel)
29202   }
29203   $_[1] = $text;
29204   return $return;
29205 }
29206
29207 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29208 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause
29209 {
29210   my $thisparser = $_[0];
29211   use vars q{$tracelevel};
29212   local $tracelevel = ($tracelevel||0)+1;
29213   $ERRORS = 0;
29214   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause"};
29215
29216   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause]},
29217           Parse::RecDescent::_tracefirst($_[1]),
29218           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29219           $tracelevel)
29220           if defined $::RD_TRACE;
29221
29222
29223   my $err_at = @{$thisparser->{errors}};
29224
29225   my $score;
29226   my $score_return;
29227   my $_tok;
29228   my $return = undef;
29229   my $_matched=0;
29230   my $commit=0;
29231   my @item = ();
29232   my %item = ();
29233   my $repeating =  defined($_[2]) && $_[2];
29234   my $_noactions = defined($_[3]) && $_[3];
29235    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29236   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29237   my $text;
29238   my $lastsep="";
29239   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29240   $expectation->at($_[1]);
29241
29242   my $thisline;
29243   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29244
29245
29246
29247   while (!$_matched && !$commit)
29248   {
29249
29250     Parse::RecDescent::_trace(q{Trying production: [result_expression]},
29251             Parse::RecDescent::_tracefirst($_[1]),
29252             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29253             $tracelevel)
29254             if defined $::RD_TRACE;
29255     my $thisprod = $thisrule->{"prods"}[0];
29256     $text = $_[1];
29257     my $_savetext;
29258     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29259     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29260     my $repcount = 0;
29261
29262
29263     Parse::RecDescent::_trace(q{Trying subrule: [result_expression]},
29264           Parse::RecDescent::_tracefirst($text),
29265           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29266           $tracelevel)
29267           if defined $::RD_TRACE;
29268     if (1) { no strict qw{refs};
29269     $expectation->is(q{})->at($text);
29270     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::result_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
29271     {
29272
29273       Parse::RecDescent::_trace(q{<<Didn't match subrule: [result_expression]>>},
29274               Parse::RecDescent::_tracefirst($text),
29275               q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29276               $tracelevel)
29277               if defined $::RD_TRACE;
29278       $expectation->failed();
29279       last;
29280     }
29281     Parse::RecDescent::_trace(q{>>Matched subrule: [result_expression]<< (return value: [}
29282           . $_tok . q{]},
29283
29284             Parse::RecDescent::_tracefirst($text),
29285             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29286             $tracelevel)
29287             if defined $::RD_TRACE;
29288     $item{q{result_expression}} = $_tok;
29289     push @item, $_tok;
29290
29291     }
29292
29293
29294     Parse::RecDescent::_trace(q{>>Matched production: [result_expression]<<},
29295             Parse::RecDescent::_tracefirst($text),
29296             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29297             $tracelevel)
29298             if defined $::RD_TRACE;
29299     $_matched = 1;
29300     last;
29301   }
29302
29303
29304   while (!$_matched && !$commit)
29305   {
29306
29307     Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
29308             Parse::RecDescent::_tracefirst($_[1]),
29309             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29310             $tracelevel)
29311             if defined $::RD_TRACE;
29312     my $thisprod = $thisrule->{"prods"}[1];
29313     $text = $_[1];
29314     my $_savetext;
29315     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29316     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause});
29317     my $repcount = 0;
29318
29319
29320     Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
29321             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29322             $tracelevel)
29323             if defined $::RD_TRACE;
29324     $lastsep = "";
29325     $expectation->is(q{})->at($text);
29326
29327
29328     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULL)//i)
29329     {
29330
29331       $expectation->failed();
29332       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29333               Parse::RecDescent::_tracefirst($text))
29334           if defined $::RD_TRACE;
29335
29336       last;
29337     }
29338     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29339             . $& . q{])},
29340               Parse::RecDescent::_tracefirst($text))
29341           if defined $::RD_TRACE;
29342     push @item, $item{__PATTERN1__}=$&;
29343
29344
29345
29346     Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
29347             Parse::RecDescent::_tracefirst($text),
29348             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29349             $tracelevel)
29350             if defined $::RD_TRACE;
29351     $_matched = 1;
29352     last;
29353   }
29354
29355
29356         unless ( $_matched || defined($return) || defined($score) )
29357   {
29358
29359
29360     $_[1] = $text;  # NOT SURE THIS IS NEEDED
29361     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29362            Parse::RecDescent::_tracefirst($_[1]),
29363            q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29364            $tracelevel)
29365           if defined $::RD_TRACE;
29366     return undef;
29367   }
29368   if (!defined($return) && defined($score))
29369   {
29370     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29371             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29372             $tracelevel)
29373             if defined $::RD_TRACE;
29374     $return = $score_return;
29375   }
29376   splice @{$thisparser->{errors}}, $err_at;
29377   $return = $item[$#item] unless defined $return;
29378   if (defined $::RD_TRACE)
29379   {
29380     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29381             $return . q{])}, "",
29382             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29383             $tracelevel);
29384     Parse::RecDescent::_trace(q{(consumed: [} .
29385             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29386             Parse::RecDescent::_tracefirst($text),
29387             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause},
29388             $tracelevel)
29389   }
29390   $_[1] = $text;
29391   return $return;
29392 }
29393
29394 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29395 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr
29396 {
29397   my $thisparser = $_[0];
29398   use vars q{$tracelevel};
29399   local $tracelevel = ($tracelevel||0)+1;
29400   $ERRORS = 0;
29401   my $thisrule = $thisparser->{"rules"}{"old_new_corr"};
29402
29403   Parse::RecDescent::_trace(q{Trying rule: [old_new_corr]},
29404           Parse::RecDescent::_tracefirst($_[1]),
29405           q{old_new_corr},
29406           $tracelevel)
29407           if defined $::RD_TRACE;
29408
29409
29410   my $err_at = @{$thisparser->{errors}};
29411
29412   my $score;
29413   my $score_return;
29414   my $_tok;
29415   my $return = undef;
29416   my $_matched=0;
29417   my $commit=0;
29418   my @item = ();
29419   my %item = ();
29420   my $repeating =  defined($_[2]) && $_[2];
29421   my $_noactions = defined($_[3]) && $_[3];
29422    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29423   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29424   my $text;
29425   my $lastsep="";
29426   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29427   $expectation->at($_[1]);
29428
29429   my $thisline;
29430   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29431
29432
29433
29434   while (!$_matched && !$commit)
29435   {
29436
29437     Parse::RecDescent::_trace(q{Trying production: [/OLD/i /(AS)?/i correlation_name]},
29438             Parse::RecDescent::_tracefirst($_[1]),
29439             q{old_new_corr},
29440             $tracelevel)
29441             if defined $::RD_TRACE;
29442     my $thisprod = $thisrule->{"prods"}[0];
29443     $text = $_[1];
29444     my $_savetext;
29445     @item = (q{old_new_corr});
29446     %item = (__RULE__ => q{old_new_corr});
29447     my $repcount = 0;
29448
29449
29450     Parse::RecDescent::_trace(q{Trying terminal: [/OLD/i]}, Parse::RecDescent::_tracefirst($text),
29451             q{old_new_corr},
29452             $tracelevel)
29453             if defined $::RD_TRACE;
29454     $lastsep = "";
29455     $expectation->is(q{})->at($text);
29456
29457
29458     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OLD)//i)
29459     {
29460
29461       $expectation->failed();
29462       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29463               Parse::RecDescent::_tracefirst($text))
29464           if defined $::RD_TRACE;
29465
29466       last;
29467     }
29468     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29469             . $& . q{])},
29470               Parse::RecDescent::_tracefirst($text))
29471           if defined $::RD_TRACE;
29472     push @item, $item{__PATTERN1__}=$&;
29473
29474
29475     Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
29476             q{old_new_corr},
29477             $tracelevel)
29478             if defined $::RD_TRACE;
29479     $lastsep = "";
29480     $expectation->is(q{/(AS)?/i})->at($text);
29481
29482
29483     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(AS)?)//i)
29484     {
29485
29486       $expectation->failed();
29487       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29488               Parse::RecDescent::_tracefirst($text))
29489           if defined $::RD_TRACE;
29490
29491       last;
29492     }
29493     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29494             . $& . q{])},
29495               Parse::RecDescent::_tracefirst($text))
29496           if defined $::RD_TRACE;
29497     push @item, $item{__PATTERN2__}=$&;
29498
29499
29500     Parse::RecDescent::_trace(q{Trying subrule: [correlation_name]},
29501           Parse::RecDescent::_tracefirst($text),
29502           q{old_new_corr},
29503           $tracelevel)
29504           if defined $::RD_TRACE;
29505     if (1) { no strict qw{refs};
29506     $expectation->is(q{correlation_name})->at($text);
29507     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
29508     {
29509
29510       Parse::RecDescent::_trace(q{<<Didn't match subrule: [correlation_name]>>},
29511               Parse::RecDescent::_tracefirst($text),
29512               q{old_new_corr},
29513               $tracelevel)
29514               if defined $::RD_TRACE;
29515       $expectation->failed();
29516       last;
29517     }
29518     Parse::RecDescent::_trace(q{>>Matched subrule: [correlation_name]<< (return value: [}
29519           . $_tok . q{]},
29520
29521             Parse::RecDescent::_tracefirst($text),
29522             q{old_new_corr},
29523             $tracelevel)
29524             if defined $::RD_TRACE;
29525     $item{q{correlation_name}} = $_tok;
29526     push @item, $_tok;
29527
29528     }
29529
29530     Parse::RecDescent::_trace(q{Trying action},
29531             Parse::RecDescent::_tracefirst($text),
29532             q{old_new_corr},
29533             $tracelevel)
29534             if defined $::RD_TRACE;
29535
29536
29537     $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
29538     unless (defined $_tok)
29539     {
29540       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
29541           if defined $::RD_TRACE;
29542       last;
29543     }
29544     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
29545             . $_tok . q{])},
29546             Parse::RecDescent::_tracefirst($text))
29547             if defined $::RD_TRACE;
29548     push @item, $_tok;
29549     $item{__ACTION1__}=$_tok;
29550
29551
29552
29553     Parse::RecDescent::_trace(q{>>Matched production: [/OLD/i /(AS)?/i correlation_name]<<},
29554             Parse::RecDescent::_tracefirst($text),
29555             q{old_new_corr},
29556             $tracelevel)
29557             if defined $::RD_TRACE;
29558     $_matched = 1;
29559     last;
29560   }
29561
29562
29563   while (!$_matched && !$commit)
29564   {
29565
29566     Parse::RecDescent::_trace(q{Trying production: [/NEW/i /(AS)?/i correlation_name]},
29567             Parse::RecDescent::_tracefirst($_[1]),
29568             q{old_new_corr},
29569             $tracelevel)
29570             if defined $::RD_TRACE;
29571     my $thisprod = $thisrule->{"prods"}[1];
29572     $text = $_[1];
29573     my $_savetext;
29574     @item = (q{old_new_corr});
29575     %item = (__RULE__ => q{old_new_corr});
29576     my $repcount = 0;
29577
29578
29579     Parse::RecDescent::_trace(q{Trying terminal: [/NEW/i]}, Parse::RecDescent::_tracefirst($text),
29580             q{old_new_corr},
29581             $tracelevel)
29582             if defined $::RD_TRACE;
29583     $lastsep = "";
29584     $expectation->is(q{})->at($text);
29585
29586
29587     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NEW)//i)
29588     {
29589
29590       $expectation->failed();
29591       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29592               Parse::RecDescent::_tracefirst($text))
29593           if defined $::RD_TRACE;
29594
29595       last;
29596     }
29597     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29598             . $& . q{])},
29599               Parse::RecDescent::_tracefirst($text))
29600           if defined $::RD_TRACE;
29601     push @item, $item{__PATTERN1__}=$&;
29602
29603
29604     Parse::RecDescent::_trace(q{Trying terminal: [/(AS)?/i]}, Parse::RecDescent::_tracefirst($text),
29605             q{old_new_corr},
29606             $tracelevel)
29607             if defined $::RD_TRACE;
29608     $lastsep = "";
29609     $expectation->is(q{/(AS)?/i})->at($text);
29610
29611
29612     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(AS)?)//i)
29613     {
29614
29615       $expectation->failed();
29616       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29617               Parse::RecDescent::_tracefirst($text))
29618           if defined $::RD_TRACE;
29619
29620       last;
29621     }
29622     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29623             . $& . q{])},
29624               Parse::RecDescent::_tracefirst($text))
29625           if defined $::RD_TRACE;
29626     push @item, $item{__PATTERN2__}=$&;
29627
29628
29629     Parse::RecDescent::_trace(q{Trying subrule: [correlation_name]},
29630           Parse::RecDescent::_tracefirst($text),
29631           q{old_new_corr},
29632           $tracelevel)
29633           if defined $::RD_TRACE;
29634     if (1) { no strict qw{refs};
29635     $expectation->is(q{correlation_name})->at($text);
29636     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
29637     {
29638
29639       Parse::RecDescent::_trace(q{<<Didn't match subrule: [correlation_name]>>},
29640               Parse::RecDescent::_tracefirst($text),
29641               q{old_new_corr},
29642               $tracelevel)
29643               if defined $::RD_TRACE;
29644       $expectation->failed();
29645       last;
29646     }
29647     Parse::RecDescent::_trace(q{>>Matched subrule: [correlation_name]<< (return value: [}
29648           . $_tok . q{]},
29649
29650             Parse::RecDescent::_tracefirst($text),
29651             q{old_new_corr},
29652             $tracelevel)
29653             if defined $::RD_TRACE;
29654     $item{q{correlation_name}} = $_tok;
29655     push @item, $_tok;
29656
29657     }
29658
29659     Parse::RecDescent::_trace(q{Trying action},
29660             Parse::RecDescent::_tracefirst($text),
29661             q{old_new_corr},
29662             $tracelevel)
29663             if defined $::RD_TRACE;
29664
29665
29666     $_tok = ($_noactions) ? 0 : do { $return = join(' ', @item[1..3] ) };
29667     unless (defined $_tok)
29668     {
29669       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
29670           if defined $::RD_TRACE;
29671       last;
29672     }
29673     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
29674             . $_tok . q{])},
29675             Parse::RecDescent::_tracefirst($text))
29676             if defined $::RD_TRACE;
29677     push @item, $_tok;
29678     $item{__ACTION1__}=$_tok;
29679
29680
29681
29682     Parse::RecDescent::_trace(q{>>Matched production: [/NEW/i /(AS)?/i correlation_name]<<},
29683             Parse::RecDescent::_tracefirst($text),
29684             q{old_new_corr},
29685             $tracelevel)
29686             if defined $::RD_TRACE;
29687     $_matched = 1;
29688     last;
29689   }
29690
29691
29692         unless ( $_matched || defined($return) || defined($score) )
29693   {
29694
29695
29696     $_[1] = $text;  # NOT SURE THIS IS NEEDED
29697     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29698            Parse::RecDescent::_tracefirst($_[1]),
29699            q{old_new_corr},
29700            $tracelevel)
29701           if defined $::RD_TRACE;
29702     return undef;
29703   }
29704   if (!defined($return) && defined($score))
29705   {
29706     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29707             q{old_new_corr},
29708             $tracelevel)
29709             if defined $::RD_TRACE;
29710     $return = $score_return;
29711   }
29712   splice @{$thisparser->{errors}}, $err_at;
29713   $return = $item[$#item] unless defined $return;
29714   if (defined $::RD_TRACE)
29715   {
29716     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29717             $return . q{])}, "",
29718             q{old_new_corr},
29719             $tracelevel);
29720     Parse::RecDescent::_trace(q{(consumed: [} .
29721             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29722             Parse::RecDescent::_tracefirst($text),
29723             , q{old_new_corr},
29724             $tracelevel)
29725   }
29726   $_[1] = $text;
29727   return $return;
29728 }
29729
29730 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29731 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_42_of_rule_sysibm_function
29732 {
29733   my $thisparser = $_[0];
29734   use vars q{$tracelevel};
29735   local $tracelevel = ($tracelevel||0)+1;
29736   $ERRORS = 0;
29737   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_42_of_rule_sysibm_function"};
29738
29739   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_42_of_rule_sysibm_function]},
29740           Parse::RecDescent::_tracefirst($_[1]),
29741           q{_alternation_1_of_production_42_of_rule_sysibm_function},
29742           $tracelevel)
29743           if defined $::RD_TRACE;
29744
29745
29746   my $err_at = @{$thisparser->{errors}};
29747
29748   my $score;
29749   my $score_return;
29750   my $_tok;
29751   my $return = undef;
29752   my $_matched=0;
29753   my $commit=0;
29754   my @item = ();
29755   my %item = ();
29756   my $repeating =  defined($_[2]) && $_[2];
29757   my $_noactions = defined($_[3]) && $_[3];
29758    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29759   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29760   my $text;
29761   my $lastsep="";
29762   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29763   $expectation->at($_[1]);
29764
29765   my $thisline;
29766   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29767
29768
29769
29770   while (!$_matched && !$commit)
29771   {
29772
29773     Parse::RecDescent::_trace(q{Trying production: [/LCASE/i]},
29774             Parse::RecDescent::_tracefirst($_[1]),
29775             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29776             $tracelevel)
29777             if defined $::RD_TRACE;
29778     my $thisprod = $thisrule->{"prods"}[0];
29779     $text = $_[1];
29780     my $_savetext;
29781     @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
29782     %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
29783     my $repcount = 0;
29784
29785
29786     Parse::RecDescent::_trace(q{Trying terminal: [/LCASE/i]}, Parse::RecDescent::_tracefirst($text),
29787             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29788             $tracelevel)
29789             if defined $::RD_TRACE;
29790     $lastsep = "";
29791     $expectation->is(q{})->at($text);
29792
29793
29794     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LCASE)//i)
29795     {
29796
29797       $expectation->failed();
29798       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29799               Parse::RecDescent::_tracefirst($text))
29800           if defined $::RD_TRACE;
29801
29802       last;
29803     }
29804     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29805             . $& . q{])},
29806               Parse::RecDescent::_tracefirst($text))
29807           if defined $::RD_TRACE;
29808     push @item, $item{__PATTERN1__}=$&;
29809
29810
29811
29812     Parse::RecDescent::_trace(q{>>Matched production: [/LCASE/i]<<},
29813             Parse::RecDescent::_tracefirst($text),
29814             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29815             $tracelevel)
29816             if defined $::RD_TRACE;
29817     $_matched = 1;
29818     last;
29819   }
29820
29821
29822   while (!$_matched && !$commit)
29823   {
29824
29825     Parse::RecDescent::_trace(q{Trying production: [/LOWER/]},
29826             Parse::RecDescent::_tracefirst($_[1]),
29827             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29828             $tracelevel)
29829             if defined $::RD_TRACE;
29830     my $thisprod = $thisrule->{"prods"}[1];
29831     $text = $_[1];
29832     my $_savetext;
29833     @item = (q{_alternation_1_of_production_42_of_rule_sysibm_function});
29834     %item = (__RULE__ => q{_alternation_1_of_production_42_of_rule_sysibm_function});
29835     my $repcount = 0;
29836
29837
29838     Parse::RecDescent::_trace(q{Trying terminal: [/LOWER/]}, Parse::RecDescent::_tracefirst($text),
29839             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29840             $tracelevel)
29841             if defined $::RD_TRACE;
29842     $lastsep = "";
29843     $expectation->is(q{})->at($text);
29844
29845
29846     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:LOWER)//)
29847     {
29848
29849       $expectation->failed();
29850       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29851               Parse::RecDescent::_tracefirst($text))
29852           if defined $::RD_TRACE;
29853
29854       last;
29855     }
29856     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29857             . $& . q{])},
29858               Parse::RecDescent::_tracefirst($text))
29859           if defined $::RD_TRACE;
29860     push @item, $item{__PATTERN1__}=$&;
29861
29862
29863
29864     Parse::RecDescent::_trace(q{>>Matched production: [/LOWER/]<<},
29865             Parse::RecDescent::_tracefirst($text),
29866             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29867             $tracelevel)
29868             if defined $::RD_TRACE;
29869     $_matched = 1;
29870     last;
29871   }
29872
29873
29874         unless ( $_matched || defined($return) || defined($score) )
29875   {
29876
29877
29878     $_[1] = $text;  # NOT SURE THIS IS NEEDED
29879     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
29880            Parse::RecDescent::_tracefirst($_[1]),
29881            q{_alternation_1_of_production_42_of_rule_sysibm_function},
29882            $tracelevel)
29883           if defined $::RD_TRACE;
29884     return undef;
29885   }
29886   if (!defined($return) && defined($score))
29887   {
29888     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
29889             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29890             $tracelevel)
29891             if defined $::RD_TRACE;
29892     $return = $score_return;
29893   }
29894   splice @{$thisparser->{errors}}, $err_at;
29895   $return = $item[$#item] unless defined $return;
29896   if (defined $::RD_TRACE)
29897   {
29898     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
29899             $return . q{])}, "",
29900             q{_alternation_1_of_production_42_of_rule_sysibm_function},
29901             $tracelevel);
29902     Parse::RecDescent::_trace(q{(consumed: [} .
29903             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
29904             Parse::RecDescent::_tracefirst($text),
29905             , q{_alternation_1_of_production_42_of_rule_sysibm_function},
29906             $tracelevel)
29907   }
29908   $_[1] = $text;
29909   return $return;
29910 }
29911
29912 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
29913 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment
29914 {
29915   my $thisparser = $_[0];
29916   use vars q{$tracelevel};
29917   local $tracelevel = ($tracelevel||0)+1;
29918   $ERRORS = 0;
29919   my $thisrule = $thisparser->{"rules"}{"subtype_treatment"};
29920
29921   Parse::RecDescent::_trace(q{Trying rule: [subtype_treatment]},
29922           Parse::RecDescent::_tracefirst($_[1]),
29923           q{subtype_treatment},
29924           $tracelevel)
29925           if defined $::RD_TRACE;
29926
29927
29928   my $err_at = @{$thisparser->{errors}};
29929
29930   my $score;
29931   my $score_return;
29932   my $_tok;
29933   my $return = undef;
29934   my $_matched=0;
29935   my $commit=0;
29936   my @item = ();
29937   my %item = ();
29938   my $repeating =  defined($_[2]) && $_[2];
29939   my $_noactions = defined($_[3]) && $_[3];
29940    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
29941   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
29942   my $text;
29943   my $lastsep="";
29944   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
29945   $expectation->at($_[1]);
29946
29947   my $thisline;
29948   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
29949
29950
29951
29952   while (!$_matched && !$commit)
29953   {
29954
29955     Parse::RecDescent::_trace(q{Trying production: [/TREAT/i '(' expression /AS/i data_type ')']},
29956             Parse::RecDescent::_tracefirst($_[1]),
29957             q{subtype_treatment},
29958             $tracelevel)
29959             if defined $::RD_TRACE;
29960     my $thisprod = $thisrule->{"prods"}[0];
29961     $text = $_[1];
29962     my $_savetext;
29963     @item = (q{subtype_treatment});
29964     %item = (__RULE__ => q{subtype_treatment});
29965     my $repcount = 0;
29966
29967
29968     Parse::RecDescent::_trace(q{Trying terminal: [/TREAT/i]}, Parse::RecDescent::_tracefirst($text),
29969             q{subtype_treatment},
29970             $tracelevel)
29971             if defined $::RD_TRACE;
29972     $lastsep = "";
29973     $expectation->is(q{})->at($text);
29974
29975
29976     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:TREAT)//i)
29977     {
29978
29979       $expectation->failed();
29980       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
29981               Parse::RecDescent::_tracefirst($text))
29982           if defined $::RD_TRACE;
29983
29984       last;
29985     }
29986     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
29987             . $& . q{])},
29988               Parse::RecDescent::_tracefirst($text))
29989           if defined $::RD_TRACE;
29990     push @item, $item{__PATTERN1__}=$&;
29991
29992
29993     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
29994             Parse::RecDescent::_tracefirst($text),
29995             q{subtype_treatment},
29996             $tracelevel)
29997             if defined $::RD_TRACE;
29998     $lastsep = "";
29999     $expectation->is(q{'('})->at($text);
30000
30001
30002     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
30003     {
30004
30005       $expectation->failed();
30006       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30007               Parse::RecDescent::_tracefirst($text))
30008               if defined $::RD_TRACE;
30009       last;
30010     }
30011     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30012             . $& . q{])},
30013               Parse::RecDescent::_tracefirst($text))
30014               if defined $::RD_TRACE;
30015     push @item, $item{__STRING1__}=$&;
30016
30017
30018     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
30019           Parse::RecDescent::_tracefirst($text),
30020           q{subtype_treatment},
30021           $tracelevel)
30022           if defined $::RD_TRACE;
30023     if (1) { no strict qw{refs};
30024     $expectation->is(q{expression})->at($text);
30025     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30026     {
30027
30028       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
30029               Parse::RecDescent::_tracefirst($text),
30030               q{subtype_treatment},
30031               $tracelevel)
30032               if defined $::RD_TRACE;
30033       $expectation->failed();
30034       last;
30035     }
30036     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
30037           . $_tok . q{]},
30038
30039             Parse::RecDescent::_tracefirst($text),
30040             q{subtype_treatment},
30041             $tracelevel)
30042             if defined $::RD_TRACE;
30043     $item{q{expression}} = $_tok;
30044     push @item, $_tok;
30045
30046     }
30047
30048     Parse::RecDescent::_trace(q{Trying terminal: [/AS/i]}, Parse::RecDescent::_tracefirst($text),
30049             q{subtype_treatment},
30050             $tracelevel)
30051             if defined $::RD_TRACE;
30052     $lastsep = "";
30053     $expectation->is(q{/AS/i})->at($text);
30054
30055
30056     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AS)//i)
30057     {
30058
30059       $expectation->failed();
30060       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
30061               Parse::RecDescent::_tracefirst($text))
30062           if defined $::RD_TRACE;
30063
30064       last;
30065     }
30066     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30067             . $& . q{])},
30068               Parse::RecDescent::_tracefirst($text))
30069           if defined $::RD_TRACE;
30070     push @item, $item{__PATTERN2__}=$&;
30071
30072
30073     Parse::RecDescent::_trace(q{Trying subrule: [data_type]},
30074           Parse::RecDescent::_tracefirst($text),
30075           q{subtype_treatment},
30076           $tracelevel)
30077           if defined $::RD_TRACE;
30078     if (1) { no strict qw{refs};
30079     $expectation->is(q{data_type})->at($text);
30080     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::data_type($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30081     {
30082
30083       Parse::RecDescent::_trace(q{<<Didn't match subrule: [data_type]>>},
30084               Parse::RecDescent::_tracefirst($text),
30085               q{subtype_treatment},
30086               $tracelevel)
30087               if defined $::RD_TRACE;
30088       $expectation->failed();
30089       last;
30090     }
30091     Parse::RecDescent::_trace(q{>>Matched subrule: [data_type]<< (return value: [}
30092           . $_tok . q{]},
30093
30094             Parse::RecDescent::_tracefirst($text),
30095             q{subtype_treatment},
30096             $tracelevel)
30097             if defined $::RD_TRACE;
30098     $item{q{data_type}} = $_tok;
30099     push @item, $_tok;
30100
30101     }
30102
30103     Parse::RecDescent::_trace(q{Trying terminal: [')']},
30104             Parse::RecDescent::_tracefirst($text),
30105             q{subtype_treatment},
30106             $tracelevel)
30107             if defined $::RD_TRACE;
30108     $lastsep = "";
30109     $expectation->is(q{')'})->at($text);
30110
30111
30112     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
30113     {
30114
30115       $expectation->failed();
30116       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30117               Parse::RecDescent::_tracefirst($text))
30118               if defined $::RD_TRACE;
30119       last;
30120     }
30121     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30122             . $& . q{])},
30123               Parse::RecDescent::_tracefirst($text))
30124               if defined $::RD_TRACE;
30125     push @item, $item{__STRING2__}=$&;
30126
30127
30128
30129     Parse::RecDescent::_trace(q{>>Matched production: [/TREAT/i '(' expression /AS/i data_type ')']<<},
30130             Parse::RecDescent::_tracefirst($text),
30131             q{subtype_treatment},
30132             $tracelevel)
30133             if defined $::RD_TRACE;
30134     $_matched = 1;
30135     last;
30136   }
30137
30138
30139         unless ( $_matched || defined($return) || defined($score) )
30140   {
30141
30142
30143     $_[1] = $text;  # NOT SURE THIS IS NEEDED
30144     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
30145            Parse::RecDescent::_tracefirst($_[1]),
30146            q{subtype_treatment},
30147            $tracelevel)
30148           if defined $::RD_TRACE;
30149     return undef;
30150   }
30151   if (!defined($return) && defined($score))
30152   {
30153     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
30154             q{subtype_treatment},
30155             $tracelevel)
30156             if defined $::RD_TRACE;
30157     $return = $score_return;
30158   }
30159   splice @{$thisparser->{errors}}, $err_at;
30160   $return = $item[$#item] unless defined $return;
30161   if (defined $::RD_TRACE)
30162   {
30163     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
30164             $return . q{])}, "",
30165             q{subtype_treatment},
30166             $tracelevel);
30167     Parse::RecDescent::_trace(q{(consumed: [} .
30168             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
30169             Parse::RecDescent::_tracefirst($text),
30170             , q{subtype_treatment},
30171             $tracelevel)
30172   }
30173   $_[1] = $text;
30174   return $return;
30175 }
30176
30177 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30178 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression
30179 {
30180   my $thisparser = $_[0];
30181   use vars q{$tracelevel};
30182   local $tracelevel = ($tracelevel||0)+1;
30183   $ERRORS = 0;
30184   my $thisrule = $thisparser->{"rules"}{"expression"};
30185
30186   Parse::RecDescent::_trace(q{Trying rule: [expression]},
30187           Parse::RecDescent::_tracefirst($_[1]),
30188           q{expression},
30189           $tracelevel)
30190           if defined $::RD_TRACE;
30191
30192
30193   my $err_at = @{$thisparser->{errors}};
30194
30195   my $score;
30196   my $score_return;
30197   my $_tok;
30198   my $return = undef;
30199   my $_matched=0;
30200   my $commit=0;
30201   my @item = ();
30202   my %item = ();
30203   my $repeating =  defined($_[2]) && $_[2];
30204   my $_noactions = defined($_[3]) && $_[3];
30205    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
30206   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
30207   my $text;
30208   my $lastsep="";
30209   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30210   $expectation->at($_[1]);
30211
30212   my $thisline;
30213   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30214
30215
30216
30217   while (!$_matched && !$commit)
30218   {
30219
30220     Parse::RecDescent::_trace(q{Trying production: [<leftop: '+', or '-' /operator/ '+', or '-'>]},
30221             Parse::RecDescent::_tracefirst($_[1]),
30222             q{expression},
30223             $tracelevel)
30224             if defined $::RD_TRACE;
30225     my $thisprod = $thisrule->{"prods"}[0];
30226     $text = $_[1];
30227     my $_savetext;
30228     @item = (q{expression});
30229     %item = (__RULE__ => q{expression});
30230     my $repcount = 0;
30231
30232
30233     Parse::RecDescent::_trace(q{Trying operator: [<leftop: '+', or '-' /operator/ '+', or '-'>]},
30234           Parse::RecDescent::_tracefirst($text),
30235           q{expression},
30236           $tracelevel)
30237           if defined $::RD_TRACE;
30238     $expectation->is(q{})->at($text);
30239
30240     $_tok = undef;
30241     OPLOOP: while (1)
30242     {
30243       $repcount = 0;
30244       my  @item;
30245
30246       # MATCH LEFTARG
30247
30248     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
30249           Parse::RecDescent::_tracefirst($text),
30250           q{expression},
30251           $tracelevel)
30252           if defined $::RD_TRACE;
30253     if (1) { no strict qw{refs};
30254     $expectation->is(q{'+', or '-'})->at($text);
30255     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30256     {
30257
30258       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_expression]>>},
30259               Parse::RecDescent::_tracefirst($text),
30260               q{expression},
30261               $tracelevel)
30262               if defined $::RD_TRACE;
30263       $expectation->failed();
30264       last;
30265     }
30266     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
30267           . $_tok . q{]},
30268
30269             Parse::RecDescent::_tracefirst($text),
30270             q{expression},
30271             $tracelevel)
30272             if defined $::RD_TRACE;
30273     $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_tok;
30274     push @item, $_tok;
30275
30276     }
30277
30278
30279       $repcount++;
30280
30281       my $savetext = $text;
30282       my $backtrack;
30283
30284       # MATCH (OP RIGHTARG)(s)
30285       while ($repcount < 100000000)
30286       {
30287       $backtrack = 0;
30288
30289     Parse::RecDescent::_trace(q{Trying terminal: [/operator/]}, Parse::RecDescent::_tracefirst($text),
30290             q{expression},
30291             $tracelevel)
30292             if defined $::RD_TRACE;
30293     $lastsep = "";
30294     $expectation->is(q{/operator/})->at($text);
30295
30296
30297     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:operator)//)
30298     {
30299
30300       $expectation->failed();
30301       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
30302               Parse::RecDescent::_tracefirst($text))
30303           if defined $::RD_TRACE;
30304
30305       last;
30306     }
30307     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30308             . $& . q{])},
30309               Parse::RecDescent::_tracefirst($text))
30310           if defined $::RD_TRACE;
30311     push @item, $item{__PATTERN1__}=$&;
30312
30313
30314       pop @item;
30315       if (defined $1) {push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'}=$1; $backtrack=1;}
30316
30317     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_expression]},
30318           Parse::RecDescent::_tracefirst($text),
30319           q{expression},
30320           $tracelevel)
30321           if defined $::RD_TRACE;
30322     if (1) { no strict qw{refs};
30323     $expectation->is(q{'+', or '-'})->at($text);
30324     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30325     {
30326
30327       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_expression]>>},
30328               Parse::RecDescent::_tracefirst($text),
30329               q{expression},
30330               $tracelevel)
30331               if defined $::RD_TRACE;
30332       $expectation->failed();
30333       last;
30334     }
30335     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_expression]<< (return value: [}
30336           . $_tok . q{]},
30337
30338             Parse::RecDescent::_tracefirst($text),
30339             q{expression},
30340             $tracelevel)
30341             if defined $::RD_TRACE;
30342     $item{q{_alternation_1_of_production_1_of_rule_expression}} = $_tok;
30343     push @item, $_tok;
30344
30345     }
30346
30347       $savetext = $text;
30348       $repcount++;
30349       }
30350       $text = $savetext;
30351       pop @item if $backtrack;
30352
30353       unless (@item) { undef $_tok; last }
30354       $_tok = [ @item ];
30355       last;
30356     }
30357
30358     unless ($repcount>=1)
30359     {
30360       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: '+', or '-' /operator/ '+', or '-'>]>>},
30361               Parse::RecDescent::_tracefirst($text),
30362               q{expression},
30363               $tracelevel)
30364               if defined $::RD_TRACE;
30365       $expectation->failed();
30366       last;
30367     }
30368     Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: '+', or '-' /operator/ '+', or '-'>]<< (return value: [}
30369             . qq{@{$_tok||[]}} . q{]},
30370             Parse::RecDescent::_tracefirst($text),
30371             q{expression},
30372             $tracelevel)
30373             if defined $::RD_TRACE;
30374
30375     push @item, $item{'_alternation_1_of_production_1_of_rule_expression(s)'}=$_tok||[];
30376
30377
30378
30379     Parse::RecDescent::_trace(q{>>Matched production: [<leftop: '+', or '-' /operator/ '+', or '-'>]<<},
30380             Parse::RecDescent::_tracefirst($text),
30381             q{expression},
30382             $tracelevel)
30383             if defined $::RD_TRACE;
30384     $_matched = 1;
30385     last;
30386   }
30387
30388
30389         unless ( $_matched || defined($return) || defined($score) )
30390   {
30391
30392
30393     $_[1] = $text;  # NOT SURE THIS IS NEEDED
30394     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
30395            Parse::RecDescent::_tracefirst($_[1]),
30396            q{expression},
30397            $tracelevel)
30398           if defined $::RD_TRACE;
30399     return undef;
30400   }
30401   if (!defined($return) && defined($score))
30402   {
30403     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
30404             q{expression},
30405             $tracelevel)
30406             if defined $::RD_TRACE;
30407     $return = $score_return;
30408   }
30409   splice @{$thisparser->{errors}}, $err_at;
30410   $return = $item[$#item] unless defined $return;
30411   if (defined $::RD_TRACE)
30412   {
30413     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
30414             $return . q{])}, "",
30415             q{expression},
30416             $tracelevel);
30417     Parse::RecDescent::_trace(q{(consumed: [} .
30418             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
30419             Parse::RecDescent::_tracefirst($text),
30420             , q{expression},
30421             $tracelevel)
30422   }
30423   $_[1] = $text;
30424   return $return;
30425 }
30426
30427 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
30428 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression
30429 {
30430   my $thisparser = $_[0];
30431   use vars q{$tracelevel};
30432   local $tracelevel = ($tracelevel||0)+1;
30433   $ERRORS = 0;
30434   my $thisrule = $thisparser->{"rules"}{"_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression"};
30435
30436   Parse::RecDescent::_trace(q{Trying rule: [_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression]},
30437           Parse::RecDescent::_tracefirst($_[1]),
30438           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30439           $tracelevel)
30440           if defined $::RD_TRACE;
30441
30442
30443   my $err_at = @{$thisparser->{errors}};
30444
30445   my $score;
30446   my $score_return;
30447   my $_tok;
30448   my $return = undef;
30449   my $_matched=0;
30450   my $commit=0;
30451   my @item = ();
30452   my %item = ();
30453   my $repeating =  defined($_[2]) && $_[2];
30454   my $_noactions = defined($_[3]) && $_[3];
30455    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
30456   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
30457   my $text;
30458   my $lastsep="";
30459   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
30460   $expectation->at($_[1]);
30461
30462   my $thisline;
30463   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
30464
30465
30466
30467   while (!$_matched && !$commit)
30468   {
30469
30470     Parse::RecDescent::_trace(q{Trying production: [function]},
30471             Parse::RecDescent::_tracefirst($_[1]),
30472             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30473             $tracelevel)
30474             if defined $::RD_TRACE;
30475     my $thisprod = $thisrule->{"prods"}[0];
30476     $text = $_[1];
30477     my $_savetext;
30478     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30479     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30480     my $repcount = 0;
30481
30482
30483     Parse::RecDescent::_trace(q{Trying subrule: [function]},
30484           Parse::RecDescent::_tracefirst($text),
30485           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30486           $tracelevel)
30487           if defined $::RD_TRACE;
30488     if (1) { no strict qw{refs};
30489     $expectation->is(q{})->at($text);
30490     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30491     {
30492
30493       Parse::RecDescent::_trace(q{<<Didn't match subrule: [function]>>},
30494               Parse::RecDescent::_tracefirst($text),
30495               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30496               $tracelevel)
30497               if defined $::RD_TRACE;
30498       $expectation->failed();
30499       last;
30500     }
30501     Parse::RecDescent::_trace(q{>>Matched subrule: [function]<< (return value: [}
30502           . $_tok . q{]},
30503
30504             Parse::RecDescent::_tracefirst($text),
30505             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30506             $tracelevel)
30507             if defined $::RD_TRACE;
30508     $item{q{function}} = $_tok;
30509     push @item, $_tok;
30510
30511     }
30512
30513
30514     Parse::RecDescent::_trace(q{>>Matched production: [function]<<},
30515             Parse::RecDescent::_tracefirst($text),
30516             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30517             $tracelevel)
30518             if defined $::RD_TRACE;
30519     $_matched = 1;
30520     last;
30521   }
30522
30523
30524   while (!$_matched && !$commit)
30525   {
30526
30527     Parse::RecDescent::_trace(q{Trying production: ['(' expression ')']},
30528             Parse::RecDescent::_tracefirst($_[1]),
30529             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30530             $tracelevel)
30531             if defined $::RD_TRACE;
30532     my $thisprod = $thisrule->{"prods"}[1];
30533     $text = $_[1];
30534     my $_savetext;
30535     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30536     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30537     my $repcount = 0;
30538
30539
30540     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
30541             Parse::RecDescent::_tracefirst($text),
30542             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30543             $tracelevel)
30544             if defined $::RD_TRACE;
30545     $lastsep = "";
30546     $expectation->is(q{})->at($text);
30547
30548
30549     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
30550     {
30551
30552       $expectation->failed();
30553       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30554               Parse::RecDescent::_tracefirst($text))
30555               if defined $::RD_TRACE;
30556       last;
30557     }
30558     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30559             . $& . q{])},
30560               Parse::RecDescent::_tracefirst($text))
30561               if defined $::RD_TRACE;
30562     push @item, $item{__STRING1__}=$&;
30563
30564
30565     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
30566           Parse::RecDescent::_tracefirst($text),
30567           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30568           $tracelevel)
30569           if defined $::RD_TRACE;
30570     if (1) { no strict qw{refs};
30571     $expectation->is(q{expression})->at($text);
30572     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30573     {
30574
30575       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
30576               Parse::RecDescent::_tracefirst($text),
30577               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30578               $tracelevel)
30579               if defined $::RD_TRACE;
30580       $expectation->failed();
30581       last;
30582     }
30583     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
30584           . $_tok . q{]},
30585
30586             Parse::RecDescent::_tracefirst($text),
30587             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30588             $tracelevel)
30589             if defined $::RD_TRACE;
30590     $item{q{expression}} = $_tok;
30591     push @item, $_tok;
30592
30593     }
30594
30595     Parse::RecDescent::_trace(q{Trying terminal: [')']},
30596             Parse::RecDescent::_tracefirst($text),
30597             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30598             $tracelevel)
30599             if defined $::RD_TRACE;
30600     $lastsep = "";
30601     $expectation->is(q{')'})->at($text);
30602
30603
30604     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
30605     {
30606
30607       $expectation->failed();
30608       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30609               Parse::RecDescent::_tracefirst($text))
30610               if defined $::RD_TRACE;
30611       last;
30612     }
30613     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30614             . $& . q{])},
30615               Parse::RecDescent::_tracefirst($text))
30616               if defined $::RD_TRACE;
30617     push @item, $item{__STRING2__}=$&;
30618
30619
30620
30621     Parse::RecDescent::_trace(q{>>Matched production: ['(' expression ')']<<},
30622             Parse::RecDescent::_tracefirst($text),
30623             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30624             $tracelevel)
30625             if defined $::RD_TRACE;
30626     $_matched = 1;
30627     last;
30628   }
30629
30630
30631   while (!$_matched && !$commit)
30632   {
30633
30634     Parse::RecDescent::_trace(q{Trying production: [constant]},
30635             Parse::RecDescent::_tracefirst($_[1]),
30636             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30637             $tracelevel)
30638             if defined $::RD_TRACE;
30639     my $thisprod = $thisrule->{"prods"}[2];
30640     $text = $_[1];
30641     my $_savetext;
30642     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30643     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30644     my $repcount = 0;
30645
30646
30647     Parse::RecDescent::_trace(q{Trying subrule: [constant]},
30648           Parse::RecDescent::_tracefirst($text),
30649           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30650           $tracelevel)
30651           if defined $::RD_TRACE;
30652     if (1) { no strict qw{refs};
30653     $expectation->is(q{})->at($text);
30654     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30655     {
30656
30657       Parse::RecDescent::_trace(q{<<Didn't match subrule: [constant]>>},
30658               Parse::RecDescent::_tracefirst($text),
30659               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30660               $tracelevel)
30661               if defined $::RD_TRACE;
30662       $expectation->failed();
30663       last;
30664     }
30665     Parse::RecDescent::_trace(q{>>Matched subrule: [constant]<< (return value: [}
30666           . $_tok . q{]},
30667
30668             Parse::RecDescent::_tracefirst($text),
30669             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30670             $tracelevel)
30671             if defined $::RD_TRACE;
30672     $item{q{constant}} = $_tok;
30673     push @item, $_tok;
30674
30675     }
30676
30677
30678     Parse::RecDescent::_trace(q{>>Matched production: [constant]<<},
30679             Parse::RecDescent::_tracefirst($text),
30680             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30681             $tracelevel)
30682             if defined $::RD_TRACE;
30683     $_matched = 1;
30684     last;
30685   }
30686
30687
30688   while (!$_matched && !$commit)
30689   {
30690
30691     Parse::RecDescent::_trace(q{Trying production: [column_name]},
30692             Parse::RecDescent::_tracefirst($_[1]),
30693             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30694             $tracelevel)
30695             if defined $::RD_TRACE;
30696     my $thisprod = $thisrule->{"prods"}[3];
30697     $text = $_[1];
30698     my $_savetext;
30699     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30700     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30701     my $repcount = 0;
30702
30703
30704     Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
30705           Parse::RecDescent::_tracefirst($text),
30706           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30707           $tracelevel)
30708           if defined $::RD_TRACE;
30709     if (1) { no strict qw{refs};
30710     $expectation->is(q{})->at($text);
30711     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30712     {
30713
30714       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
30715               Parse::RecDescent::_tracefirst($text),
30716               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30717               $tracelevel)
30718               if defined $::RD_TRACE;
30719       $expectation->failed();
30720       last;
30721     }
30722     Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
30723           . $_tok . q{]},
30724
30725             Parse::RecDescent::_tracefirst($text),
30726             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30727             $tracelevel)
30728             if defined $::RD_TRACE;
30729     $item{q{column_name}} = $_tok;
30730     push @item, $_tok;
30731
30732     }
30733
30734
30735     Parse::RecDescent::_trace(q{>>Matched production: [column_name]<<},
30736             Parse::RecDescent::_tracefirst($text),
30737             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30738             $tracelevel)
30739             if defined $::RD_TRACE;
30740     $_matched = 1;
30741     last;
30742   }
30743
30744
30745   while (!$_matched && !$commit)
30746   {
30747
30748     Parse::RecDescent::_trace(q{Trying production: [host_variable]},
30749             Parse::RecDescent::_tracefirst($_[1]),
30750             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30751             $tracelevel)
30752             if defined $::RD_TRACE;
30753     my $thisprod = $thisrule->{"prods"}[4];
30754     $text = $_[1];
30755     my $_savetext;
30756     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30757     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30758     my $repcount = 0;
30759
30760
30761     Parse::RecDescent::_trace(q{Trying subrule: [host_variable]},
30762           Parse::RecDescent::_tracefirst($text),
30763           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30764           $tracelevel)
30765           if defined $::RD_TRACE;
30766     if (1) { no strict qw{refs};
30767     $expectation->is(q{})->at($text);
30768     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::host_variable($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30769     {
30770
30771       Parse::RecDescent::_trace(q{<<Didn't match subrule: [host_variable]>>},
30772               Parse::RecDescent::_tracefirst($text),
30773               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30774               $tracelevel)
30775               if defined $::RD_TRACE;
30776       $expectation->failed();
30777       last;
30778     }
30779     Parse::RecDescent::_trace(q{>>Matched subrule: [host_variable]<< (return value: [}
30780           . $_tok . q{]},
30781
30782             Parse::RecDescent::_tracefirst($text),
30783             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30784             $tracelevel)
30785             if defined $::RD_TRACE;
30786     $item{q{host_variable}} = $_tok;
30787     push @item, $_tok;
30788
30789     }
30790
30791
30792     Parse::RecDescent::_trace(q{>>Matched production: [host_variable]<<},
30793             Parse::RecDescent::_tracefirst($text),
30794             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30795             $tracelevel)
30796             if defined $::RD_TRACE;
30797     $_matched = 1;
30798     last;
30799   }
30800
30801
30802   while (!$_matched && !$commit)
30803   {
30804
30805     Parse::RecDescent::_trace(q{Trying production: [special_register]},
30806             Parse::RecDescent::_tracefirst($_[1]),
30807             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30808             $tracelevel)
30809             if defined $::RD_TRACE;
30810     my $thisprod = $thisrule->{"prods"}[5];
30811     $text = $_[1];
30812     my $_savetext;
30813     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30814     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30815     my $repcount = 0;
30816
30817
30818     Parse::RecDescent::_trace(q{Trying subrule: [special_register]},
30819           Parse::RecDescent::_tracefirst($text),
30820           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30821           $tracelevel)
30822           if defined $::RD_TRACE;
30823     if (1) { no strict qw{refs};
30824     $expectation->is(q{})->at($text);
30825     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::special_register($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30826     {
30827
30828       Parse::RecDescent::_trace(q{<<Didn't match subrule: [special_register]>>},
30829               Parse::RecDescent::_tracefirst($text),
30830               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30831               $tracelevel)
30832               if defined $::RD_TRACE;
30833       $expectation->failed();
30834       last;
30835     }
30836     Parse::RecDescent::_trace(q{>>Matched subrule: [special_register]<< (return value: [}
30837           . $_tok . q{]},
30838
30839             Parse::RecDescent::_tracefirst($text),
30840             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30841             $tracelevel)
30842             if defined $::RD_TRACE;
30843     $item{q{special_register}} = $_tok;
30844     push @item, $_tok;
30845
30846     }
30847
30848
30849     Parse::RecDescent::_trace(q{>>Matched production: [special_register]<<},
30850             Parse::RecDescent::_tracefirst($text),
30851             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30852             $tracelevel)
30853             if defined $::RD_TRACE;
30854     $_matched = 1;
30855     last;
30856   }
30857
30858
30859   while (!$_matched && !$commit)
30860   {
30861
30862     Parse::RecDescent::_trace(q{Trying production: ['(' scalar_fullselect ')']},
30863             Parse::RecDescent::_tracefirst($_[1]),
30864             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30865             $tracelevel)
30866             if defined $::RD_TRACE;
30867     my $thisprod = $thisrule->{"prods"}[6];
30868     $text = $_[1];
30869     my $_savetext;
30870     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30871     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30872     my $repcount = 0;
30873
30874
30875     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
30876             Parse::RecDescent::_tracefirst($text),
30877             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30878             $tracelevel)
30879             if defined $::RD_TRACE;
30880     $lastsep = "";
30881     $expectation->is(q{})->at($text);
30882
30883
30884     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
30885     {
30886
30887       $expectation->failed();
30888       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30889               Parse::RecDescent::_tracefirst($text))
30890               if defined $::RD_TRACE;
30891       last;
30892     }
30893     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30894             . $& . q{])},
30895               Parse::RecDescent::_tracefirst($text))
30896               if defined $::RD_TRACE;
30897     push @item, $item{__STRING1__}=$&;
30898
30899
30900     Parse::RecDescent::_trace(q{Trying subrule: [scalar_fullselect]},
30901           Parse::RecDescent::_tracefirst($text),
30902           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30903           $tracelevel)
30904           if defined $::RD_TRACE;
30905     if (1) { no strict qw{refs};
30906     $expectation->is(q{scalar_fullselect})->at($text);
30907     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scalar_fullselect($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30908     {
30909
30910       Parse::RecDescent::_trace(q{<<Didn't match subrule: [scalar_fullselect]>>},
30911               Parse::RecDescent::_tracefirst($text),
30912               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30913               $tracelevel)
30914               if defined $::RD_TRACE;
30915       $expectation->failed();
30916       last;
30917     }
30918     Parse::RecDescent::_trace(q{>>Matched subrule: [scalar_fullselect]<< (return value: [}
30919           . $_tok . q{]},
30920
30921             Parse::RecDescent::_tracefirst($text),
30922             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30923             $tracelevel)
30924             if defined $::RD_TRACE;
30925     $item{q{scalar_fullselect}} = $_tok;
30926     push @item, $_tok;
30927
30928     }
30929
30930     Parse::RecDescent::_trace(q{Trying terminal: [')']},
30931             Parse::RecDescent::_tracefirst($text),
30932             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30933             $tracelevel)
30934             if defined $::RD_TRACE;
30935     $lastsep = "";
30936     $expectation->is(q{')'})->at($text);
30937
30938
30939     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
30940     {
30941
30942       $expectation->failed();
30943       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
30944               Parse::RecDescent::_tracefirst($text))
30945               if defined $::RD_TRACE;
30946       last;
30947     }
30948     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
30949             . $& . q{])},
30950               Parse::RecDescent::_tracefirst($text))
30951               if defined $::RD_TRACE;
30952     push @item, $item{__STRING2__}=$&;
30953
30954
30955
30956     Parse::RecDescent::_trace(q{>>Matched production: ['(' scalar_fullselect ')']<<},
30957             Parse::RecDescent::_tracefirst($text),
30958             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30959             $tracelevel)
30960             if defined $::RD_TRACE;
30961     $_matched = 1;
30962     last;
30963   }
30964
30965
30966   while (!$_matched && !$commit)
30967   {
30968
30969     Parse::RecDescent::_trace(q{Trying production: [labeled_duration]},
30970             Parse::RecDescent::_tracefirst($_[1]),
30971             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30972             $tracelevel)
30973             if defined $::RD_TRACE;
30974     my $thisprod = $thisrule->{"prods"}[7];
30975     $text = $_[1];
30976     my $_savetext;
30977     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30978     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
30979     my $repcount = 0;
30980
30981
30982     Parse::RecDescent::_trace(q{Trying subrule: [labeled_duration]},
30983           Parse::RecDescent::_tracefirst($text),
30984           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30985           $tracelevel)
30986           if defined $::RD_TRACE;
30987     if (1) { no strict qw{refs};
30988     $expectation->is(q{})->at($text);
30989     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::labeled_duration($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
30990     {
30991
30992       Parse::RecDescent::_trace(q{<<Didn't match subrule: [labeled_duration]>>},
30993               Parse::RecDescent::_tracefirst($text),
30994               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
30995               $tracelevel)
30996               if defined $::RD_TRACE;
30997       $expectation->failed();
30998       last;
30999     }
31000     Parse::RecDescent::_trace(q{>>Matched subrule: [labeled_duration]<< (return value: [}
31001           . $_tok . q{]},
31002
31003             Parse::RecDescent::_tracefirst($text),
31004             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31005             $tracelevel)
31006             if defined $::RD_TRACE;
31007     $item{q{labeled_duration}} = $_tok;
31008     push @item, $_tok;
31009
31010     }
31011
31012
31013     Parse::RecDescent::_trace(q{>>Matched production: [labeled_duration]<<},
31014             Parse::RecDescent::_tracefirst($text),
31015             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31016             $tracelevel)
31017             if defined $::RD_TRACE;
31018     $_matched = 1;
31019     last;
31020   }
31021
31022
31023   while (!$_matched && !$commit)
31024   {
31025
31026     Parse::RecDescent::_trace(q{Trying production: [case_expression]},
31027             Parse::RecDescent::_tracefirst($_[1]),
31028             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31029             $tracelevel)
31030             if defined $::RD_TRACE;
31031     my $thisprod = $thisrule->{"prods"}[8];
31032     $text = $_[1];
31033     my $_savetext;
31034     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31035     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31036     my $repcount = 0;
31037
31038
31039     Parse::RecDescent::_trace(q{Trying subrule: [case_expression]},
31040           Parse::RecDescent::_tracefirst($text),
31041           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31042           $tracelevel)
31043           if defined $::RD_TRACE;
31044     if (1) { no strict qw{refs};
31045     $expectation->is(q{})->at($text);
31046     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::case_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31047     {
31048
31049       Parse::RecDescent::_trace(q{<<Didn't match subrule: [case_expression]>>},
31050               Parse::RecDescent::_tracefirst($text),
31051               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31052               $tracelevel)
31053               if defined $::RD_TRACE;
31054       $expectation->failed();
31055       last;
31056     }
31057     Parse::RecDescent::_trace(q{>>Matched subrule: [case_expression]<< (return value: [}
31058           . $_tok . q{]},
31059
31060             Parse::RecDescent::_tracefirst($text),
31061             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31062             $tracelevel)
31063             if defined $::RD_TRACE;
31064     $item{q{case_expression}} = $_tok;
31065     push @item, $_tok;
31066
31067     }
31068
31069
31070     Parse::RecDescent::_trace(q{>>Matched production: [case_expression]<<},
31071             Parse::RecDescent::_tracefirst($text),
31072             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31073             $tracelevel)
31074             if defined $::RD_TRACE;
31075     $_matched = 1;
31076     last;
31077   }
31078
31079
31080   while (!$_matched && !$commit)
31081   {
31082
31083     Parse::RecDescent::_trace(q{Trying production: [cast_specification]},
31084             Parse::RecDescent::_tracefirst($_[1]),
31085             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31086             $tracelevel)
31087             if defined $::RD_TRACE;
31088     my $thisprod = $thisrule->{"prods"}[9];
31089     $text = $_[1];
31090     my $_savetext;
31091     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31092     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31093     my $repcount = 0;
31094
31095
31096     Parse::RecDescent::_trace(q{Trying subrule: [cast_specification]},
31097           Parse::RecDescent::_tracefirst($text),
31098           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31099           $tracelevel)
31100           if defined $::RD_TRACE;
31101     if (1) { no strict qw{refs};
31102     $expectation->is(q{})->at($text);
31103     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::cast_specification($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31104     {
31105
31106       Parse::RecDescent::_trace(q{<<Didn't match subrule: [cast_specification]>>},
31107               Parse::RecDescent::_tracefirst($text),
31108               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31109               $tracelevel)
31110               if defined $::RD_TRACE;
31111       $expectation->failed();
31112       last;
31113     }
31114     Parse::RecDescent::_trace(q{>>Matched subrule: [cast_specification]<< (return value: [}
31115           . $_tok . q{]},
31116
31117             Parse::RecDescent::_tracefirst($text),
31118             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31119             $tracelevel)
31120             if defined $::RD_TRACE;
31121     $item{q{cast_specification}} = $_tok;
31122     push @item, $_tok;
31123
31124     }
31125
31126
31127     Parse::RecDescent::_trace(q{>>Matched production: [cast_specification]<<},
31128             Parse::RecDescent::_tracefirst($text),
31129             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31130             $tracelevel)
31131             if defined $::RD_TRACE;
31132     $_matched = 1;
31133     last;
31134   }
31135
31136
31137   while (!$_matched && !$commit)
31138   {
31139
31140     Parse::RecDescent::_trace(q{Trying production: [OLAP_function]},
31141             Parse::RecDescent::_tracefirst($_[1]),
31142             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31143             $tracelevel)
31144             if defined $::RD_TRACE;
31145     my $thisprod = $thisrule->{"prods"}[10];
31146     $text = $_[1];
31147     my $_savetext;
31148     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31149     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31150     my $repcount = 0;
31151
31152
31153     Parse::RecDescent::_trace(q{Trying subrule: [OLAP_function]},
31154           Parse::RecDescent::_tracefirst($text),
31155           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31156           $tracelevel)
31157           if defined $::RD_TRACE;
31158     if (1) { no strict qw{refs};
31159     $expectation->is(q{})->at($text);
31160     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OLAP_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31161     {
31162
31163       Parse::RecDescent::_trace(q{<<Didn't match subrule: [OLAP_function]>>},
31164               Parse::RecDescent::_tracefirst($text),
31165               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31166               $tracelevel)
31167               if defined $::RD_TRACE;
31168       $expectation->failed();
31169       last;
31170     }
31171     Parse::RecDescent::_trace(q{>>Matched subrule: [OLAP_function]<< (return value: [}
31172           . $_tok . q{]},
31173
31174             Parse::RecDescent::_tracefirst($text),
31175             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31176             $tracelevel)
31177             if defined $::RD_TRACE;
31178     $item{q{OLAP_function}} = $_tok;
31179     push @item, $_tok;
31180
31181     }
31182
31183
31184     Parse::RecDescent::_trace(q{>>Matched production: [OLAP_function]<<},
31185             Parse::RecDescent::_tracefirst($text),
31186             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31187             $tracelevel)
31188             if defined $::RD_TRACE;
31189     $_matched = 1;
31190     last;
31191   }
31192
31193
31194   while (!$_matched && !$commit)
31195   {
31196
31197     Parse::RecDescent::_trace(q{Trying production: [method_invocation]},
31198             Parse::RecDescent::_tracefirst($_[1]),
31199             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31200             $tracelevel)
31201             if defined $::RD_TRACE;
31202     my $thisprod = $thisrule->{"prods"}[11];
31203     $text = $_[1];
31204     my $_savetext;
31205     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31206     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31207     my $repcount = 0;
31208
31209
31210     Parse::RecDescent::_trace(q{Trying subrule: [method_invocation]},
31211           Parse::RecDescent::_tracefirst($text),
31212           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31213           $tracelevel)
31214           if defined $::RD_TRACE;
31215     if (1) { no strict qw{refs};
31216     $expectation->is(q{})->at($text);
31217     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::method_invocation($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31218     {
31219
31220       Parse::RecDescent::_trace(q{<<Didn't match subrule: [method_invocation]>>},
31221               Parse::RecDescent::_tracefirst($text),
31222               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31223               $tracelevel)
31224               if defined $::RD_TRACE;
31225       $expectation->failed();
31226       last;
31227     }
31228     Parse::RecDescent::_trace(q{>>Matched subrule: [method_invocation]<< (return value: [}
31229           . $_tok . q{]},
31230
31231             Parse::RecDescent::_tracefirst($text),
31232             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31233             $tracelevel)
31234             if defined $::RD_TRACE;
31235     $item{q{method_invocation}} = $_tok;
31236     push @item, $_tok;
31237
31238     }
31239
31240
31241     Parse::RecDescent::_trace(q{>>Matched production: [method_invocation]<<},
31242             Parse::RecDescent::_tracefirst($text),
31243             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31244             $tracelevel)
31245             if defined $::RD_TRACE;
31246     $_matched = 1;
31247     last;
31248   }
31249
31250
31251   while (!$_matched && !$commit)
31252   {
31253
31254     Parse::RecDescent::_trace(q{Trying production: [subtype_treatment]},
31255             Parse::RecDescent::_tracefirst($_[1]),
31256             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31257             $tracelevel)
31258             if defined $::RD_TRACE;
31259     my $thisprod = $thisrule->{"prods"}[12];
31260     $text = $_[1];
31261     my $_savetext;
31262     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31263     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31264     my $repcount = 0;
31265
31266
31267     Parse::RecDescent::_trace(q{Trying subrule: [subtype_treatment]},
31268           Parse::RecDescent::_tracefirst($text),
31269           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31270           $tracelevel)
31271           if defined $::RD_TRACE;
31272     if (1) { no strict qw{refs};
31273     $expectation->is(q{})->at($text);
31274     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::subtype_treatment($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31275     {
31276
31277       Parse::RecDescent::_trace(q{<<Didn't match subrule: [subtype_treatment]>>},
31278               Parse::RecDescent::_tracefirst($text),
31279               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31280               $tracelevel)
31281               if defined $::RD_TRACE;
31282       $expectation->failed();
31283       last;
31284     }
31285     Parse::RecDescent::_trace(q{>>Matched subrule: [subtype_treatment]<< (return value: [}
31286           . $_tok . q{]},
31287
31288             Parse::RecDescent::_tracefirst($text),
31289             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31290             $tracelevel)
31291             if defined $::RD_TRACE;
31292     $item{q{subtype_treatment}} = $_tok;
31293     push @item, $_tok;
31294
31295     }
31296
31297
31298     Parse::RecDescent::_trace(q{>>Matched production: [subtype_treatment]<<},
31299             Parse::RecDescent::_tracefirst($text),
31300             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31301             $tracelevel)
31302             if defined $::RD_TRACE;
31303     $_matched = 1;
31304     last;
31305   }
31306
31307
31308   while (!$_matched && !$commit)
31309   {
31310
31311     Parse::RecDescent::_trace(q{Trying production: [sequence_reference]},
31312             Parse::RecDescent::_tracefirst($_[1]),
31313             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31314             $tracelevel)
31315             if defined $::RD_TRACE;
31316     my $thisprod = $thisrule->{"prods"}[13];
31317     $text = $_[1];
31318     my $_savetext;
31319     @item = (q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31320     %item = (__RULE__ => q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression});
31321     my $repcount = 0;
31322
31323
31324     Parse::RecDescent::_trace(q{Trying subrule: [sequence_reference]},
31325           Parse::RecDescent::_tracefirst($text),
31326           q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31327           $tracelevel)
31328           if defined $::RD_TRACE;
31329     if (1) { no strict qw{refs};
31330     $expectation->is(q{})->at($text);
31331     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_reference($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31332     {
31333
31334       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_reference]>>},
31335               Parse::RecDescent::_tracefirst($text),
31336               q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31337               $tracelevel)
31338               if defined $::RD_TRACE;
31339       $expectation->failed();
31340       last;
31341     }
31342     Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_reference]<< (return value: [}
31343           . $_tok . q{]},
31344
31345             Parse::RecDescent::_tracefirst($text),
31346             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31347             $tracelevel)
31348             if defined $::RD_TRACE;
31349     $item{q{sequence_reference}} = $_tok;
31350     push @item, $_tok;
31351
31352     }
31353
31354
31355     Parse::RecDescent::_trace(q{>>Matched production: [sequence_reference]<<},
31356             Parse::RecDescent::_tracefirst($text),
31357             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31358             $tracelevel)
31359             if defined $::RD_TRACE;
31360     $_matched = 1;
31361     last;
31362   }
31363
31364
31365         unless ( $_matched || defined($return) || defined($score) )
31366   {
31367
31368
31369     $_[1] = $text;  # NOT SURE THIS IS NEEDED
31370     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
31371            Parse::RecDescent::_tracefirst($_[1]),
31372            q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31373            $tracelevel)
31374           if defined $::RD_TRACE;
31375     return undef;
31376   }
31377   if (!defined($return) && defined($score))
31378   {
31379     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31380             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31381             $tracelevel)
31382             if defined $::RD_TRACE;
31383     $return = $score_return;
31384   }
31385   splice @{$thisparser->{errors}}, $err_at;
31386   $return = $item[$#item] unless defined $return;
31387   if (defined $::RD_TRACE)
31388   {
31389     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31390             $return . q{])}, "",
31391             q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31392             $tracelevel);
31393     Parse::RecDescent::_trace(q{(consumed: [} .
31394             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
31395             Parse::RecDescent::_tracefirst($text),
31396             , q{_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression},
31397             $tracelevel)
31398   }
31399   $_[1] = $text;
31400   return $return;
31401 }
31402
31403 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31404 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::startrule
31405 {
31406   my $thisparser = $_[0];
31407   use vars q{$tracelevel};
31408   local $tracelevel = ($tracelevel||0)+1;
31409   $ERRORS = 0;
31410   my $thisrule = $thisparser->{"rules"}{"startrule"};
31411
31412   Parse::RecDescent::_trace(q{Trying rule: [startrule]},
31413           Parse::RecDescent::_tracefirst($_[1]),
31414           q{startrule},
31415           $tracelevel)
31416           if defined $::RD_TRACE;
31417
31418
31419   my $err_at = @{$thisparser->{errors}};
31420
31421   my $score;
31422   my $score_return;
31423   my $_tok;
31424   my $return = undef;
31425   my $_matched=0;
31426   my $commit=0;
31427   my @item = ();
31428   my %item = ();
31429   my $repeating =  defined($_[2]) && $_[2];
31430   my $_noactions = defined($_[3]) && $_[3];
31431    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
31432   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
31433   my $text;
31434   my $lastsep="";
31435   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31436   $expectation->at($_[1]);
31437
31438   my $thisline;
31439   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31440
31441
31442
31443   while (!$_matched && !$commit)
31444   {
31445
31446     Parse::RecDescent::_trace(q{Trying production: [statement eofile]},
31447             Parse::RecDescent::_tracefirst($_[1]),
31448             q{startrule},
31449             $tracelevel)
31450             if defined $::RD_TRACE;
31451     my $thisprod = $thisrule->{"prods"}[0];
31452     $text = $_[1];
31453     my $_savetext;
31454     @item = (q{startrule});
31455     %item = (__RULE__ => q{startrule});
31456     my $repcount = 0;
31457
31458
31459     Parse::RecDescent::_trace(q{Trying repeated subrule: [statement]},
31460           Parse::RecDescent::_tracefirst($text),
31461           q{startrule},
31462           $tracelevel)
31463           if defined $::RD_TRACE;
31464     $expectation->is(q{})->at($text);
31465
31466     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::statement, 1, 100000000, $_noactions,$expectation,undef)))
31467     {
31468       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [statement]>>},
31469               Parse::RecDescent::_tracefirst($text),
31470               q{startrule},
31471               $tracelevel)
31472               if defined $::RD_TRACE;
31473       last;
31474     }
31475     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [statement]<< (}
31476           . @$_tok . q{ times)},
31477
31478             Parse::RecDescent::_tracefirst($text),
31479             q{startrule},
31480             $tracelevel)
31481             if defined $::RD_TRACE;
31482     $item{q{statement(s)}} = $_tok;
31483     push @item, $_tok;
31484
31485
31486
31487     Parse::RecDescent::_trace(q{Trying subrule: [eofile]},
31488           Parse::RecDescent::_tracefirst($text),
31489           q{startrule},
31490           $tracelevel)
31491           if defined $::RD_TRACE;
31492     if (1) { no strict qw{refs};
31493     $expectation->is(q{eofile})->at($text);
31494     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::eofile($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31495     {
31496
31497       Parse::RecDescent::_trace(q{<<Didn't match subrule: [eofile]>>},
31498               Parse::RecDescent::_tracefirst($text),
31499               q{startrule},
31500               $tracelevel)
31501               if defined $::RD_TRACE;
31502       $expectation->failed();
31503       last;
31504     }
31505     Parse::RecDescent::_trace(q{>>Matched subrule: [eofile]<< (return value: [}
31506           . $_tok . q{]},
31507
31508             Parse::RecDescent::_tracefirst($text),
31509             q{startrule},
31510             $tracelevel)
31511             if defined $::RD_TRACE;
31512     $item{q{eofile}} = $_tok;
31513     push @item, $_tok;
31514
31515     }
31516
31517     Parse::RecDescent::_trace(q{Trying action},
31518             Parse::RecDescent::_tracefirst($text),
31519             q{startrule},
31520             $tracelevel)
31521             if defined $::RD_TRACE;
31522
31523
31524     $_tok = ($_noactions) ? 0 : do {
31525     $return      = {
31526         tables   => \%tables,
31527         views    => \@views,
31528         triggers => \@triggers,
31529     }
31530 };
31531     unless (defined $_tok)
31532     {
31533       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
31534           if defined $::RD_TRACE;
31535       last;
31536     }
31537     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
31538             . $_tok . q{])},
31539             Parse::RecDescent::_tracefirst($text))
31540             if defined $::RD_TRACE;
31541     push @item, $_tok;
31542     $item{__ACTION1__}=$_tok;
31543
31544
31545
31546     Parse::RecDescent::_trace(q{>>Matched production: [statement eofile]<<},
31547             Parse::RecDescent::_tracefirst($text),
31548             q{startrule},
31549             $tracelevel)
31550             if defined $::RD_TRACE;
31551     $_matched = 1;
31552     last;
31553   }
31554
31555
31556         unless ( $_matched || defined($return) || defined($score) )
31557   {
31558
31559
31560     $_[1] = $text;  # NOT SURE THIS IS NEEDED
31561     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
31562            Parse::RecDescent::_tracefirst($_[1]),
31563            q{startrule},
31564            $tracelevel)
31565           if defined $::RD_TRACE;
31566     return undef;
31567   }
31568   if (!defined($return) && defined($score))
31569   {
31570     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31571             q{startrule},
31572             $tracelevel)
31573             if defined $::RD_TRACE;
31574     $return = $score_return;
31575   }
31576   splice @{$thisparser->{errors}}, $err_at;
31577   $return = $item[$#item] unless defined $return;
31578   if (defined $::RD_TRACE)
31579   {
31580     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31581             $return . q{])}, "",
31582             q{startrule},
31583             $tracelevel);
31584     Parse::RecDescent::_trace(q{(consumed: [} .
31585             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
31586             Parse::RecDescent::_tracefirst($text),
31587             , q{startrule},
31588             $tracelevel)
31589   }
31590   $_[1] = $text;
31591   return $return;
31592 }
31593
31594 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31595 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_cast_specification
31596 {
31597   my $thisparser = $_[0];
31598   use vars q{$tracelevel};
31599   local $tracelevel = ($tracelevel||0)+1;
31600   $ERRORS = 0;
31601   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_cast_specification"};
31602
31603   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_cast_specification]},
31604           Parse::RecDescent::_tracefirst($_[1]),
31605           q{_alternation_1_of_production_1_of_rule_cast_specification},
31606           $tracelevel)
31607           if defined $::RD_TRACE;
31608
31609
31610   my $err_at = @{$thisparser->{errors}};
31611
31612   my $score;
31613   my $score_return;
31614   my $_tok;
31615   my $return = undef;
31616   my $_matched=0;
31617   my $commit=0;
31618   my @item = ();
31619   my %item = ();
31620   my $repeating =  defined($_[2]) && $_[2];
31621   my $_noactions = defined($_[3]) && $_[3];
31622    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
31623   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
31624   my $text;
31625   my $lastsep="";
31626   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31627   $expectation->at($_[1]);
31628
31629   my $thisline;
31630   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31631
31632
31633
31634   while (!$_matched && !$commit)
31635   {
31636
31637     Parse::RecDescent::_trace(q{Trying production: [expression]},
31638             Parse::RecDescent::_tracefirst($_[1]),
31639             q{_alternation_1_of_production_1_of_rule_cast_specification},
31640             $tracelevel)
31641             if defined $::RD_TRACE;
31642     my $thisprod = $thisrule->{"prods"}[0];
31643     $text = $_[1];
31644     my $_savetext;
31645     @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31646     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31647     my $repcount = 0;
31648
31649
31650     Parse::RecDescent::_trace(q{Trying subrule: [expression]},
31651           Parse::RecDescent::_tracefirst($text),
31652           q{_alternation_1_of_production_1_of_rule_cast_specification},
31653           $tracelevel)
31654           if defined $::RD_TRACE;
31655     if (1) { no strict qw{refs};
31656     $expectation->is(q{})->at($text);
31657     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31658     {
31659
31660       Parse::RecDescent::_trace(q{<<Didn't match subrule: [expression]>>},
31661               Parse::RecDescent::_tracefirst($text),
31662               q{_alternation_1_of_production_1_of_rule_cast_specification},
31663               $tracelevel)
31664               if defined $::RD_TRACE;
31665       $expectation->failed();
31666       last;
31667     }
31668     Parse::RecDescent::_trace(q{>>Matched subrule: [expression]<< (return value: [}
31669           . $_tok . q{]},
31670
31671             Parse::RecDescent::_tracefirst($text),
31672             q{_alternation_1_of_production_1_of_rule_cast_specification},
31673             $tracelevel)
31674             if defined $::RD_TRACE;
31675     $item{q{expression}} = $_tok;
31676     push @item, $_tok;
31677
31678     }
31679
31680
31681     Parse::RecDescent::_trace(q{>>Matched production: [expression]<<},
31682             Parse::RecDescent::_tracefirst($text),
31683             q{_alternation_1_of_production_1_of_rule_cast_specification},
31684             $tracelevel)
31685             if defined $::RD_TRACE;
31686     $_matched = 1;
31687     last;
31688   }
31689
31690
31691   while (!$_matched && !$commit)
31692   {
31693
31694     Parse::RecDescent::_trace(q{Trying production: [/NULL/i]},
31695             Parse::RecDescent::_tracefirst($_[1]),
31696             q{_alternation_1_of_production_1_of_rule_cast_specification},
31697             $tracelevel)
31698             if defined $::RD_TRACE;
31699     my $thisprod = $thisrule->{"prods"}[1];
31700     $text = $_[1];
31701     my $_savetext;
31702     @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31703     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31704     my $repcount = 0;
31705
31706
31707     Parse::RecDescent::_trace(q{Trying terminal: [/NULL/i]}, Parse::RecDescent::_tracefirst($text),
31708             q{_alternation_1_of_production_1_of_rule_cast_specification},
31709             $tracelevel)
31710             if defined $::RD_TRACE;
31711     $lastsep = "";
31712     $expectation->is(q{})->at($text);
31713
31714
31715     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NULL)//i)
31716     {
31717
31718       $expectation->failed();
31719       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
31720               Parse::RecDescent::_tracefirst($text))
31721           if defined $::RD_TRACE;
31722
31723       last;
31724     }
31725     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
31726             . $& . q{])},
31727               Parse::RecDescent::_tracefirst($text))
31728           if defined $::RD_TRACE;
31729     push @item, $item{__PATTERN1__}=$&;
31730
31731
31732
31733     Parse::RecDescent::_trace(q{>>Matched production: [/NULL/i]<<},
31734             Parse::RecDescent::_tracefirst($text),
31735             q{_alternation_1_of_production_1_of_rule_cast_specification},
31736             $tracelevel)
31737             if defined $::RD_TRACE;
31738     $_matched = 1;
31739     last;
31740   }
31741
31742
31743   while (!$_matched && !$commit)
31744   {
31745
31746     Parse::RecDescent::_trace(q{Trying production: [parameter_marker]},
31747             Parse::RecDescent::_tracefirst($_[1]),
31748             q{_alternation_1_of_production_1_of_rule_cast_specification},
31749             $tracelevel)
31750             if defined $::RD_TRACE;
31751     my $thisprod = $thisrule->{"prods"}[2];
31752     $text = $_[1];
31753     my $_savetext;
31754     @item = (q{_alternation_1_of_production_1_of_rule_cast_specification});
31755     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_cast_specification});
31756     my $repcount = 0;
31757
31758
31759     Parse::RecDescent::_trace(q{Trying subrule: [parameter_marker]},
31760           Parse::RecDescent::_tracefirst($text),
31761           q{_alternation_1_of_production_1_of_rule_cast_specification},
31762           $tracelevel)
31763           if defined $::RD_TRACE;
31764     if (1) { no strict qw{refs};
31765     $expectation->is(q{})->at($text);
31766     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::parameter_marker($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
31767     {
31768
31769       Parse::RecDescent::_trace(q{<<Didn't match subrule: [parameter_marker]>>},
31770               Parse::RecDescent::_tracefirst($text),
31771               q{_alternation_1_of_production_1_of_rule_cast_specification},
31772               $tracelevel)
31773               if defined $::RD_TRACE;
31774       $expectation->failed();
31775       last;
31776     }
31777     Parse::RecDescent::_trace(q{>>Matched subrule: [parameter_marker]<< (return value: [}
31778           . $_tok . q{]},
31779
31780             Parse::RecDescent::_tracefirst($text),
31781             q{_alternation_1_of_production_1_of_rule_cast_specification},
31782             $tracelevel)
31783             if defined $::RD_TRACE;
31784     $item{q{parameter_marker}} = $_tok;
31785     push @item, $_tok;
31786
31787     }
31788
31789
31790     Parse::RecDescent::_trace(q{>>Matched production: [parameter_marker]<<},
31791             Parse::RecDescent::_tracefirst($text),
31792             q{_alternation_1_of_production_1_of_rule_cast_specification},
31793             $tracelevel)
31794             if defined $::RD_TRACE;
31795     $_matched = 1;
31796     last;
31797   }
31798
31799
31800         unless ( $_matched || defined($return) || defined($score) )
31801   {
31802
31803
31804     $_[1] = $text;  # NOT SURE THIS IS NEEDED
31805     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
31806            Parse::RecDescent::_tracefirst($_[1]),
31807            q{_alternation_1_of_production_1_of_rule_cast_specification},
31808            $tracelevel)
31809           if defined $::RD_TRACE;
31810     return undef;
31811   }
31812   if (!defined($return) && defined($score))
31813   {
31814     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31815             q{_alternation_1_of_production_1_of_rule_cast_specification},
31816             $tracelevel)
31817             if defined $::RD_TRACE;
31818     $return = $score_return;
31819   }
31820   splice @{$thisparser->{errors}}, $err_at;
31821   $return = $item[$#item] unless defined $return;
31822   if (defined $::RD_TRACE)
31823   {
31824     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31825             $return . q{])}, "",
31826             q{_alternation_1_of_production_1_of_rule_cast_specification},
31827             $tracelevel);
31828     Parse::RecDescent::_trace(q{(consumed: [} .
31829             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
31830             Parse::RecDescent::_tracefirst($text),
31831             , q{_alternation_1_of_production_1_of_rule_cast_specification},
31832             $tracelevel)
31833   }
31834   $_[1] = $text;
31835   return $return;
31836 }
31837
31838 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31839 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::before
31840 {
31841   my $thisparser = $_[0];
31842   use vars q{$tracelevel};
31843   local $tracelevel = ($tracelevel||0)+1;
31844   $ERRORS = 0;
31845   my $thisrule = $thisparser->{"rules"}{"before"};
31846
31847   Parse::RecDescent::_trace(q{Trying rule: [before]},
31848           Parse::RecDescent::_tracefirst($_[1]),
31849           q{before},
31850           $tracelevel)
31851           if defined $::RD_TRACE;
31852
31853
31854   my $err_at = @{$thisparser->{errors}};
31855
31856   my $score;
31857   my $score_return;
31858   my $_tok;
31859   my $return = undef;
31860   my $_matched=0;
31861   my $commit=0;
31862   my @item = ();
31863   my %item = ();
31864   my $repeating =  defined($_[2]) && $_[2];
31865   my $_noactions = defined($_[3]) && $_[3];
31866    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
31867   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
31868   my $text;
31869   my $lastsep="";
31870   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
31871   $expectation->at($_[1]);
31872
31873   my $thisline;
31874   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
31875
31876
31877
31878   while (!$_matched && !$commit)
31879   {
31880
31881     Parse::RecDescent::_trace(q{Trying production: [/NO CASCADE BEFORE/i]},
31882             Parse::RecDescent::_tracefirst($_[1]),
31883             q{before},
31884             $tracelevel)
31885             if defined $::RD_TRACE;
31886     my $thisprod = $thisrule->{"prods"}[0];
31887     $text = $_[1];
31888     my $_savetext;
31889     @item = (q{before});
31890     %item = (__RULE__ => q{before});
31891     my $repcount = 0;
31892
31893
31894     Parse::RecDescent::_trace(q{Trying terminal: [/NO CASCADE BEFORE/i]}, Parse::RecDescent::_tracefirst($text),
31895             q{before},
31896             $tracelevel)
31897             if defined $::RD_TRACE;
31898     $lastsep = "";
31899     $expectation->is(q{})->at($text);
31900
31901
31902     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NO CASCADE BEFORE)//i)
31903     {
31904
31905       $expectation->failed();
31906       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
31907               Parse::RecDescent::_tracefirst($text))
31908           if defined $::RD_TRACE;
31909
31910       last;
31911     }
31912     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
31913             . $& . q{])},
31914               Parse::RecDescent::_tracefirst($text))
31915           if defined $::RD_TRACE;
31916     push @item, $item{__PATTERN1__}=$&;
31917
31918
31919
31920     Parse::RecDescent::_trace(q{>>Matched production: [/NO CASCADE BEFORE/i]<<},
31921             Parse::RecDescent::_tracefirst($text),
31922             q{before},
31923             $tracelevel)
31924             if defined $::RD_TRACE;
31925     $_matched = 1;
31926     last;
31927   }
31928
31929
31930         unless ( $_matched || defined($return) || defined($score) )
31931   {
31932
31933
31934     $_[1] = $text;  # NOT SURE THIS IS NEEDED
31935     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
31936            Parse::RecDescent::_tracefirst($_[1]),
31937            q{before},
31938            $tracelevel)
31939           if defined $::RD_TRACE;
31940     return undef;
31941   }
31942   if (!defined($return) && defined($score))
31943   {
31944     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
31945             q{before},
31946             $tracelevel)
31947             if defined $::RD_TRACE;
31948     $return = $score_return;
31949   }
31950   splice @{$thisparser->{errors}}, $err_at;
31951   $return = $item[$#item] unless defined $return;
31952   if (defined $::RD_TRACE)
31953   {
31954     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
31955             $return . q{])}, "",
31956             q{before},
31957             $tracelevel);
31958     Parse::RecDescent::_trace(q{(consumed: [} .
31959             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
31960             Parse::RecDescent::_tracefirst($text),
31961             , q{before},
31962             $tracelevel)
31963   }
31964   $_[1] = $text;
31965   return $return;
31966 }
31967
31968 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
31969 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_83_of_rule_sysibm_function
31970 {
31971   my $thisparser = $_[0];
31972   use vars q{$tracelevel};
31973   local $tracelevel = ($tracelevel||0)+1;
31974   $ERRORS = 0;
31975   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_83_of_rule_sysibm_function"};
31976
31977   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_83_of_rule_sysibm_function]},
31978           Parse::RecDescent::_tracefirst($_[1]),
31979           q{_alternation_1_of_production_83_of_rule_sysibm_function},
31980           $tracelevel)
31981           if defined $::RD_TRACE;
31982
31983
31984   my $err_at = @{$thisparser->{errors}};
31985
31986   my $score;
31987   my $score_return;
31988   my $_tok;
31989   my $return = undef;
31990   my $_matched=0;
31991   my $commit=0;
31992   my @item = ();
31993   my %item = ();
31994   my $repeating =  defined($_[2]) && $_[2];
31995   my $_noactions = defined($_[3]) && $_[3];
31996    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
31997   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
31998   my $text;
31999   my $lastsep="";
32000   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32001   $expectation->at($_[1]);
32002
32003   my $thisline;
32004   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32005
32006
32007
32008   while (!$_matched && !$commit)
32009   {
32010
32011     Parse::RecDescent::_trace(q{Trying production: [/UCASE/i]},
32012             Parse::RecDescent::_tracefirst($_[1]),
32013             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32014             $tracelevel)
32015             if defined $::RD_TRACE;
32016     my $thisprod = $thisrule->{"prods"}[0];
32017     $text = $_[1];
32018     my $_savetext;
32019     @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
32020     %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
32021     my $repcount = 0;
32022
32023
32024     Parse::RecDescent::_trace(q{Trying terminal: [/UCASE/i]}, Parse::RecDescent::_tracefirst($text),
32025             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32026             $tracelevel)
32027             if defined $::RD_TRACE;
32028     $lastsep = "";
32029     $expectation->is(q{})->at($text);
32030
32031
32032     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UCASE)//i)
32033     {
32034
32035       $expectation->failed();
32036       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32037               Parse::RecDescent::_tracefirst($text))
32038           if defined $::RD_TRACE;
32039
32040       last;
32041     }
32042     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32043             . $& . q{])},
32044               Parse::RecDescent::_tracefirst($text))
32045           if defined $::RD_TRACE;
32046     push @item, $item{__PATTERN1__}=$&;
32047
32048
32049
32050     Parse::RecDescent::_trace(q{>>Matched production: [/UCASE/i]<<},
32051             Parse::RecDescent::_tracefirst($text),
32052             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32053             $tracelevel)
32054             if defined $::RD_TRACE;
32055     $_matched = 1;
32056     last;
32057   }
32058
32059
32060   while (!$_matched && !$commit)
32061   {
32062
32063     Parse::RecDescent::_trace(q{Trying production: [/UPPER/i]},
32064             Parse::RecDescent::_tracefirst($_[1]),
32065             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32066             $tracelevel)
32067             if defined $::RD_TRACE;
32068     my $thisprod = $thisrule->{"prods"}[1];
32069     $text = $_[1];
32070     my $_savetext;
32071     @item = (q{_alternation_1_of_production_83_of_rule_sysibm_function});
32072     %item = (__RULE__ => q{_alternation_1_of_production_83_of_rule_sysibm_function});
32073     my $repcount = 0;
32074
32075
32076     Parse::RecDescent::_trace(q{Trying terminal: [/UPPER/i]}, Parse::RecDescent::_tracefirst($text),
32077             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32078             $tracelevel)
32079             if defined $::RD_TRACE;
32080     $lastsep = "";
32081     $expectation->is(q{})->at($text);
32082
32083
32084     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UPPER)//i)
32085     {
32086
32087       $expectation->failed();
32088       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32089               Parse::RecDescent::_tracefirst($text))
32090           if defined $::RD_TRACE;
32091
32092       last;
32093     }
32094     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32095             . $& . q{])},
32096               Parse::RecDescent::_tracefirst($text))
32097           if defined $::RD_TRACE;
32098     push @item, $item{__PATTERN1__}=$&;
32099
32100
32101
32102     Parse::RecDescent::_trace(q{>>Matched production: [/UPPER/i]<<},
32103             Parse::RecDescent::_tracefirst($text),
32104             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32105             $tracelevel)
32106             if defined $::RD_TRACE;
32107     $_matched = 1;
32108     last;
32109   }
32110
32111
32112         unless ( $_matched || defined($return) || defined($score) )
32113   {
32114
32115
32116     $_[1] = $text;  # NOT SURE THIS IS NEEDED
32117     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32118            Parse::RecDescent::_tracefirst($_[1]),
32119            q{_alternation_1_of_production_83_of_rule_sysibm_function},
32120            $tracelevel)
32121           if defined $::RD_TRACE;
32122     return undef;
32123   }
32124   if (!defined($return) && defined($score))
32125   {
32126     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32127             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32128             $tracelevel)
32129             if defined $::RD_TRACE;
32130     $return = $score_return;
32131   }
32132   splice @{$thisparser->{errors}}, $err_at;
32133   $return = $item[$#item] unless defined $return;
32134   if (defined $::RD_TRACE)
32135   {
32136     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32137             $return . q{])}, "",
32138             q{_alternation_1_of_production_83_of_rule_sysibm_function},
32139             $tracelevel);
32140     Parse::RecDescent::_trace(q{(consumed: [} .
32141             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32142             Parse::RecDescent::_tracefirst($text),
32143             , q{_alternation_1_of_production_83_of_rule_sysibm_function},
32144             $tracelevel)
32145   }
32146   $_[1] = $text;
32147   return $return;
32148 }
32149
32150 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32151 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::ranking_function
32152 {
32153   my $thisparser = $_[0];
32154   use vars q{$tracelevel};
32155   local $tracelevel = ($tracelevel||0)+1;
32156   $ERRORS = 0;
32157   my $thisrule = $thisparser->{"rules"}{"ranking_function"};
32158
32159   Parse::RecDescent::_trace(q{Trying rule: [ranking_function]},
32160           Parse::RecDescent::_tracefirst($_[1]),
32161           q{ranking_function},
32162           $tracelevel)
32163           if defined $::RD_TRACE;
32164
32165
32166   my $err_at = @{$thisparser->{errors}};
32167
32168   my $score;
32169   my $score_return;
32170   my $_tok;
32171   my $return = undef;
32172   my $_matched=0;
32173   my $commit=0;
32174   my @item = ();
32175   my %item = ();
32176   my $repeating =  defined($_[2]) && $_[2];
32177   my $_noactions = defined($_[3]) && $_[3];
32178    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32179   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32180   my $text;
32181   my $lastsep="";
32182   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32183   $expectation->at($_[1]);
32184
32185   my $thisline;
32186   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32187
32188
32189
32190   while (!$_matched && !$commit)
32191   {
32192
32193     Parse::RecDescent::_trace(q{Trying production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']},
32194             Parse::RecDescent::_tracefirst($_[1]),
32195             q{ranking_function},
32196             $tracelevel)
32197             if defined $::RD_TRACE;
32198     my $thisprod = $thisrule->{"prods"}[0];
32199     $text = $_[1];
32200     my $_savetext;
32201     @item = (q{ranking_function});
32202     %item = (__RULE__ => q{ranking_function});
32203     my $repcount = 0;
32204
32205
32206     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_ranking_function]},
32207           Parse::RecDescent::_tracefirst($text),
32208           q{ranking_function},
32209           $tracelevel)
32210           if defined $::RD_TRACE;
32211     if (1) { no strict qw{refs};
32212     $expectation->is(q{})->at($text);
32213     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_ranking_function($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
32214     {
32215
32216       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_ranking_function]>>},
32217               Parse::RecDescent::_tracefirst($text),
32218               q{ranking_function},
32219               $tracelevel)
32220               if defined $::RD_TRACE;
32221       $expectation->failed();
32222       last;
32223     }
32224     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_ranking_function]<< (return value: [}
32225           . $_tok . q{]},
32226
32227             Parse::RecDescent::_tracefirst($text),
32228             q{ranking_function},
32229             $tracelevel)
32230             if defined $::RD_TRACE;
32231     $item{q{_alternation_1_of_production_1_of_rule_ranking_function}} = $_tok;
32232     push @item, $_tok;
32233
32234     }
32235
32236     Parse::RecDescent::_trace(q{Trying terminal: [/OVER/i]}, Parse::RecDescent::_tracefirst($text),
32237             q{ranking_function},
32238             $tracelevel)
32239             if defined $::RD_TRACE;
32240     $lastsep = "";
32241     $expectation->is(q{/OVER/i})->at($text);
32242
32243
32244     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:OVER)//i)
32245     {
32246
32247       $expectation->failed();
32248       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32249               Parse::RecDescent::_tracefirst($text))
32250           if defined $::RD_TRACE;
32251
32252       last;
32253     }
32254     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32255             . $& . q{])},
32256               Parse::RecDescent::_tracefirst($text))
32257           if defined $::RD_TRACE;
32258     push @item, $item{__PATTERN1__}=$&;
32259
32260
32261     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
32262             Parse::RecDescent::_tracefirst($text),
32263             q{ranking_function},
32264             $tracelevel)
32265             if defined $::RD_TRACE;
32266     $lastsep = "";
32267     $expectation->is(q{'('})->at($text);
32268
32269
32270     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
32271     {
32272
32273       $expectation->failed();
32274       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
32275               Parse::RecDescent::_tracefirst($text))
32276               if defined $::RD_TRACE;
32277       last;
32278     }
32279     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32280             . $& . q{])},
32281               Parse::RecDescent::_tracefirst($text))
32282               if defined $::RD_TRACE;
32283     push @item, $item{__STRING1__}=$&;
32284
32285
32286     Parse::RecDescent::_trace(q{Trying repeated subrule: [window_partition_clause]},
32287           Parse::RecDescent::_tracefirst($text),
32288           q{ranking_function},
32289           $tracelevel)
32290           if defined $::RD_TRACE;
32291     $expectation->is(q{window_partition_clause})->at($text);
32292
32293     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_partition_clause, 0, 1, $_noactions,$expectation,undef)))
32294     {
32295       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [window_partition_clause]>>},
32296               Parse::RecDescent::_tracefirst($text),
32297               q{ranking_function},
32298               $tracelevel)
32299               if defined $::RD_TRACE;
32300       last;
32301     }
32302     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [window_partition_clause]<< (}
32303           . @$_tok . q{ times)},
32304
32305             Parse::RecDescent::_tracefirst($text),
32306             q{ranking_function},
32307             $tracelevel)
32308             if defined $::RD_TRACE;
32309     $item{q{window_partition_clause(?)}} = $_tok;
32310     push @item, $_tok;
32311
32312
32313
32314     Parse::RecDescent::_trace(q{Trying subrule: [window_order_clause]},
32315           Parse::RecDescent::_tracefirst($text),
32316           q{ranking_function},
32317           $tracelevel)
32318           if defined $::RD_TRACE;
32319     if (1) { no strict qw{refs};
32320     $expectation->is(q{window_order_clause})->at($text);
32321     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
32322     {
32323
32324       Parse::RecDescent::_trace(q{<<Didn't match subrule: [window_order_clause]>>},
32325               Parse::RecDescent::_tracefirst($text),
32326               q{ranking_function},
32327               $tracelevel)
32328               if defined $::RD_TRACE;
32329       $expectation->failed();
32330       last;
32331     }
32332     Parse::RecDescent::_trace(q{>>Matched subrule: [window_order_clause]<< (return value: [}
32333           . $_tok . q{]},
32334
32335             Parse::RecDescent::_tracefirst($text),
32336             q{ranking_function},
32337             $tracelevel)
32338             if defined $::RD_TRACE;
32339     $item{q{window_order_clause}} = $_tok;
32340     push @item, $_tok;
32341
32342     }
32343
32344     Parse::RecDescent::_trace(q{Trying terminal: [')']},
32345             Parse::RecDescent::_tracefirst($text),
32346             q{ranking_function},
32347             $tracelevel)
32348             if defined $::RD_TRACE;
32349     $lastsep = "";
32350     $expectation->is(q{')'})->at($text);
32351
32352
32353     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
32354     {
32355
32356       $expectation->failed();
32357       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
32358               Parse::RecDescent::_tracefirst($text))
32359               if defined $::RD_TRACE;
32360       last;
32361     }
32362     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32363             . $& . q{])},
32364               Parse::RecDescent::_tracefirst($text))
32365               if defined $::RD_TRACE;
32366     push @item, $item{__STRING2__}=$&;
32367
32368
32369
32370     Parse::RecDescent::_trace(q{>>Matched production: [/RANK/, or /DENSE_RANK|DENSERANK/i /OVER/i '(' window_partition_clause window_order_clause ')']<<},
32371             Parse::RecDescent::_tracefirst($text),
32372             q{ranking_function},
32373             $tracelevel)
32374             if defined $::RD_TRACE;
32375     $_matched = 1;
32376     last;
32377   }
32378
32379
32380         unless ( $_matched || defined($return) || defined($score) )
32381   {
32382
32383
32384     $_[1] = $text;  # NOT SURE THIS IS NEEDED
32385     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32386            Parse::RecDescent::_tracefirst($_[1]),
32387            q{ranking_function},
32388            $tracelevel)
32389           if defined $::RD_TRACE;
32390     return undef;
32391   }
32392   if (!defined($return) && defined($score))
32393   {
32394     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32395             q{ranking_function},
32396             $tracelevel)
32397             if defined $::RD_TRACE;
32398     $return = $score_return;
32399   }
32400   splice @{$thisparser->{errors}}, $err_at;
32401   $return = $item[$#item] unless defined $return;
32402   if (defined $::RD_TRACE)
32403   {
32404     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32405             $return . q{])}, "",
32406             q{ranking_function},
32407             $tracelevel);
32408     Parse::RecDescent::_trace(q{(consumed: [} .
32409             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32410             Parse::RecDescent::_tracefirst($text),
32411             , q{ranking_function},
32412             $tracelevel)
32413   }
32414   $_[1] = $text;
32415   return $return;
32416 }
32417
32418 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32419 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition
32420 {
32421   my $thisparser = $_[0];
32422   use vars q{$tracelevel};
32423   local $tracelevel = ($tracelevel||0)+1;
32424   $ERRORS = 0;
32425   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition"};
32426
32427   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition]},
32428           Parse::RecDescent::_tracefirst($_[1]),
32429           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32430           $tracelevel)
32431           if defined $::RD_TRACE;
32432
32433
32434   my $err_at = @{$thisparser->{errors}};
32435
32436   my $score;
32437   my $score_return;
32438   my $_tok;
32439   my $return = undef;
32440   my $_matched=0;
32441   my $commit=0;
32442   my @item = ();
32443   my %item = ();
32444   my $repeating =  defined($_[2]) && $_[2];
32445   my $_noactions = defined($_[3]) && $_[3];
32446    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32447   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32448   my $text;
32449   my $lastsep="";
32450   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32451   $expectation->at($_[1]);
32452
32453   my $thisline;
32454   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32455
32456
32457
32458   while (!$_matched && !$commit)
32459   {
32460
32461     Parse::RecDescent::_trace(q{Trying production: [/SELECTIVITY/i numeric_constant]},
32462             Parse::RecDescent::_tracefirst($_[1]),
32463             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32464             $tracelevel)
32465             if defined $::RD_TRACE;
32466     my $thisprod = $thisrule->{"prods"}[0];
32467     $text = $_[1];
32468     my $_savetext;
32469     @item = (q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
32470     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition});
32471     my $repcount = 0;
32472
32473
32474     Parse::RecDescent::_trace(q{Trying terminal: [/SELECTIVITY/i]}, Parse::RecDescent::_tracefirst($text),
32475             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32476             $tracelevel)
32477             if defined $::RD_TRACE;
32478     $lastsep = "";
32479     $expectation->is(q{})->at($text);
32480
32481
32482     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:SELECTIVITY)//i)
32483     {
32484
32485       $expectation->failed();
32486       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32487               Parse::RecDescent::_tracefirst($text))
32488           if defined $::RD_TRACE;
32489
32490       last;
32491     }
32492     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32493             . $& . q{])},
32494               Parse::RecDescent::_tracefirst($text))
32495           if defined $::RD_TRACE;
32496     push @item, $item{__PATTERN1__}=$&;
32497
32498
32499     Parse::RecDescent::_trace(q{Trying subrule: [numeric_constant]},
32500           Parse::RecDescent::_tracefirst($text),
32501           q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32502           $tracelevel)
32503           if defined $::RD_TRACE;
32504     if (1) { no strict qw{refs};
32505     $expectation->is(q{numeric_constant})->at($text);
32506     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::numeric_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
32507     {
32508
32509       Parse::RecDescent::_trace(q{<<Didn't match subrule: [numeric_constant]>>},
32510               Parse::RecDescent::_tracefirst($text),
32511               q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32512               $tracelevel)
32513               if defined $::RD_TRACE;
32514       $expectation->failed();
32515       last;
32516     }
32517     Parse::RecDescent::_trace(q{>>Matched subrule: [numeric_constant]<< (return value: [}
32518           . $_tok . q{]},
32519
32520             Parse::RecDescent::_tracefirst($text),
32521             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32522             $tracelevel)
32523             if defined $::RD_TRACE;
32524     $item{q{numeric_constant}} = $_tok;
32525     push @item, $_tok;
32526
32527     }
32528
32529
32530     Parse::RecDescent::_trace(q{>>Matched production: [/SELECTIVITY/i numeric_constant]<<},
32531             Parse::RecDescent::_tracefirst($text),
32532             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32533             $tracelevel)
32534             if defined $::RD_TRACE;
32535     $_matched = 1;
32536     last;
32537   }
32538
32539
32540         unless ( $_matched || defined($return) || defined($score) )
32541   {
32542
32543
32544     $_[1] = $text;  # NOT SURE THIS IS NEEDED
32545     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32546            Parse::RecDescent::_tracefirst($_[1]),
32547            q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32548            $tracelevel)
32549           if defined $::RD_TRACE;
32550     return undef;
32551   }
32552   if (!defined($return) && defined($score))
32553   {
32554     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32555             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32556             $tracelevel)
32557             if defined $::RD_TRACE;
32558     $return = $score_return;
32559   }
32560   splice @{$thisparser->{errors}}, $err_at;
32561   $return = $item[$#item] unless defined $return;
32562   if (defined $::RD_TRACE)
32563   {
32564     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32565             $return . q{])}, "",
32566             q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32567             $tracelevel);
32568     Parse::RecDescent::_trace(q{(consumed: [} .
32569             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32570             Parse::RecDescent::_tracefirst($text),
32571             , q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition},
32572             $tracelevel)
32573   }
32574   $_[1] = $text;
32575   return $return;
32576 }
32577
32578 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32579 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_sysibm_function
32580 {
32581   my $thisparser = $_[0];
32582   use vars q{$tracelevel};
32583   local $tracelevel = ($tracelevel||0)+1;
32584   $ERRORS = 0;
32585   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_sysibm_function"};
32586
32587   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_sysibm_function]},
32588           Parse::RecDescent::_tracefirst($_[1]),
32589           q{_alternation_1_of_production_1_of_rule_sysibm_function},
32590           $tracelevel)
32591           if defined $::RD_TRACE;
32592
32593
32594   my $err_at = @{$thisparser->{errors}};
32595
32596   my $score;
32597   my $score_return;
32598   my $_tok;
32599   my $return = undef;
32600   my $_matched=0;
32601   my $commit=0;
32602   my @item = ();
32603   my %item = ();
32604   my $repeating =  defined($_[2]) && $_[2];
32605   my $_noactions = defined($_[3]) && $_[3];
32606    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32607   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32608   my $text;
32609   my $lastsep="";
32610   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32611   $expectation->at($_[1]);
32612
32613   my $thisline;
32614   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32615
32616
32617
32618   while (!$_matched && !$commit)
32619   {
32620
32621     Parse::RecDescent::_trace(q{Trying production: [/ABS/i]},
32622             Parse::RecDescent::_tracefirst($_[1]),
32623             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32624             $tracelevel)
32625             if defined $::RD_TRACE;
32626     my $thisprod = $thisrule->{"prods"}[0];
32627     $text = $_[1];
32628     my $_savetext;
32629     @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
32630     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
32631     my $repcount = 0;
32632
32633
32634     Parse::RecDescent::_trace(q{Trying terminal: [/ABS/i]}, Parse::RecDescent::_tracefirst($text),
32635             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32636             $tracelevel)
32637             if defined $::RD_TRACE;
32638     $lastsep = "";
32639     $expectation->is(q{})->at($text);
32640
32641
32642     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABS)//i)
32643     {
32644
32645       $expectation->failed();
32646       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32647               Parse::RecDescent::_tracefirst($text))
32648           if defined $::RD_TRACE;
32649
32650       last;
32651     }
32652     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32653             . $& . q{])},
32654               Parse::RecDescent::_tracefirst($text))
32655           if defined $::RD_TRACE;
32656     push @item, $item{__PATTERN1__}=$&;
32657
32658
32659
32660     Parse::RecDescent::_trace(q{>>Matched production: [/ABS/i]<<},
32661             Parse::RecDescent::_tracefirst($text),
32662             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32663             $tracelevel)
32664             if defined $::RD_TRACE;
32665     $_matched = 1;
32666     last;
32667   }
32668
32669
32670   while (!$_matched && !$commit)
32671   {
32672
32673     Parse::RecDescent::_trace(q{Trying production: [/ABSVAL/i]},
32674             Parse::RecDescent::_tracefirst($_[1]),
32675             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32676             $tracelevel)
32677             if defined $::RD_TRACE;
32678     my $thisprod = $thisrule->{"prods"}[1];
32679     $text = $_[1];
32680     my $_savetext;
32681     @item = (q{_alternation_1_of_production_1_of_rule_sysibm_function});
32682     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_sysibm_function});
32683     my $repcount = 0;
32684
32685
32686     Parse::RecDescent::_trace(q{Trying terminal: [/ABSVAL/i]}, Parse::RecDescent::_tracefirst($text),
32687             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32688             $tracelevel)
32689             if defined $::RD_TRACE;
32690     $lastsep = "";
32691     $expectation->is(q{})->at($text);
32692
32693
32694     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ABSVAL)//i)
32695     {
32696
32697       $expectation->failed();
32698       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32699               Parse::RecDescent::_tracefirst($text))
32700           if defined $::RD_TRACE;
32701
32702       last;
32703     }
32704     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32705             . $& . q{])},
32706               Parse::RecDescent::_tracefirst($text))
32707           if defined $::RD_TRACE;
32708     push @item, $item{__PATTERN1__}=$&;
32709
32710
32711
32712     Parse::RecDescent::_trace(q{>>Matched production: [/ABSVAL/i]<<},
32713             Parse::RecDescent::_tracefirst($text),
32714             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32715             $tracelevel)
32716             if defined $::RD_TRACE;
32717     $_matched = 1;
32718     last;
32719   }
32720
32721
32722         unless ( $_matched || defined($return) || defined($score) )
32723   {
32724
32725
32726     $_[1] = $text;  # NOT SURE THIS IS NEEDED
32727     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32728            Parse::RecDescent::_tracefirst($_[1]),
32729            q{_alternation_1_of_production_1_of_rule_sysibm_function},
32730            $tracelevel)
32731           if defined $::RD_TRACE;
32732     return undef;
32733   }
32734   if (!defined($return) && defined($score))
32735   {
32736     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32737             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32738             $tracelevel)
32739             if defined $::RD_TRACE;
32740     $return = $score_return;
32741   }
32742   splice @{$thisparser->{errors}}, $err_at;
32743   $return = $item[$#item] unless defined $return;
32744   if (defined $::RD_TRACE)
32745   {
32746     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32747             $return . q{])}, "",
32748             q{_alternation_1_of_production_1_of_rule_sysibm_function},
32749             $tracelevel);
32750     Parse::RecDescent::_trace(q{(consumed: [} .
32751             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32752             Parse::RecDescent::_tracefirst($text),
32753             , q{_alternation_1_of_production_1_of_rule_sysibm_function},
32754             $tracelevel)
32755   }
32756   $_[1] = $text;
32757   return $return;
32758 }
32759
32760 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32761 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::reference_b
32762 {
32763   my $thisparser = $_[0];
32764   use vars q{$tracelevel};
32765   local $tracelevel = ($tracelevel||0)+1;
32766   $ERRORS = 0;
32767   my $thisrule = $thisparser->{"rules"}{"reference_b"};
32768
32769   Parse::RecDescent::_trace(q{Trying rule: [reference_b]},
32770           Parse::RecDescent::_tracefirst($_[1]),
32771           q{reference_b},
32772           $tracelevel)
32773           if defined $::RD_TRACE;
32774
32775
32776   my $err_at = @{$thisparser->{errors}};
32777
32778   my $score;
32779   my $score_return;
32780   my $_tok;
32781   my $return = undef;
32782   my $_matched=0;
32783   my $commit=0;
32784   my @item = ();
32785   my %item = ();
32786   my $repeating =  defined($_[2]) && $_[2];
32787   my $_noactions = defined($_[3]) && $_[3];
32788    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32789   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32790   my $text;
32791   my $lastsep="";
32792   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32793   $expectation->at($_[1]);
32794
32795   my $thisline;
32796   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32797
32798
32799
32800   while (!$_matched && !$commit)
32801   {
32802
32803     Parse::RecDescent::_trace(q{Trying production: [/REFERENCING/i old_new_corr]},
32804             Parse::RecDescent::_tracefirst($_[1]),
32805             q{reference_b},
32806             $tracelevel)
32807             if defined $::RD_TRACE;
32808     my $thisprod = $thisrule->{"prods"}[0];
32809     $text = $_[1];
32810     my $_savetext;
32811     @item = (q{reference_b});
32812     %item = (__RULE__ => q{reference_b});
32813     my $repcount = 0;
32814
32815
32816     Parse::RecDescent::_trace(q{Trying terminal: [/REFERENCING/i]}, Parse::RecDescent::_tracefirst($text),
32817             q{reference_b},
32818             $tracelevel)
32819             if defined $::RD_TRACE;
32820     $lastsep = "";
32821     $expectation->is(q{})->at($text);
32822
32823
32824     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REFERENCING)//i)
32825     {
32826
32827       $expectation->failed();
32828       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
32829               Parse::RecDescent::_tracefirst($text))
32830           if defined $::RD_TRACE;
32831
32832       last;
32833     }
32834     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
32835             . $& . q{])},
32836               Parse::RecDescent::_tracefirst($text))
32837           if defined $::RD_TRACE;
32838     push @item, $item{__PATTERN1__}=$&;
32839
32840
32841     Parse::RecDescent::_trace(q{Trying repeated subrule: [old_new_corr]},
32842           Parse::RecDescent::_tracefirst($text),
32843           q{reference_b},
32844           $tracelevel)
32845           if defined $::RD_TRACE;
32846     $expectation->is(q{old_new_corr})->at($text);
32847
32848     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::old_new_corr, 0, 2, $_noactions,$expectation,undef)))
32849     {
32850       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [old_new_corr]>>},
32851               Parse::RecDescent::_tracefirst($text),
32852               q{reference_b},
32853               $tracelevel)
32854               if defined $::RD_TRACE;
32855       last;
32856     }
32857     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [old_new_corr]<< (}
32858           . @$_tok . q{ times)},
32859
32860             Parse::RecDescent::_tracefirst($text),
32861             q{reference_b},
32862             $tracelevel)
32863             if defined $::RD_TRACE;
32864     $item{q{old_new_corr(0..2)}} = $_tok;
32865     push @item, $_tok;
32866
32867
32868
32869     Parse::RecDescent::_trace(q{Trying action},
32870             Parse::RecDescent::_tracefirst($text),
32871             q{reference_b},
32872             $tracelevel)
32873             if defined $::RD_TRACE;
32874
32875
32876     $_tok = ($_noactions) ? 0 : do { $return = join(' ', $item[1], join(' ', @{$item[2]}) ) };
32877     unless (defined $_tok)
32878     {
32879       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
32880           if defined $::RD_TRACE;
32881       last;
32882     }
32883     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
32884             . $_tok . q{])},
32885             Parse::RecDescent::_tracefirst($text))
32886             if defined $::RD_TRACE;
32887     push @item, $_tok;
32888     $item{__ACTION1__}=$_tok;
32889
32890
32891
32892     Parse::RecDescent::_trace(q{>>Matched production: [/REFERENCING/i old_new_corr]<<},
32893             Parse::RecDescent::_tracefirst($text),
32894             q{reference_b},
32895             $tracelevel)
32896             if defined $::RD_TRACE;
32897     $_matched = 1;
32898     last;
32899   }
32900
32901
32902         unless ( $_matched || defined($return) || defined($score) )
32903   {
32904
32905
32906     $_[1] = $text;  # NOT SURE THIS IS NEEDED
32907     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
32908            Parse::RecDescent::_tracefirst($_[1]),
32909            q{reference_b},
32910            $tracelevel)
32911           if defined $::RD_TRACE;
32912     return undef;
32913   }
32914   if (!defined($return) && defined($score))
32915   {
32916     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
32917             q{reference_b},
32918             $tracelevel)
32919             if defined $::RD_TRACE;
32920     $return = $score_return;
32921   }
32922   splice @{$thisparser->{errors}}, $err_at;
32923   $return = $item[$#item] unless defined $return;
32924   if (defined $::RD_TRACE)
32925   {
32926     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
32927             $return . q{])}, "",
32928             q{reference_b},
32929             $tracelevel);
32930     Parse::RecDescent::_trace(q{(consumed: [} .
32931             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
32932             Parse::RecDescent::_tracefirst($text),
32933             , q{reference_b},
32934             $tracelevel)
32935   }
32936   $_[1] = $text;
32937   return $return;
32938 }
32939
32940 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
32941 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_simple_when_clause
32942 {
32943   my $thisparser = $_[0];
32944   use vars q{$tracelevel};
32945   local $tracelevel = ($tracelevel||0)+1;
32946   $ERRORS = 0;
32947   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_1_of_rule_simple_when_clause"};
32948
32949   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_1_of_rule_simple_when_clause]},
32950           Parse::RecDescent::_tracefirst($_[1]),
32951           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
32952           $tracelevel)
32953           if defined $::RD_TRACE;
32954
32955
32956   my $err_at = @{$thisparser->{errors}};
32957
32958   my $score;
32959   my $score_return;
32960   my $_tok;
32961   my $return = undef;
32962   my $_matched=0;
32963   my $commit=0;
32964   my @item = ();
32965   my %item = ();
32966   my $repeating =  defined($_[2]) && $_[2];
32967   my $_noactions = defined($_[3]) && $_[3];
32968    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
32969   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
32970   my $text;
32971   my $lastsep="";
32972   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
32973   $expectation->at($_[1]);
32974
32975   my $thisline;
32976   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
32977
32978
32979
32980   while (!$_matched && !$commit)
32981   {
32982
32983     Parse::RecDescent::_trace(q{Trying production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]},
32984             Parse::RecDescent::_tracefirst($_[1]),
32985             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
32986             $tracelevel)
32987             if defined $::RD_TRACE;
32988     my $thisprod = $thisrule->{"prods"}[0];
32989     $text = $_[1];
32990     my $_savetext;
32991     @item = (q{_alternation_1_of_production_1_of_rule_simple_when_clause});
32992     %item = (__RULE__ => q{_alternation_1_of_production_1_of_rule_simple_when_clause});
32993     my $repcount = 0;
32994
32995
32996     Parse::RecDescent::_trace(q{Trying terminal: [/WHEN/i]}, Parse::RecDescent::_tracefirst($text),
32997             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
32998             $tracelevel)
32999             if defined $::RD_TRACE;
33000     $lastsep = "";
33001     $expectation->is(q{})->at($text);
33002
33003
33004     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:WHEN)//i)
33005     {
33006
33007       $expectation->failed();
33008       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33009               Parse::RecDescent::_tracefirst($text))
33010           if defined $::RD_TRACE;
33011
33012       last;
33013     }
33014     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33015             . $& . q{])},
33016               Parse::RecDescent::_tracefirst($text))
33017           if defined $::RD_TRACE;
33018     push @item, $item{__PATTERN1__}=$&;
33019
33020
33021     Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
33022           Parse::RecDescent::_tracefirst($text),
33023           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33024           $tracelevel)
33025           if defined $::RD_TRACE;
33026     if (1) { no strict qw{refs};
33027     $expectation->is(q{search_condition})->at($text);
33028     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33029     {
33030
33031       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
33032               Parse::RecDescent::_tracefirst($text),
33033               q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33034               $tracelevel)
33035               if defined $::RD_TRACE;
33036       $expectation->failed();
33037       last;
33038     }
33039     Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
33040           . $_tok . q{]},
33041
33042             Parse::RecDescent::_tracefirst($text),
33043             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33044             $tracelevel)
33045             if defined $::RD_TRACE;
33046     $item{q{search_condition}} = $_tok;
33047     push @item, $_tok;
33048
33049     }
33050
33051     Parse::RecDescent::_trace(q{Trying terminal: [/THEN/i]}, Parse::RecDescent::_tracefirst($text),
33052             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33053             $tracelevel)
33054             if defined $::RD_TRACE;
33055     $lastsep = "";
33056     $expectation->is(q{/THEN/i})->at($text);
33057
33058
33059     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:THEN)//i)
33060     {
33061
33062       $expectation->failed();
33063       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33064               Parse::RecDescent::_tracefirst($text))
33065           if defined $::RD_TRACE;
33066
33067       last;
33068     }
33069     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33070             . $& . q{])},
33071               Parse::RecDescent::_tracefirst($text))
33072           if defined $::RD_TRACE;
33073     push @item, $item{__PATTERN2__}=$&;
33074
33075
33076     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]},
33077           Parse::RecDescent::_tracefirst($text),
33078           q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33079           $tracelevel)
33080           if defined $::RD_TRACE;
33081     if (1) { no strict qw{refs};
33082     $expectation->is(q{result_expression, or /NULL/i})->at($text);
33083     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33084     {
33085
33086       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]>>},
33087               Parse::RecDescent::_tracefirst($text),
33088               q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33089               $tracelevel)
33090               if defined $::RD_TRACE;
33091       $expectation->failed();
33092       last;
33093     }
33094     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause]<< (return value: [}
33095           . $_tok . q{]},
33096
33097             Parse::RecDescent::_tracefirst($text),
33098             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33099             $tracelevel)
33100             if defined $::RD_TRACE;
33101     $item{q{_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause}} = $_tok;
33102     push @item, $_tok;
33103
33104     }
33105
33106
33107     Parse::RecDescent::_trace(q{>>Matched production: [/WHEN/i search_condition /THEN/i result_expression, or /NULL/i]<<},
33108             Parse::RecDescent::_tracefirst($text),
33109             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33110             $tracelevel)
33111             if defined $::RD_TRACE;
33112     $_matched = 1;
33113     last;
33114   }
33115
33116
33117         unless ( $_matched || defined($return) || defined($score) )
33118   {
33119
33120
33121     $_[1] = $text;  # NOT SURE THIS IS NEEDED
33122     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33123            Parse::RecDescent::_tracefirst($_[1]),
33124            q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33125            $tracelevel)
33126           if defined $::RD_TRACE;
33127     return undef;
33128   }
33129   if (!defined($return) && defined($score))
33130   {
33131     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33132             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33133             $tracelevel)
33134             if defined $::RD_TRACE;
33135     $return = $score_return;
33136   }
33137   splice @{$thisparser->{errors}}, $err_at;
33138   $return = $item[$#item] unless defined $return;
33139   if (defined $::RD_TRACE)
33140   {
33141     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33142             $return . q{])}, "",
33143             q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33144             $tracelevel);
33145     Parse::RecDescent::_trace(q{(consumed: [} .
33146             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33147             Parse::RecDescent::_tracefirst($text),
33148             , q{_alternation_1_of_production_1_of_rule_simple_when_clause},
33149             $tracelevel)
33150   }
33151   $_[1] = $text;
33152   return $return;
33153 }
33154
33155 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33156 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_9_of_rule_sysibm_function
33157 {
33158   my $thisparser = $_[0];
33159   use vars q{$tracelevel};
33160   local $tracelevel = ($tracelevel||0)+1;
33161   $ERRORS = 0;
33162   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_9_of_rule_sysibm_function"};
33163
33164   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_9_of_rule_sysibm_function]},
33165           Parse::RecDescent::_tracefirst($_[1]),
33166           q{_alternation_1_of_production_9_of_rule_sysibm_function},
33167           $tracelevel)
33168           if defined $::RD_TRACE;
33169
33170
33171   my $err_at = @{$thisparser->{errors}};
33172
33173   my $score;
33174   my $score_return;
33175   my $_tok;
33176   my $return = undef;
33177   my $_matched=0;
33178   my $commit=0;
33179   my @item = ();
33180   my %item = ();
33181   my $repeating =  defined($_[2]) && $_[2];
33182   my $_noactions = defined($_[3]) && $_[3];
33183    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33184   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33185   my $text;
33186   my $lastsep="";
33187   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33188   $expectation->at($_[1]);
33189
33190   my $thisline;
33191   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33192
33193
33194
33195   while (!$_matched && !$commit)
33196   {
33197
33198     Parse::RecDescent::_trace(q{Trying production: [/CORRELATION/i]},
33199             Parse::RecDescent::_tracefirst($_[1]),
33200             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33201             $tracelevel)
33202             if defined $::RD_TRACE;
33203     my $thisprod = $thisrule->{"prods"}[0];
33204     $text = $_[1];
33205     my $_savetext;
33206     @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
33207     %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
33208     my $repcount = 0;
33209
33210
33211     Parse::RecDescent::_trace(q{Trying terminal: [/CORRELATION/i]}, Parse::RecDescent::_tracefirst($text),
33212             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33213             $tracelevel)
33214             if defined $::RD_TRACE;
33215     $lastsep = "";
33216     $expectation->is(q{})->at($text);
33217
33218
33219     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CORRELATION)//i)
33220     {
33221
33222       $expectation->failed();
33223       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33224               Parse::RecDescent::_tracefirst($text))
33225           if defined $::RD_TRACE;
33226
33227       last;
33228     }
33229     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33230             . $& . q{])},
33231               Parse::RecDescent::_tracefirst($text))
33232           if defined $::RD_TRACE;
33233     push @item, $item{__PATTERN1__}=$&;
33234
33235
33236
33237     Parse::RecDescent::_trace(q{>>Matched production: [/CORRELATION/i]<<},
33238             Parse::RecDescent::_tracefirst($text),
33239             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33240             $tracelevel)
33241             if defined $::RD_TRACE;
33242     $_matched = 1;
33243     last;
33244   }
33245
33246
33247   while (!$_matched && !$commit)
33248   {
33249
33250     Parse::RecDescent::_trace(q{Trying production: [/CORR/]},
33251             Parse::RecDescent::_tracefirst($_[1]),
33252             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33253             $tracelevel)
33254             if defined $::RD_TRACE;
33255     my $thisprod = $thisrule->{"prods"}[1];
33256     $text = $_[1];
33257     my $_savetext;
33258     @item = (q{_alternation_1_of_production_9_of_rule_sysibm_function});
33259     %item = (__RULE__ => q{_alternation_1_of_production_9_of_rule_sysibm_function});
33260     my $repcount = 0;
33261
33262
33263     Parse::RecDescent::_trace(q{Trying terminal: [/CORR/]}, Parse::RecDescent::_tracefirst($text),
33264             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33265             $tracelevel)
33266             if defined $::RD_TRACE;
33267     $lastsep = "";
33268     $expectation->is(q{})->at($text);
33269
33270
33271     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CORR)//)
33272     {
33273
33274       $expectation->failed();
33275       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33276               Parse::RecDescent::_tracefirst($text))
33277           if defined $::RD_TRACE;
33278
33279       last;
33280     }
33281     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33282             . $& . q{])},
33283               Parse::RecDescent::_tracefirst($text))
33284           if defined $::RD_TRACE;
33285     push @item, $item{__PATTERN1__}=$&;
33286
33287
33288
33289     Parse::RecDescent::_trace(q{>>Matched production: [/CORR/]<<},
33290             Parse::RecDescent::_tracefirst($text),
33291             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33292             $tracelevel)
33293             if defined $::RD_TRACE;
33294     $_matched = 1;
33295     last;
33296   }
33297
33298
33299         unless ( $_matched || defined($return) || defined($score) )
33300   {
33301
33302
33303     $_[1] = $text;  # NOT SURE THIS IS NEEDED
33304     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33305            Parse::RecDescent::_tracefirst($_[1]),
33306            q{_alternation_1_of_production_9_of_rule_sysibm_function},
33307            $tracelevel)
33308           if defined $::RD_TRACE;
33309     return undef;
33310   }
33311   if (!defined($return) && defined($score))
33312   {
33313     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33314             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33315             $tracelevel)
33316             if defined $::RD_TRACE;
33317     $return = $score_return;
33318   }
33319   splice @{$thisparser->{errors}}, $err_at;
33320   $return = $item[$#item] unless defined $return;
33321   if (defined $::RD_TRACE)
33322   {
33323     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33324             $return . q{])}, "",
33325             q{_alternation_1_of_production_9_of_rule_sysibm_function},
33326             $tracelevel);
33327     Parse::RecDescent::_trace(q{(consumed: [} .
33328             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33329             Parse::RecDescent::_tracefirst($text),
33330             , q{_alternation_1_of_production_9_of_rule_sysibm_function},
33331             $tracelevel)
33332   }
33333   $_[1] = $text;
33334   return $return;
33335 }
33336
33337 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33338 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_7_of_rule_sysfun
33339 {
33340   my $thisparser = $_[0];
33341   use vars q{$tracelevel};
33342   local $tracelevel = ($tracelevel||0)+1;
33343   $ERRORS = 0;
33344   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_7_of_rule_sysfun"};
33345
33346   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_7_of_rule_sysfun]},
33347           Parse::RecDescent::_tracefirst($_[1]),
33348           q{_alternation_1_of_production_7_of_rule_sysfun},
33349           $tracelevel)
33350           if defined $::RD_TRACE;
33351
33352
33353   my $err_at = @{$thisparser->{errors}};
33354
33355   my $score;
33356   my $score_return;
33357   my $_tok;
33358   my $return = undef;
33359   my $_matched=0;
33360   my $commit=0;
33361   my @item = ();
33362   my %item = ();
33363   my $repeating =  defined($_[2]) && $_[2];
33364   my $_noactions = defined($_[3]) && $_[3];
33365    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33366   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33367   my $text;
33368   my $lastsep="";
33369   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33370   $expectation->at($_[1]);
33371
33372   my $thisline;
33373   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33374
33375
33376
33377   while (!$_matched && !$commit)
33378   {
33379
33380     Parse::RecDescent::_trace(q{Trying production: [/CEIL/i]},
33381             Parse::RecDescent::_tracefirst($_[1]),
33382             q{_alternation_1_of_production_7_of_rule_sysfun},
33383             $tracelevel)
33384             if defined $::RD_TRACE;
33385     my $thisprod = $thisrule->{"prods"}[0];
33386     $text = $_[1];
33387     my $_savetext;
33388     @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
33389     %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
33390     my $repcount = 0;
33391
33392
33393     Parse::RecDescent::_trace(q{Trying terminal: [/CEIL/i]}, Parse::RecDescent::_tracefirst($text),
33394             q{_alternation_1_of_production_7_of_rule_sysfun},
33395             $tracelevel)
33396             if defined $::RD_TRACE;
33397     $lastsep = "";
33398     $expectation->is(q{})->at($text);
33399
33400
33401     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CEIL)//i)
33402     {
33403
33404       $expectation->failed();
33405       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33406               Parse::RecDescent::_tracefirst($text))
33407           if defined $::RD_TRACE;
33408
33409       last;
33410     }
33411     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33412             . $& . q{])},
33413               Parse::RecDescent::_tracefirst($text))
33414           if defined $::RD_TRACE;
33415     push @item, $item{__PATTERN1__}=$&;
33416
33417
33418
33419     Parse::RecDescent::_trace(q{>>Matched production: [/CEIL/i]<<},
33420             Parse::RecDescent::_tracefirst($text),
33421             q{_alternation_1_of_production_7_of_rule_sysfun},
33422             $tracelevel)
33423             if defined $::RD_TRACE;
33424     $_matched = 1;
33425     last;
33426   }
33427
33428
33429   while (!$_matched && !$commit)
33430   {
33431
33432     Parse::RecDescent::_trace(q{Trying production: [/CEILING/i]},
33433             Parse::RecDescent::_tracefirst($_[1]),
33434             q{_alternation_1_of_production_7_of_rule_sysfun},
33435             $tracelevel)
33436             if defined $::RD_TRACE;
33437     my $thisprod = $thisrule->{"prods"}[1];
33438     $text = $_[1];
33439     my $_savetext;
33440     @item = (q{_alternation_1_of_production_7_of_rule_sysfun});
33441     %item = (__RULE__ => q{_alternation_1_of_production_7_of_rule_sysfun});
33442     my $repcount = 0;
33443
33444
33445     Parse::RecDescent::_trace(q{Trying terminal: [/CEILING/i]}, Parse::RecDescent::_tracefirst($text),
33446             q{_alternation_1_of_production_7_of_rule_sysfun},
33447             $tracelevel)
33448             if defined $::RD_TRACE;
33449     $lastsep = "";
33450     $expectation->is(q{})->at($text);
33451
33452
33453     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CEILING)//i)
33454     {
33455
33456       $expectation->failed();
33457       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33458               Parse::RecDescent::_tracefirst($text))
33459           if defined $::RD_TRACE;
33460
33461       last;
33462     }
33463     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33464             . $& . q{])},
33465               Parse::RecDescent::_tracefirst($text))
33466           if defined $::RD_TRACE;
33467     push @item, $item{__PATTERN1__}=$&;
33468
33469
33470
33471     Parse::RecDescent::_trace(q{>>Matched production: [/CEILING/i]<<},
33472             Parse::RecDescent::_tracefirst($text),
33473             q{_alternation_1_of_production_7_of_rule_sysfun},
33474             $tracelevel)
33475             if defined $::RD_TRACE;
33476     $_matched = 1;
33477     last;
33478   }
33479
33480
33481         unless ( $_matched || defined($return) || defined($score) )
33482   {
33483
33484
33485     $_[1] = $text;  # NOT SURE THIS IS NEEDED
33486     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33487            Parse::RecDescent::_tracefirst($_[1]),
33488            q{_alternation_1_of_production_7_of_rule_sysfun},
33489            $tracelevel)
33490           if defined $::RD_TRACE;
33491     return undef;
33492   }
33493   if (!defined($return) && defined($score))
33494   {
33495     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33496             q{_alternation_1_of_production_7_of_rule_sysfun},
33497             $tracelevel)
33498             if defined $::RD_TRACE;
33499     $return = $score_return;
33500   }
33501   splice @{$thisparser->{errors}}, $err_at;
33502   $return = $item[$#item] unless defined $return;
33503   if (defined $::RD_TRACE)
33504   {
33505     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33506             $return . q{])}, "",
33507             q{_alternation_1_of_production_7_of_rule_sysfun},
33508             $tracelevel);
33509     Parse::RecDescent::_trace(q{(consumed: [} .
33510             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33511             Parse::RecDescent::_tracefirst($text),
33512             , q{_alternation_1_of_production_7_of_rule_sysfun},
33513             $tracelevel)
33514   }
33515   $_[1] = $text;
33516   return $return;
33517 }
33518
33519 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33520 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::prevval_expression
33521 {
33522   my $thisparser = $_[0];
33523   use vars q{$tracelevel};
33524   local $tracelevel = ($tracelevel||0)+1;
33525   $ERRORS = 0;
33526   my $thisrule = $thisparser->{"rules"}{"prevval_expression"};
33527
33528   Parse::RecDescent::_trace(q{Trying rule: [prevval_expression]},
33529           Parse::RecDescent::_tracefirst($_[1]),
33530           q{prevval_expression},
33531           $tracelevel)
33532           if defined $::RD_TRACE;
33533
33534
33535   my $err_at = @{$thisparser->{errors}};
33536
33537   my $score;
33538   my $score_return;
33539   my $_tok;
33540   my $return = undef;
33541   my $_matched=0;
33542   my $commit=0;
33543   my @item = ();
33544   my %item = ();
33545   my $repeating =  defined($_[2]) && $_[2];
33546   my $_noactions = defined($_[3]) && $_[3];
33547    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33548   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33549   my $text;
33550   my $lastsep="";
33551   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33552   $expectation->at($_[1]);
33553
33554   my $thisline;
33555   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33556
33557
33558
33559   while (!$_matched && !$commit)
33560   {
33561
33562     Parse::RecDescent::_trace(q{Trying production: [/PREVVAL\\s+FOR/i sequence_name]},
33563             Parse::RecDescent::_tracefirst($_[1]),
33564             q{prevval_expression},
33565             $tracelevel)
33566             if defined $::RD_TRACE;
33567     my $thisprod = $thisrule->{"prods"}[0];
33568     $text = $_[1];
33569     my $_savetext;
33570     @item = (q{prevval_expression});
33571     %item = (__RULE__ => q{prevval_expression});
33572     my $repcount = 0;
33573
33574
33575     Parse::RecDescent::_trace(q{Trying terminal: [/PREVVAL\\s+FOR/i]}, Parse::RecDescent::_tracefirst($text),
33576             q{prevval_expression},
33577             $tracelevel)
33578             if defined $::RD_TRACE;
33579     $lastsep = "";
33580     $expectation->is(q{})->at($text);
33581
33582
33583     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PREVVAL\s+FOR)//i)
33584     {
33585
33586       $expectation->failed();
33587       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33588               Parse::RecDescent::_tracefirst($text))
33589           if defined $::RD_TRACE;
33590
33591       last;
33592     }
33593     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33594             . $& . q{])},
33595               Parse::RecDescent::_tracefirst($text))
33596           if defined $::RD_TRACE;
33597     push @item, $item{__PATTERN1__}=$&;
33598
33599
33600     Parse::RecDescent::_trace(q{Trying subrule: [sequence_name]},
33601           Parse::RecDescent::_tracefirst($text),
33602           q{prevval_expression},
33603           $tracelevel)
33604           if defined $::RD_TRACE;
33605     if (1) { no strict qw{refs};
33606     $expectation->is(q{sequence_name})->at($text);
33607     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33608     {
33609
33610       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_name]>>},
33611               Parse::RecDescent::_tracefirst($text),
33612               q{prevval_expression},
33613               $tracelevel)
33614               if defined $::RD_TRACE;
33615       $expectation->failed();
33616       last;
33617     }
33618     Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_name]<< (return value: [}
33619           . $_tok . q{]},
33620
33621             Parse::RecDescent::_tracefirst($text),
33622             q{prevval_expression},
33623             $tracelevel)
33624             if defined $::RD_TRACE;
33625     $item{q{sequence_name}} = $_tok;
33626     push @item, $_tok;
33627
33628     }
33629
33630
33631     Parse::RecDescent::_trace(q{>>Matched production: [/PREVVAL\\s+FOR/i sequence_name]<<},
33632             Parse::RecDescent::_tracefirst($text),
33633             q{prevval_expression},
33634             $tracelevel)
33635             if defined $::RD_TRACE;
33636     $_matched = 1;
33637     last;
33638   }
33639
33640
33641         unless ( $_matched || defined($return) || defined($score) )
33642   {
33643
33644
33645     $_[1] = $text;  # NOT SURE THIS IS NEEDED
33646     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33647            Parse::RecDescent::_tracefirst($_[1]),
33648            q{prevval_expression},
33649            $tracelevel)
33650           if defined $::RD_TRACE;
33651     return undef;
33652   }
33653   if (!defined($return) && defined($score))
33654   {
33655     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33656             q{prevval_expression},
33657             $tracelevel)
33658             if defined $::RD_TRACE;
33659     $return = $score_return;
33660   }
33661   splice @{$thisparser->{errors}}, $err_at;
33662   $return = $item[$#item] unless defined $return;
33663   if (defined $::RD_TRACE)
33664   {
33665     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33666             $return . q{])}, "",
33667             q{prevval_expression},
33668             $tracelevel);
33669     Parse::RecDescent::_trace(q{(consumed: [} .
33670             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33671             Parse::RecDescent::_tracefirst($text),
33672             , q{prevval_expression},
33673             $tracelevel)
33674   }
33675   $_[1] = $text;
33676   return $return;
33677 }
33678
33679 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33680 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::where_clause
33681 {
33682   my $thisparser = $_[0];
33683   use vars q{$tracelevel};
33684   local $tracelevel = ($tracelevel||0)+1;
33685   $ERRORS = 0;
33686   my $thisrule = $thisparser->{"rules"}{"where_clause"};
33687
33688   Parse::RecDescent::_trace(q{Trying rule: [where_clause]},
33689           Parse::RecDescent::_tracefirst($_[1]),
33690           q{where_clause},
33691           $tracelevel)
33692           if defined $::RD_TRACE;
33693
33694
33695   my $err_at = @{$thisparser->{errors}};
33696
33697   my $score;
33698   my $score_return;
33699   my $_tok;
33700   my $return = undef;
33701   my $_matched=0;
33702   my $commit=0;
33703   my @item = ();
33704   my %item = ();
33705   my $repeating =  defined($_[2]) && $_[2];
33706   my $_noactions = defined($_[3]) && $_[3];
33707    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33708   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33709   my $text;
33710   my $lastsep="";
33711   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33712   $expectation->at($_[1]);
33713
33714   my $thisline;
33715   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33716
33717
33718
33719   while (!$_matched && !$commit)
33720   {
33721
33722     Parse::RecDescent::_trace(q{Trying production: [WHERE search_condition]},
33723             Parse::RecDescent::_tracefirst($_[1]),
33724             q{where_clause},
33725             $tracelevel)
33726             if defined $::RD_TRACE;
33727     my $thisprod = $thisrule->{"prods"}[0];
33728     $text = $_[1];
33729     my $_savetext;
33730     @item = (q{where_clause});
33731     %item = (__RULE__ => q{where_clause});
33732     my $repcount = 0;
33733
33734
33735     Parse::RecDescent::_trace(q{Trying subrule: [WHERE]},
33736           Parse::RecDescent::_tracefirst($text),
33737           q{where_clause},
33738           $tracelevel)
33739           if defined $::RD_TRACE;
33740     if (1) { no strict qw{refs};
33741     $expectation->is(q{})->at($text);
33742     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::WHERE($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33743     {
33744
33745       Parse::RecDescent::_trace(q{<<Didn't match subrule: [WHERE]>>},
33746               Parse::RecDescent::_tracefirst($text),
33747               q{where_clause},
33748               $tracelevel)
33749               if defined $::RD_TRACE;
33750       $expectation->failed();
33751       last;
33752     }
33753     Parse::RecDescent::_trace(q{>>Matched subrule: [WHERE]<< (return value: [}
33754           . $_tok . q{]},
33755
33756             Parse::RecDescent::_tracefirst($text),
33757             q{where_clause},
33758             $tracelevel)
33759             if defined $::RD_TRACE;
33760     $item{q{WHERE}} = $_tok;
33761     push @item, $_tok;
33762
33763     }
33764
33765     Parse::RecDescent::_trace(q{Trying subrule: [search_condition]},
33766           Parse::RecDescent::_tracefirst($text),
33767           q{where_clause},
33768           $tracelevel)
33769           if defined $::RD_TRACE;
33770     if (1) { no strict qw{refs};
33771     $expectation->is(q{search_condition})->at($text);
33772     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::search_condition($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33773     {
33774
33775       Parse::RecDescent::_trace(q{<<Didn't match subrule: [search_condition]>>},
33776               Parse::RecDescent::_tracefirst($text),
33777               q{where_clause},
33778               $tracelevel)
33779               if defined $::RD_TRACE;
33780       $expectation->failed();
33781       last;
33782     }
33783     Parse::RecDescent::_trace(q{>>Matched subrule: [search_condition]<< (return value: [}
33784           . $_tok . q{]},
33785
33786             Parse::RecDescent::_tracefirst($text),
33787             q{where_clause},
33788             $tracelevel)
33789             if defined $::RD_TRACE;
33790     $item{q{search_condition}} = $_tok;
33791     push @item, $_tok;
33792
33793     }
33794
33795
33796     Parse::RecDescent::_trace(q{>>Matched production: [WHERE search_condition]<<},
33797             Parse::RecDescent::_tracefirst($text),
33798             q{where_clause},
33799             $tracelevel)
33800             if defined $::RD_TRACE;
33801     $_matched = 1;
33802     last;
33803   }
33804
33805
33806         unless ( $_matched || defined($return) || defined($score) )
33807   {
33808
33809
33810     $_[1] = $text;  # NOT SURE THIS IS NEEDED
33811     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
33812            Parse::RecDescent::_tracefirst($_[1]),
33813            q{where_clause},
33814            $tracelevel)
33815           if defined $::RD_TRACE;
33816     return undef;
33817   }
33818   if (!defined($return) && defined($score))
33819   {
33820     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
33821             q{where_clause},
33822             $tracelevel)
33823             if defined $::RD_TRACE;
33824     $return = $score_return;
33825   }
33826   splice @{$thisparser->{errors}}, $err_at;
33827   $return = $item[$#item] unless defined $return;
33828   if (defined $::RD_TRACE)
33829   {
33830     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
33831             $return . q{])}, "",
33832             q{where_clause},
33833             $tracelevel);
33834     Parse::RecDescent::_trace(q{(consumed: [} .
33835             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
33836             Parse::RecDescent::_tracefirst($text),
33837             , q{where_clause},
33838             $tracelevel)
33839   }
33840   $_[1] = $text;
33841   return $return;
33842 }
33843
33844 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
33845 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_start
33846 {
33847   my $thisparser = $_[0];
33848   use vars q{$tracelevel};
33849   local $tracelevel = ($tracelevel||0)+1;
33850   $ERRORS = 0;
33851   my $thisrule = $thisparser->{"rules"}{"group_start"};
33852
33853   Parse::RecDescent::_trace(q{Trying rule: [group_start]},
33854           Parse::RecDescent::_tracefirst($_[1]),
33855           q{group_start},
33856           $tracelevel)
33857           if defined $::RD_TRACE;
33858
33859
33860   my $err_at = @{$thisparser->{errors}};
33861
33862   my $score;
33863   my $score_return;
33864   my $_tok;
33865   my $return = undef;
33866   my $_matched=0;
33867   my $commit=0;
33868   my @item = ();
33869   my %item = ();
33870   my $repeating =  defined($_[2]) && $_[2];
33871   my $_noactions = defined($_[3]) && $_[3];
33872    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
33873   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
33874   my $text;
33875   my $lastsep="";
33876   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
33877   $expectation->at($_[1]);
33878
33879   my $thisline;
33880   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
33881
33882
33883
33884   while (!$_matched && !$commit)
33885   {
33886
33887     Parse::RecDescent::_trace(q{Trying production: [/UNBOUNDED\\s+PRECEDING/i]},
33888             Parse::RecDescent::_tracefirst($_[1]),
33889             q{group_start},
33890             $tracelevel)
33891             if defined $::RD_TRACE;
33892     my $thisprod = $thisrule->{"prods"}[0];
33893     $text = $_[1];
33894     my $_savetext;
33895     @item = (q{group_start});
33896     %item = (__RULE__ => q{group_start});
33897     my $repcount = 0;
33898
33899
33900     Parse::RecDescent::_trace(q{Trying terminal: [/UNBOUNDED\\s+PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
33901             q{group_start},
33902             $tracelevel)
33903             if defined $::RD_TRACE;
33904     $lastsep = "";
33905     $expectation->is(q{})->at($text);
33906
33907
33908     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:UNBOUNDED\s+PRECEDING)//i)
33909     {
33910
33911       $expectation->failed();
33912       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33913               Parse::RecDescent::_tracefirst($text))
33914           if defined $::RD_TRACE;
33915
33916       last;
33917     }
33918     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
33919             . $& . q{])},
33920               Parse::RecDescent::_tracefirst($text))
33921           if defined $::RD_TRACE;
33922     push @item, $item{__PATTERN1__}=$&;
33923
33924
33925
33926     Parse::RecDescent::_trace(q{>>Matched production: [/UNBOUNDED\\s+PRECEDING/i]<<},
33927             Parse::RecDescent::_tracefirst($text),
33928             q{group_start},
33929             $tracelevel)
33930             if defined $::RD_TRACE;
33931     $_matched = 1;
33932     last;
33933   }
33934
33935
33936   while (!$_matched && !$commit)
33937   {
33938
33939     Parse::RecDescent::_trace(q{Trying production: [unsigned_constant /PRECEDING/i]},
33940             Parse::RecDescent::_tracefirst($_[1]),
33941             q{group_start},
33942             $tracelevel)
33943             if defined $::RD_TRACE;
33944     my $thisprod = $thisrule->{"prods"}[1];
33945     $text = $_[1];
33946     my $_savetext;
33947     @item = (q{group_start});
33948     %item = (__RULE__ => q{group_start});
33949     my $repcount = 0;
33950
33951
33952     Parse::RecDescent::_trace(q{Trying subrule: [unsigned_constant]},
33953           Parse::RecDescent::_tracefirst($text),
33954           q{group_start},
33955           $tracelevel)
33956           if defined $::RD_TRACE;
33957     if (1) { no strict qw{refs};
33958     $expectation->is(q{})->at($text);
33959     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::unsigned_constant($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
33960     {
33961
33962       Parse::RecDescent::_trace(q{<<Didn't match subrule: [unsigned_constant]>>},
33963               Parse::RecDescent::_tracefirst($text),
33964               q{group_start},
33965               $tracelevel)
33966               if defined $::RD_TRACE;
33967       $expectation->failed();
33968       last;
33969     }
33970     Parse::RecDescent::_trace(q{>>Matched subrule: [unsigned_constant]<< (return value: [}
33971           . $_tok . q{]},
33972
33973             Parse::RecDescent::_tracefirst($text),
33974             q{group_start},
33975             $tracelevel)
33976             if defined $::RD_TRACE;
33977     $item{q{unsigned_constant}} = $_tok;
33978     push @item, $_tok;
33979
33980     }
33981
33982     Parse::RecDescent::_trace(q{Trying terminal: [/PRECEDING/i]}, Parse::RecDescent::_tracefirst($text),
33983             q{group_start},
33984             $tracelevel)
33985             if defined $::RD_TRACE;
33986     $lastsep = "";
33987     $expectation->is(q{/PRECEDING/i})->at($text);
33988
33989
33990     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:PRECEDING)//i)
33991     {
33992
33993       $expectation->failed();
33994       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
33995               Parse::RecDescent::_tracefirst($text))
33996           if defined $::RD_TRACE;
33997
33998       last;
33999     }
34000     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34001             . $& . q{])},
34002               Parse::RecDescent::_tracefirst($text))
34003           if defined $::RD_TRACE;
34004     push @item, $item{__PATTERN1__}=$&;
34005
34006
34007
34008     Parse::RecDescent::_trace(q{>>Matched production: [unsigned_constant /PRECEDING/i]<<},
34009             Parse::RecDescent::_tracefirst($text),
34010             q{group_start},
34011             $tracelevel)
34012             if defined $::RD_TRACE;
34013     $_matched = 1;
34014     last;
34015   }
34016
34017
34018   while (!$_matched && !$commit)
34019   {
34020
34021     Parse::RecDescent::_trace(q{Trying production: [/CURRENT\\s+ROW/i]},
34022             Parse::RecDescent::_tracefirst($_[1]),
34023             q{group_start},
34024             $tracelevel)
34025             if defined $::RD_TRACE;
34026     my $thisprod = $thisrule->{"prods"}[2];
34027     $text = $_[1];
34028     my $_savetext;
34029     @item = (q{group_start});
34030     %item = (__RULE__ => q{group_start});
34031     my $repcount = 0;
34032
34033
34034     Parse::RecDescent::_trace(q{Trying terminal: [/CURRENT\\s+ROW/i]}, Parse::RecDescent::_tracefirst($text),
34035             q{group_start},
34036             $tracelevel)
34037             if defined $::RD_TRACE;
34038     $lastsep = "";
34039     $expectation->is(q{})->at($text);
34040
34041
34042     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:CURRENT\s+ROW)//i)
34043     {
34044
34045       $expectation->failed();
34046       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34047               Parse::RecDescent::_tracefirst($text))
34048           if defined $::RD_TRACE;
34049
34050       last;
34051     }
34052     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34053             . $& . q{])},
34054               Parse::RecDescent::_tracefirst($text))
34055           if defined $::RD_TRACE;
34056     push @item, $item{__PATTERN1__}=$&;
34057
34058
34059
34060     Parse::RecDescent::_trace(q{>>Matched production: [/CURRENT\\s+ROW/i]<<},
34061             Parse::RecDescent::_tracefirst($text),
34062             q{group_start},
34063             $tracelevel)
34064             if defined $::RD_TRACE;
34065     $_matched = 1;
34066     last;
34067   }
34068
34069
34070         unless ( $_matched || defined($return) || defined($score) )
34071   {
34072
34073
34074     $_[1] = $text;  # NOT SURE THIS IS NEEDED
34075     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34076            Parse::RecDescent::_tracefirst($_[1]),
34077            q{group_start},
34078            $tracelevel)
34079           if defined $::RD_TRACE;
34080     return undef;
34081   }
34082   if (!defined($return) && defined($score))
34083   {
34084     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34085             q{group_start},
34086             $tracelevel)
34087             if defined $::RD_TRACE;
34088     $return = $score_return;
34089   }
34090   splice @{$thisparser->{errors}}, $err_at;
34091   $return = $item[$#item] unless defined $return;
34092   if (defined $::RD_TRACE)
34093   {
34094     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34095             $return . q{])}, "",
34096             q{group_start},
34097             $tracelevel);
34098     Parse::RecDescent::_trace(q{(consumed: [} .
34099             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34100             Parse::RecDescent::_tracefirst($text),
34101             , q{group_start},
34102             $tracelevel)
34103   }
34104   $_[1] = $text;
34105   return $return;
34106 }
34107
34108 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34109 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::correlation_name
34110 {
34111   my $thisparser = $_[0];
34112   use vars q{$tracelevel};
34113   local $tracelevel = ($tracelevel||0)+1;
34114   $ERRORS = 0;
34115   my $thisrule = $thisparser->{"rules"}{"correlation_name"};
34116
34117   Parse::RecDescent::_trace(q{Trying rule: [correlation_name]},
34118           Parse::RecDescent::_tracefirst($_[1]),
34119           q{correlation_name},
34120           $tracelevel)
34121           if defined $::RD_TRACE;
34122
34123
34124   my $err_at = @{$thisparser->{errors}};
34125
34126   my $score;
34127   my $score_return;
34128   my $_tok;
34129   my $return = undef;
34130   my $_matched=0;
34131   my $commit=0;
34132   my @item = ();
34133   my %item = ();
34134   my $repeating =  defined($_[2]) && $_[2];
34135   my $_noactions = defined($_[3]) && $_[3];
34136    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34137   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34138   my $text;
34139   my $lastsep="";
34140   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34141   $expectation->at($_[1]);
34142
34143   my $thisline;
34144   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34145
34146
34147
34148   while (!$_matched && !$commit)
34149   {
34150
34151     Parse::RecDescent::_trace(q{Trying production: [NAME]},
34152             Parse::RecDescent::_tracefirst($_[1]),
34153             q{correlation_name},
34154             $tracelevel)
34155             if defined $::RD_TRACE;
34156     my $thisprod = $thisrule->{"prods"}[0];
34157     $text = $_[1];
34158     my $_savetext;
34159     @item = (q{correlation_name});
34160     %item = (__RULE__ => q{correlation_name});
34161     my $repcount = 0;
34162
34163
34164     Parse::RecDescent::_trace(q{Trying subrule: [NAME]},
34165           Parse::RecDescent::_tracefirst($text),
34166           q{correlation_name},
34167           $tracelevel)
34168           if defined $::RD_TRACE;
34169     if (1) { no strict qw{refs};
34170     $expectation->is(q{})->at($text);
34171     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::NAME($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
34172     {
34173
34174       Parse::RecDescent::_trace(q{<<Didn't match subrule: [NAME]>>},
34175               Parse::RecDescent::_tracefirst($text),
34176               q{correlation_name},
34177               $tracelevel)
34178               if defined $::RD_TRACE;
34179       $expectation->failed();
34180       last;
34181     }
34182     Parse::RecDescent::_trace(q{>>Matched subrule: [NAME]<< (return value: [}
34183           . $_tok . q{]},
34184
34185             Parse::RecDescent::_tracefirst($text),
34186             q{correlation_name},
34187             $tracelevel)
34188             if defined $::RD_TRACE;
34189     $item{q{NAME}} = $_tok;
34190     push @item, $_tok;
34191
34192     }
34193
34194
34195     Parse::RecDescent::_trace(q{>>Matched production: [NAME]<<},
34196             Parse::RecDescent::_tracefirst($text),
34197             q{correlation_name},
34198             $tracelevel)
34199             if defined $::RD_TRACE;
34200     $_matched = 1;
34201     last;
34202   }
34203
34204
34205         unless ( $_matched || defined($return) || defined($score) )
34206   {
34207
34208
34209     $_[1] = $text;  # NOT SURE THIS IS NEEDED
34210     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34211            Parse::RecDescent::_tracefirst($_[1]),
34212            q{correlation_name},
34213            $tracelevel)
34214           if defined $::RD_TRACE;
34215     return undef;
34216   }
34217   if (!defined($return) && defined($score))
34218   {
34219     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34220             q{correlation_name},
34221             $tracelevel)
34222             if defined $::RD_TRACE;
34223     $return = $score_return;
34224   }
34225   splice @{$thisparser->{errors}}, $err_at;
34226   $return = $item[$#item] unless defined $return;
34227   if (defined $::RD_TRACE)
34228   {
34229     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34230             $return . q{])}, "",
34231             q{correlation_name},
34232             $tracelevel);
34233     Parse::RecDescent::_trace(q{(consumed: [} .
34234             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34235             Parse::RecDescent::_tracefirst($text),
34236             , q{correlation_name},
34237             $tracelevel)
34238   }
34239   $_[1] = $text;
34240   return $return;
34241 }
34242
34243 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34244 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::SQL_procedure_statement
34245 {
34246   my $thisparser = $_[0];
34247   use vars q{$tracelevel};
34248   local $tracelevel = ($tracelevel||0)+1;
34249   $ERRORS = 0;
34250   my $thisrule = $thisparser->{"rules"}{"SQL_procedure_statement"};
34251
34252   Parse::RecDescent::_trace(q{Trying rule: [SQL_procedure_statement]},
34253           Parse::RecDescent::_tracefirst($_[1]),
34254           q{SQL_procedure_statement},
34255           $tracelevel)
34256           if defined $::RD_TRACE;
34257
34258
34259   my $err_at = @{$thisparser->{errors}};
34260
34261   my $score;
34262   my $score_return;
34263   my $_tok;
34264   my $return = undef;
34265   my $_matched=0;
34266   my $commit=0;
34267   my @item = ();
34268   my %item = ();
34269   my $repeating =  defined($_[2]) && $_[2];
34270   my $_noactions = defined($_[3]) && $_[3];
34271    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34272   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34273   my $text;
34274   my $lastsep="";
34275   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34276   $expectation->at($_[1]);
34277
34278   my $thisline;
34279   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34280
34281
34282
34283   while (!$_matched && !$commit)
34284   {
34285
34286     Parse::RecDescent::_trace(q{Trying production: [/[^;]*/ /(;|\\z)/]},
34287             Parse::RecDescent::_tracefirst($_[1]),
34288             q{SQL_procedure_statement},
34289             $tracelevel)
34290             if defined $::RD_TRACE;
34291     my $thisprod = $thisrule->{"prods"}[0];
34292     $text = $_[1];
34293     my $_savetext;
34294     @item = (q{SQL_procedure_statement});
34295     %item = (__RULE__ => q{SQL_procedure_statement});
34296     my $repcount = 0;
34297
34298
34299     Parse::RecDescent::_trace(q{Trying terminal: [/[^;]*/]}, Parse::RecDescent::_tracefirst($text),
34300             q{SQL_procedure_statement},
34301             $tracelevel)
34302             if defined $::RD_TRACE;
34303     $lastsep = "";
34304     $expectation->is(q{})->at($text);
34305
34306
34307     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:[^;]*)//)
34308     {
34309
34310       $expectation->failed();
34311       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34312               Parse::RecDescent::_tracefirst($text))
34313           if defined $::RD_TRACE;
34314
34315       last;
34316     }
34317     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34318             . $& . q{])},
34319               Parse::RecDescent::_tracefirst($text))
34320           if defined $::RD_TRACE;
34321     push @item, $item{__PATTERN1__}=$&;
34322
34323
34324     Parse::RecDescent::_trace(q{Trying terminal: [/(;|\\z)/]}, Parse::RecDescent::_tracefirst($text),
34325             q{SQL_procedure_statement},
34326             $tracelevel)
34327             if defined $::RD_TRACE;
34328     $lastsep = "";
34329     $expectation->is(q{/(;|\\z)/})->at($text);
34330
34331
34332     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:(;|\z))//)
34333     {
34334
34335       $expectation->failed();
34336       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34337               Parse::RecDescent::_tracefirst($text))
34338           if defined $::RD_TRACE;
34339
34340       last;
34341     }
34342     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34343             . $& . q{])},
34344               Parse::RecDescent::_tracefirst($text))
34345           if defined $::RD_TRACE;
34346     push @item, $item{__PATTERN2__}=$&;
34347
34348
34349     Parse::RecDescent::_trace(q{Trying action},
34350             Parse::RecDescent::_tracefirst($text),
34351             q{SQL_procedure_statement},
34352             $tracelevel)
34353             if defined $::RD_TRACE;
34354
34355
34356     $_tok = ($_noactions) ? 0 : do { $return = $item[1] . $item[2] };
34357     unless (defined $_tok)
34358     {
34359       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
34360           if defined $::RD_TRACE;
34361       last;
34362     }
34363     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
34364             . $_tok . q{])},
34365             Parse::RecDescent::_tracefirst($text))
34366             if defined $::RD_TRACE;
34367     push @item, $_tok;
34368     $item{__ACTION1__}=$_tok;
34369
34370
34371
34372     Parse::RecDescent::_trace(q{>>Matched production: [/[^;]*/ /(;|\\z)/]<<},
34373             Parse::RecDescent::_tracefirst($text),
34374             q{SQL_procedure_statement},
34375             $tracelevel)
34376             if defined $::RD_TRACE;
34377     $_matched = 1;
34378     last;
34379   }
34380
34381
34382         unless ( $_matched || defined($return) || defined($score) )
34383   {
34384
34385
34386     $_[1] = $text;  # NOT SURE THIS IS NEEDED
34387     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34388            Parse::RecDescent::_tracefirst($_[1]),
34389            q{SQL_procedure_statement},
34390            $tracelevel)
34391           if defined $::RD_TRACE;
34392     return undef;
34393   }
34394   if (!defined($return) && defined($score))
34395   {
34396     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34397             q{SQL_procedure_statement},
34398             $tracelevel)
34399             if defined $::RD_TRACE;
34400     $return = $score_return;
34401   }
34402   splice @{$thisparser->{errors}}, $err_at;
34403   $return = $item[$#item] unless defined $return;
34404   if (defined $::RD_TRACE)
34405   {
34406     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34407             $return . q{])}, "",
34408             q{SQL_procedure_statement},
34409             $tracelevel);
34410     Parse::RecDescent::_trace(q{(consumed: [} .
34411             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34412             Parse::RecDescent::_tracefirst($text),
34413             , q{SQL_procedure_statement},
34414             $tracelevel)
34415   }
34416   $_[1] = $text;
34417   return $return;
34418 }
34419
34420 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34421 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_between
34422 {
34423   my $thisparser = $_[0];
34424   use vars q{$tracelevel};
34425   local $tracelevel = ($tracelevel||0)+1;
34426   $ERRORS = 0;
34427   my $thisrule = $thisparser->{"rules"}{"group_between"};
34428
34429   Parse::RecDescent::_trace(q{Trying rule: [group_between]},
34430           Parse::RecDescent::_tracefirst($_[1]),
34431           q{group_between},
34432           $tracelevel)
34433           if defined $::RD_TRACE;
34434
34435
34436   my $err_at = @{$thisparser->{errors}};
34437
34438   my $score;
34439   my $score_return;
34440   my $_tok;
34441   my $return = undef;
34442   my $_matched=0;
34443   my $commit=0;
34444   my @item = ();
34445   my %item = ();
34446   my $repeating =  defined($_[2]) && $_[2];
34447   my $_noactions = defined($_[3]) && $_[3];
34448    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34449   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34450   my $text;
34451   my $lastsep="";
34452   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34453   $expectation->at($_[1]);
34454
34455   my $thisline;
34456   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34457
34458
34459
34460   while (!$_matched && !$commit)
34461   {
34462
34463     Parse::RecDescent::_trace(q{Trying production: [/BETWEEN/i group_bound1 /AND/i group_bound2]},
34464             Parse::RecDescent::_tracefirst($_[1]),
34465             q{group_between},
34466             $tracelevel)
34467             if defined $::RD_TRACE;
34468     my $thisprod = $thisrule->{"prods"}[0];
34469     $text = $_[1];
34470     my $_savetext;
34471     @item = (q{group_between});
34472     %item = (__RULE__ => q{group_between});
34473     my $repcount = 0;
34474
34475
34476     Parse::RecDescent::_trace(q{Trying terminal: [/BETWEEN/i]}, Parse::RecDescent::_tracefirst($text),
34477             q{group_between},
34478             $tracelevel)
34479             if defined $::RD_TRACE;
34480     $lastsep = "";
34481     $expectation->is(q{})->at($text);
34482
34483
34484     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:BETWEEN)//i)
34485     {
34486
34487       $expectation->failed();
34488       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34489               Parse::RecDescent::_tracefirst($text))
34490           if defined $::RD_TRACE;
34491
34492       last;
34493     }
34494     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34495             . $& . q{])},
34496               Parse::RecDescent::_tracefirst($text))
34497           if defined $::RD_TRACE;
34498     push @item, $item{__PATTERN1__}=$&;
34499
34500
34501     Parse::RecDescent::_trace(q{Trying subrule: [group_bound1]},
34502           Parse::RecDescent::_tracefirst($text),
34503           q{group_between},
34504           $tracelevel)
34505           if defined $::RD_TRACE;
34506     if (1) { no strict qw{refs};
34507     $expectation->is(q{group_bound1})->at($text);
34508     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
34509     {
34510
34511       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_bound1]>>},
34512               Parse::RecDescent::_tracefirst($text),
34513               q{group_between},
34514               $tracelevel)
34515               if defined $::RD_TRACE;
34516       $expectation->failed();
34517       last;
34518     }
34519     Parse::RecDescent::_trace(q{>>Matched subrule: [group_bound1]<< (return value: [}
34520           . $_tok . q{]},
34521
34522             Parse::RecDescent::_tracefirst($text),
34523             q{group_between},
34524             $tracelevel)
34525             if defined $::RD_TRACE;
34526     $item{q{group_bound1}} = $_tok;
34527     push @item, $_tok;
34528
34529     }
34530
34531     Parse::RecDescent::_trace(q{Trying terminal: [/AND/i]}, Parse::RecDescent::_tracefirst($text),
34532             q{group_between},
34533             $tracelevel)
34534             if defined $::RD_TRACE;
34535     $lastsep = "";
34536     $expectation->is(q{/AND/i})->at($text);
34537
34538
34539     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:AND)//i)
34540     {
34541
34542       $expectation->failed();
34543       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34544               Parse::RecDescent::_tracefirst($text))
34545           if defined $::RD_TRACE;
34546
34547       last;
34548     }
34549     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34550             . $& . q{])},
34551               Parse::RecDescent::_tracefirst($text))
34552           if defined $::RD_TRACE;
34553     push @item, $item{__PATTERN2__}=$&;
34554
34555
34556     Parse::RecDescent::_trace(q{Trying subrule: [group_bound2]},
34557           Parse::RecDescent::_tracefirst($text),
34558           q{group_between},
34559           $tracelevel)
34560           if defined $::RD_TRACE;
34561     if (1) { no strict qw{refs};
34562     $expectation->is(q{group_bound2})->at($text);
34563     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::group_bound2($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
34564     {
34565
34566       Parse::RecDescent::_trace(q{<<Didn't match subrule: [group_bound2]>>},
34567               Parse::RecDescent::_tracefirst($text),
34568               q{group_between},
34569               $tracelevel)
34570               if defined $::RD_TRACE;
34571       $expectation->failed();
34572       last;
34573     }
34574     Parse::RecDescent::_trace(q{>>Matched subrule: [group_bound2]<< (return value: [}
34575           . $_tok . q{]},
34576
34577             Parse::RecDescent::_tracefirst($text),
34578             q{group_between},
34579             $tracelevel)
34580             if defined $::RD_TRACE;
34581     $item{q{group_bound2}} = $_tok;
34582     push @item, $_tok;
34583
34584     }
34585
34586
34587     Parse::RecDescent::_trace(q{>>Matched production: [/BETWEEN/i group_bound1 /AND/i group_bound2]<<},
34588             Parse::RecDescent::_tracefirst($text),
34589             q{group_between},
34590             $tracelevel)
34591             if defined $::RD_TRACE;
34592     $_matched = 1;
34593     last;
34594   }
34595
34596
34597         unless ( $_matched || defined($return) || defined($score) )
34598   {
34599
34600
34601     $_[1] = $text;  # NOT SURE THIS IS NEEDED
34602     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34603            Parse::RecDescent::_tracefirst($_[1]),
34604            q{group_between},
34605            $tracelevel)
34606           if defined $::RD_TRACE;
34607     return undef;
34608   }
34609   if (!defined($return) && defined($score))
34610   {
34611     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34612             q{group_between},
34613             $tracelevel)
34614             if defined $::RD_TRACE;
34615     $return = $score_return;
34616   }
34617   splice @{$thisparser->{errors}}, $err_at;
34618   $return = $item[$#item] unless defined $return;
34619   if (defined $::RD_TRACE)
34620   {
34621     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34622             $return . q{])}, "",
34623             q{group_between},
34624             $tracelevel);
34625     Parse::RecDescent::_trace(q{(consumed: [} .
34626             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34627             Parse::RecDescent::_tracefirst($text),
34628             , q{group_between},
34629             $tracelevel)
34630   }
34631   $_[1] = $text;
34632   return $return;
34633 }
34634
34635 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34636 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::nextval_expression
34637 {
34638   my $thisparser = $_[0];
34639   use vars q{$tracelevel};
34640   local $tracelevel = ($tracelevel||0)+1;
34641   $ERRORS = 0;
34642   my $thisrule = $thisparser->{"rules"}{"nextval_expression"};
34643
34644   Parse::RecDescent::_trace(q{Trying rule: [nextval_expression]},
34645           Parse::RecDescent::_tracefirst($_[1]),
34646           q{nextval_expression},
34647           $tracelevel)
34648           if defined $::RD_TRACE;
34649
34650
34651   my $err_at = @{$thisparser->{errors}};
34652
34653   my $score;
34654   my $score_return;
34655   my $_tok;
34656   my $return = undef;
34657   my $_matched=0;
34658   my $commit=0;
34659   my @item = ();
34660   my %item = ();
34661   my $repeating =  defined($_[2]) && $_[2];
34662   my $_noactions = defined($_[3]) && $_[3];
34663    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34664   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34665   my $text;
34666   my $lastsep="";
34667   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34668   $expectation->at($_[1]);
34669
34670   my $thisline;
34671   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34672
34673
34674
34675   while (!$_matched && !$commit)
34676   {
34677
34678     Parse::RecDescent::_trace(q{Trying production: [/NEXTVAL\\s+FOR/i sequence_name]},
34679             Parse::RecDescent::_tracefirst($_[1]),
34680             q{nextval_expression},
34681             $tracelevel)
34682             if defined $::RD_TRACE;
34683     my $thisprod = $thisrule->{"prods"}[0];
34684     $text = $_[1];
34685     my $_savetext;
34686     @item = (q{nextval_expression});
34687     %item = (__RULE__ => q{nextval_expression});
34688     my $repcount = 0;
34689
34690
34691     Parse::RecDescent::_trace(q{Trying terminal: [/NEXTVAL\\s+FOR/i]}, Parse::RecDescent::_tracefirst($text),
34692             q{nextval_expression},
34693             $tracelevel)
34694             if defined $::RD_TRACE;
34695     $lastsep = "";
34696     $expectation->is(q{})->at($text);
34697
34698
34699     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:NEXTVAL\s+FOR)//i)
34700     {
34701
34702       $expectation->failed();
34703       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34704               Parse::RecDescent::_tracefirst($text))
34705           if defined $::RD_TRACE;
34706
34707       last;
34708     }
34709     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34710             . $& . q{])},
34711               Parse::RecDescent::_tracefirst($text))
34712           if defined $::RD_TRACE;
34713     push @item, $item{__PATTERN1__}=$&;
34714
34715
34716     Parse::RecDescent::_trace(q{Trying subrule: [sequence_name]},
34717           Parse::RecDescent::_tracefirst($text),
34718           q{nextval_expression},
34719           $tracelevel)
34720           if defined $::RD_TRACE;
34721     if (1) { no strict qw{refs};
34722     $expectation->is(q{sequence_name})->at($text);
34723     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::sequence_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
34724     {
34725
34726       Parse::RecDescent::_trace(q{<<Didn't match subrule: [sequence_name]>>},
34727               Parse::RecDescent::_tracefirst($text),
34728               q{nextval_expression},
34729               $tracelevel)
34730               if defined $::RD_TRACE;
34731       $expectation->failed();
34732       last;
34733     }
34734     Parse::RecDescent::_trace(q{>>Matched subrule: [sequence_name]<< (return value: [}
34735           . $_tok . q{]},
34736
34737             Parse::RecDescent::_tracefirst($text),
34738             q{nextval_expression},
34739             $tracelevel)
34740             if defined $::RD_TRACE;
34741     $item{q{sequence_name}} = $_tok;
34742     push @item, $_tok;
34743
34744     }
34745
34746
34747     Parse::RecDescent::_trace(q{>>Matched production: [/NEXTVAL\\s+FOR/i sequence_name]<<},
34748             Parse::RecDescent::_tracefirst($text),
34749             q{nextval_expression},
34750             $tracelevel)
34751             if defined $::RD_TRACE;
34752     $_matched = 1;
34753     last;
34754   }
34755
34756
34757         unless ( $_matched || defined($return) || defined($score) )
34758   {
34759
34760
34761     $_[1] = $text;  # NOT SURE THIS IS NEEDED
34762     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34763            Parse::RecDescent::_tracefirst($_[1]),
34764            q{nextval_expression},
34765            $tracelevel)
34766           if defined $::RD_TRACE;
34767     return undef;
34768   }
34769   if (!defined($return) && defined($score))
34770   {
34771     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34772             q{nextval_expression},
34773             $tracelevel)
34774             if defined $::RD_TRACE;
34775     $return = $score_return;
34776   }
34777   splice @{$thisparser->{errors}}, $err_at;
34778   $return = $item[$#item] unless defined $return;
34779   if (defined $::RD_TRACE)
34780   {
34781     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34782             $return . q{])}, "",
34783             q{nextval_expression},
34784             $tracelevel);
34785     Parse::RecDescent::_trace(q{(consumed: [} .
34786             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34787             Parse::RecDescent::_tracefirst($text),
34788             , q{nextval_expression},
34789             $tracelevel)
34790   }
34791   $_[1] = $text;
34792   return $return;
34793 }
34794
34795 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34796 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::desc_option
34797 {
34798   my $thisparser = $_[0];
34799   use vars q{$tracelevel};
34800   local $tracelevel = ($tracelevel||0)+1;
34801   $ERRORS = 0;
34802   my $thisrule = $thisparser->{"rules"}{"desc_option"};
34803
34804   Parse::RecDescent::_trace(q{Trying rule: [desc_option]},
34805           Parse::RecDescent::_tracefirst($_[1]),
34806           q{desc_option},
34807           $tracelevel)
34808           if defined $::RD_TRACE;
34809
34810
34811   my $err_at = @{$thisparser->{errors}};
34812
34813   my $score;
34814   my $score_return;
34815   my $_tok;
34816   my $return = undef;
34817   my $_matched=0;
34818   my $commit=0;
34819   my @item = ();
34820   my %item = ();
34821   my $repeating =  defined($_[2]) && $_[2];
34822   my $_noactions = defined($_[3]) && $_[3];
34823    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34824   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34825   my $text;
34826   my $lastsep="";
34827   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34828   $expectation->at($_[1]);
34829
34830   my $thisline;
34831   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34832
34833
34834
34835   while (!$_matched && !$commit)
34836   {
34837
34838     Parse::RecDescent::_trace(q{Trying production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
34839             Parse::RecDescent::_tracefirst($_[1]),
34840             q{desc_option},
34841             $tracelevel)
34842             if defined $::RD_TRACE;
34843     my $thisprod = $thisrule->{"prods"}[0];
34844     $text = $_[1];
34845     my $_savetext;
34846     @item = (q{desc_option});
34847     %item = (__RULE__ => q{desc_option});
34848     my $repcount = 0;
34849
34850
34851     Parse::RecDescent::_trace(q{Trying terminal: [/DESC/i]}, Parse::RecDescent::_tracefirst($text),
34852             q{desc_option},
34853             $tracelevel)
34854             if defined $::RD_TRACE;
34855     $lastsep = "";
34856     $expectation->is(q{})->at($text);
34857
34858
34859     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:DESC)//i)
34860     {
34861
34862       $expectation->failed();
34863       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
34864               Parse::RecDescent::_tracefirst($text))
34865           if defined $::RD_TRACE;
34866
34867       last;
34868     }
34869     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
34870             . $& . q{])},
34871               Parse::RecDescent::_tracefirst($text))
34872           if defined $::RD_TRACE;
34873     push @item, $item{__PATTERN1__}=$&;
34874
34875
34876     Parse::RecDescent::_trace(q{Trying repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]},
34877           Parse::RecDescent::_tracefirst($text),
34878           q{desc_option},
34879           $tracelevel)
34880           if defined $::RD_TRACE;
34881     $expectation->is(q{/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i})->at($text);
34882
34883     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_desc_option, 0, 1, $_noactions,$expectation,undef)))
34884     {
34885       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: [/NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]>>},
34886               Parse::RecDescent::_tracefirst($text),
34887               q{desc_option},
34888               $tracelevel)
34889               if defined $::RD_TRACE;
34890       last;
34891     }
34892     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_desc_option]<< (}
34893           . @$_tok . q{ times)},
34894
34895             Parse::RecDescent::_tracefirst($text),
34896             q{desc_option},
34897             $tracelevel)
34898             if defined $::RD_TRACE;
34899     $item{q{_alternation_1_of_production_1_of_rule_desc_option(?)}} = $_tok;
34900     push @item, $_tok;
34901
34902
34903
34904
34905     Parse::RecDescent::_trace(q{>>Matched production: [/DESC/i /NULLS\\s+FIRST/i, or /NULLS\\s+LAST/i]<<},
34906             Parse::RecDescent::_tracefirst($text),
34907             q{desc_option},
34908             $tracelevel)
34909             if defined $::RD_TRACE;
34910     $_matched = 1;
34911     last;
34912   }
34913
34914
34915         unless ( $_matched || defined($return) || defined($score) )
34916   {
34917
34918
34919     $_[1] = $text;  # NOT SURE THIS IS NEEDED
34920     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
34921            Parse::RecDescent::_tracefirst($_[1]),
34922            q{desc_option},
34923            $tracelevel)
34924           if defined $::RD_TRACE;
34925     return undef;
34926   }
34927   if (!defined($return) && defined($score))
34928   {
34929     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
34930             q{desc_option},
34931             $tracelevel)
34932             if defined $::RD_TRACE;
34933     $return = $score_return;
34934   }
34935   splice @{$thisparser->{errors}}, $err_at;
34936   $return = $item[$#item] unless defined $return;
34937   if (defined $::RD_TRACE)
34938   {
34939     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
34940             $return . q{])}, "",
34941             q{desc_option},
34942             $tracelevel);
34943     Parse::RecDescent::_trace(q{(consumed: [} .
34944             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
34945             Parse::RecDescent::_tracefirst($text),
34946             , q{desc_option},
34947             $tracelevel)
34948   }
34949   $_[1] = $text;
34950   return $return;
34951 }
34952
34953 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
34954 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_list
34955 {
34956   my $thisparser = $_[0];
34957   use vars q{$tracelevel};
34958   local $tracelevel = ($tracelevel||0)+1;
34959   $ERRORS = 0;
34960   my $thisrule = $thisparser->{"rules"}{"column_list"};
34961
34962   Parse::RecDescent::_trace(q{Trying rule: [column_list]},
34963           Parse::RecDescent::_tracefirst($_[1]),
34964           q{column_list},
34965           $tracelevel)
34966           if defined $::RD_TRACE;
34967
34968
34969   my $err_at = @{$thisparser->{errors}};
34970
34971   my $score;
34972   my $score_return;
34973   my $_tok;
34974   my $return = undef;
34975   my $_matched=0;
34976   my $commit=0;
34977   my @item = ();
34978   my %item = ();
34979   my $repeating =  defined($_[2]) && $_[2];
34980   my $_noactions = defined($_[3]) && $_[3];
34981    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
34982   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
34983   my $text;
34984   my $lastsep="";
34985   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
34986   $expectation->at($_[1]);
34987
34988   my $thisline;
34989   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
34990
34991
34992
34993   while (!$_matched && !$commit)
34994   {
34995
34996     Parse::RecDescent::_trace(q{Trying production: ['(' <leftop: column_name /,/ column_name> ')']},
34997             Parse::RecDescent::_tracefirst($_[1]),
34998             q{column_list},
34999             $tracelevel)
35000             if defined $::RD_TRACE;
35001     my $thisprod = $thisrule->{"prods"}[0];
35002     $text = $_[1];
35003     my $_savetext;
35004     @item = (q{column_list});
35005     %item = (__RULE__ => q{column_list});
35006     my $repcount = 0;
35007
35008
35009     Parse::RecDescent::_trace(q{Trying terminal: ['(']},
35010             Parse::RecDescent::_tracefirst($text),
35011             q{column_list},
35012             $tracelevel)
35013             if defined $::RD_TRACE;
35014     $lastsep = "";
35015     $expectation->is(q{})->at($text);
35016
35017
35018     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\(//)
35019     {
35020
35021       $expectation->failed();
35022       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
35023               Parse::RecDescent::_tracefirst($text))
35024               if defined $::RD_TRACE;
35025       last;
35026     }
35027     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35028             . $& . q{])},
35029               Parse::RecDescent::_tracefirst($text))
35030               if defined $::RD_TRACE;
35031     push @item, $item{__STRING1__}=$&;
35032
35033
35034     Parse::RecDescent::_trace(q{Trying operator: [<leftop: column_name /,/ column_name>]},
35035           Parse::RecDescent::_tracefirst($text),
35036           q{column_list},
35037           $tracelevel)
35038           if defined $::RD_TRACE;
35039     $expectation->is(q{<leftop: column_name /,/ column_name>})->at($text);
35040
35041     $_tok = undef;
35042     OPLOOP: while (1)
35043     {
35044       $repcount = 0;
35045       my  @item;
35046
35047       # MATCH LEFTARG
35048
35049     Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
35050           Parse::RecDescent::_tracefirst($text),
35051           q{column_list},
35052           $tracelevel)
35053           if defined $::RD_TRACE;
35054     if (1) { no strict qw{refs};
35055     $expectation->is(q{column_name})->at($text);
35056     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35057     {
35058
35059       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
35060               Parse::RecDescent::_tracefirst($text),
35061               q{column_list},
35062               $tracelevel)
35063               if defined $::RD_TRACE;
35064       $expectation->failed();
35065       last;
35066     }
35067     Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
35068           . $_tok . q{]},
35069
35070             Parse::RecDescent::_tracefirst($text),
35071             q{column_list},
35072             $tracelevel)
35073             if defined $::RD_TRACE;
35074     $item{q{column_name}} = $_tok;
35075     push @item, $_tok;
35076
35077     }
35078
35079
35080       $repcount++;
35081
35082       my $savetext = $text;
35083       my $backtrack;
35084
35085       # MATCH (OP RIGHTARG)(s)
35086       while ($repcount < 100000000)
35087       {
35088       $backtrack = 0;
35089
35090     Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
35091             q{column_list},
35092             $tracelevel)
35093             if defined $::RD_TRACE;
35094     $lastsep = "";
35095     $expectation->is(q{/,/})->at($text);
35096
35097
35098     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
35099     {
35100
35101       $expectation->failed();
35102       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35103               Parse::RecDescent::_tracefirst($text))
35104           if defined $::RD_TRACE;
35105
35106       last;
35107     }
35108     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35109             . $& . q{])},
35110               Parse::RecDescent::_tracefirst($text))
35111           if defined $::RD_TRACE;
35112     push @item, $item{__PATTERN1__}=$&;
35113
35114
35115       pop @item;
35116       if (defined $1) {push @item, $item{'column_name(s)'}=$1; $backtrack=1;}
35117
35118     Parse::RecDescent::_trace(q{Trying subrule: [column_name]},
35119           Parse::RecDescent::_tracefirst($text),
35120           q{column_list},
35121           $tracelevel)
35122           if defined $::RD_TRACE;
35123     if (1) { no strict qw{refs};
35124     $expectation->is(q{column_name})->at($text);
35125     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::column_name($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35126     {
35127
35128       Parse::RecDescent::_trace(q{<<Didn't match subrule: [column_name]>>},
35129               Parse::RecDescent::_tracefirst($text),
35130               q{column_list},
35131               $tracelevel)
35132               if defined $::RD_TRACE;
35133       $expectation->failed();
35134       last;
35135     }
35136     Parse::RecDescent::_trace(q{>>Matched subrule: [column_name]<< (return value: [}
35137           . $_tok . q{]},
35138
35139             Parse::RecDescent::_tracefirst($text),
35140             q{column_list},
35141             $tracelevel)
35142             if defined $::RD_TRACE;
35143     $item{q{column_name}} = $_tok;
35144     push @item, $_tok;
35145
35146     }
35147
35148       $savetext = $text;
35149       $repcount++;
35150       }
35151       $text = $savetext;
35152       pop @item if $backtrack;
35153
35154       unless (@item) { undef $_tok; last }
35155       $_tok = [ @item ];
35156       last;
35157     }
35158
35159     unless ($repcount>=1)
35160     {
35161       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: column_name /,/ column_name>]>>},
35162               Parse::RecDescent::_tracefirst($text),
35163               q{column_list},
35164               $tracelevel)
35165               if defined $::RD_TRACE;
35166       $expectation->failed();
35167       last;
35168     }
35169     Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: column_name /,/ column_name>]<< (return value: [}
35170             . qq{@{$_tok||[]}} . q{]},
35171             Parse::RecDescent::_tracefirst($text),
35172             q{column_list},
35173             $tracelevel)
35174             if defined $::RD_TRACE;
35175
35176     push @item, $item{'column_name(s)'}=$_tok||[];
35177
35178
35179     Parse::RecDescent::_trace(q{Trying terminal: [')']},
35180             Parse::RecDescent::_tracefirst($text),
35181             q{column_list},
35182             $tracelevel)
35183             if defined $::RD_TRACE;
35184     $lastsep = "";
35185     $expectation->is(q{')'})->at($text);
35186
35187
35188     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\)//)
35189     {
35190
35191       $expectation->failed();
35192       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
35193               Parse::RecDescent::_tracefirst($text))
35194               if defined $::RD_TRACE;
35195       last;
35196     }
35197     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35198             . $& . q{])},
35199               Parse::RecDescent::_tracefirst($text))
35200               if defined $::RD_TRACE;
35201     push @item, $item{__STRING2__}=$&;
35202
35203
35204     Parse::RecDescent::_trace(q{Trying action},
35205             Parse::RecDescent::_tracefirst($text),
35206             q{column_list},
35207             $tracelevel)
35208             if defined $::RD_TRACE;
35209
35210
35211     $_tok = ($_noactions) ? 0 : do {
35212     $return = join(' ', '(', @{$item[2]}, ')');
35213 };
35214     unless (defined $_tok)
35215     {
35216       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
35217           if defined $::RD_TRACE;
35218       last;
35219     }
35220     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
35221             . $_tok . q{])},
35222             Parse::RecDescent::_tracefirst($text))
35223             if defined $::RD_TRACE;
35224     push @item, $_tok;
35225     $item{__ACTION1__}=$_tok;
35226
35227
35228
35229     Parse::RecDescent::_trace(q{>>Matched production: ['(' <leftop: column_name /,/ column_name> ')']<<},
35230             Parse::RecDescent::_tracefirst($text),
35231             q{column_list},
35232             $tracelevel)
35233             if defined $::RD_TRACE;
35234     $_matched = 1;
35235     last;
35236   }
35237
35238
35239         unless ( $_matched || defined($return) || defined($score) )
35240   {
35241
35242
35243     $_[1] = $text;  # NOT SURE THIS IS NEEDED
35244     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
35245            Parse::RecDescent::_tracefirst($_[1]),
35246            q{column_list},
35247            $tracelevel)
35248           if defined $::RD_TRACE;
35249     return undef;
35250   }
35251   if (!defined($return) && defined($score))
35252   {
35253     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35254             q{column_list},
35255             $tracelevel)
35256             if defined $::RD_TRACE;
35257     $return = $score_return;
35258   }
35259   splice @{$thisparser->{errors}}, $err_at;
35260   $return = $item[$#item] unless defined $return;
35261   if (defined $::RD_TRACE)
35262   {
35263     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35264             $return . q{])}, "",
35265             q{column_list},
35266             $tracelevel);
35267     Parse::RecDescent::_trace(q{(consumed: [} .
35268             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
35269             Parse::RecDescent::_tracefirst($text),
35270             , q{column_list},
35271             $tracelevel)
35272   }
35273   $_[1] = $text;
35274   return $return;
35275 }
35276
35277 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35278 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_63_of_rule_sysibm_function
35279 {
35280   my $thisparser = $_[0];
35281   use vars q{$tracelevel};
35282   local $tracelevel = ($tracelevel||0)+1;
35283   $ERRORS = 0;
35284   my $thisrule = $thisparser->{"rules"}{"_alternation_1_of_production_63_of_rule_sysibm_function"};
35285
35286   Parse::RecDescent::_trace(q{Trying rule: [_alternation_1_of_production_63_of_rule_sysibm_function]},
35287           Parse::RecDescent::_tracefirst($_[1]),
35288           q{_alternation_1_of_production_63_of_rule_sysibm_function},
35289           $tracelevel)
35290           if defined $::RD_TRACE;
35291
35292
35293   my $err_at = @{$thisparser->{errors}};
35294
35295   my $score;
35296   my $score_return;
35297   my $_tok;
35298   my $return = undef;
35299   my $_matched=0;
35300   my $commit=0;
35301   my @item = ();
35302   my %item = ();
35303   my $repeating =  defined($_[2]) && $_[2];
35304   my $_noactions = defined($_[3]) && $_[3];
35305    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
35306   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
35307   my $text;
35308   my $lastsep="";
35309   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35310   $expectation->at($_[1]);
35311
35312   my $thisline;
35313   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35314
35315
35316
35317   while (!$_matched && !$commit)
35318   {
35319
35320     Parse::RecDescent::_trace(q{Trying production: [/REGR_INTERCEPT/i]},
35321             Parse::RecDescent::_tracefirst($_[1]),
35322             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35323             $tracelevel)
35324             if defined $::RD_TRACE;
35325     my $thisprod = $thisrule->{"prods"}[0];
35326     $text = $_[1];
35327     my $_savetext;
35328     @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
35329     %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
35330     my $repcount = 0;
35331
35332
35333     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_INTERCEPT/i]}, Parse::RecDescent::_tracefirst($text),
35334             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35335             $tracelevel)
35336             if defined $::RD_TRACE;
35337     $lastsep = "";
35338     $expectation->is(q{})->at($text);
35339
35340
35341     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_INTERCEPT)//i)
35342     {
35343
35344       $expectation->failed();
35345       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35346               Parse::RecDescent::_tracefirst($text))
35347           if defined $::RD_TRACE;
35348
35349       last;
35350     }
35351     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35352             . $& . q{])},
35353               Parse::RecDescent::_tracefirst($text))
35354           if defined $::RD_TRACE;
35355     push @item, $item{__PATTERN1__}=$&;
35356
35357
35358
35359     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_INTERCEPT/i]<<},
35360             Parse::RecDescent::_tracefirst($text),
35361             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35362             $tracelevel)
35363             if defined $::RD_TRACE;
35364     $_matched = 1;
35365     last;
35366   }
35367
35368
35369   while (!$_matched && !$commit)
35370   {
35371
35372     Parse::RecDescent::_trace(q{Trying production: [/REGR_ICPT/i]},
35373             Parse::RecDescent::_tracefirst($_[1]),
35374             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35375             $tracelevel)
35376             if defined $::RD_TRACE;
35377     my $thisprod = $thisrule->{"prods"}[1];
35378     $text = $_[1];
35379     my $_savetext;
35380     @item = (q{_alternation_1_of_production_63_of_rule_sysibm_function});
35381     %item = (__RULE__ => q{_alternation_1_of_production_63_of_rule_sysibm_function});
35382     my $repcount = 0;
35383
35384
35385     Parse::RecDescent::_trace(q{Trying terminal: [/REGR_ICPT/i]}, Parse::RecDescent::_tracefirst($text),
35386             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35387             $tracelevel)
35388             if defined $::RD_TRACE;
35389     $lastsep = "";
35390     $expectation->is(q{})->at($text);
35391
35392
35393     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:REGR_ICPT)//i)
35394     {
35395
35396       $expectation->failed();
35397       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35398               Parse::RecDescent::_tracefirst($text))
35399           if defined $::RD_TRACE;
35400
35401       last;
35402     }
35403     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35404             . $& . q{])},
35405               Parse::RecDescent::_tracefirst($text))
35406           if defined $::RD_TRACE;
35407     push @item, $item{__PATTERN1__}=$&;
35408
35409
35410
35411     Parse::RecDescent::_trace(q{>>Matched production: [/REGR_ICPT/i]<<},
35412             Parse::RecDescent::_tracefirst($text),
35413             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35414             $tracelevel)
35415             if defined $::RD_TRACE;
35416     $_matched = 1;
35417     last;
35418   }
35419
35420
35421         unless ( $_matched || defined($return) || defined($score) )
35422   {
35423
35424
35425     $_[1] = $text;  # NOT SURE THIS IS NEEDED
35426     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
35427            Parse::RecDescent::_tracefirst($_[1]),
35428            q{_alternation_1_of_production_63_of_rule_sysibm_function},
35429            $tracelevel)
35430           if defined $::RD_TRACE;
35431     return undef;
35432   }
35433   if (!defined($return) && defined($score))
35434   {
35435     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35436             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35437             $tracelevel)
35438             if defined $::RD_TRACE;
35439     $return = $score_return;
35440   }
35441   splice @{$thisparser->{errors}}, $err_at;
35442   $return = $item[$#item] unless defined $return;
35443   if (defined $::RD_TRACE)
35444   {
35445     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35446             $return . q{])}, "",
35447             q{_alternation_1_of_production_63_of_rule_sysibm_function},
35448             $tracelevel);
35449     Parse::RecDescent::_trace(q{(consumed: [} .
35450             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
35451             Parse::RecDescent::_tracefirst($text),
35452             , q{_alternation_1_of_production_63_of_rule_sysibm_function},
35453             $tracelevel)
35454   }
35455   $_[1] = $text;
35456   return $return;
35457 }
35458
35459 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35460 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::dereference_operation
35461 {
35462   my $thisparser = $_[0];
35463   use vars q{$tracelevel};
35464   local $tracelevel = ($tracelevel||0)+1;
35465   $ERRORS = 0;
35466   my $thisrule = $thisparser->{"rules"}{"dereference_operation"};
35467
35468   Parse::RecDescent::_trace(q{Trying rule: [dereference_operation]},
35469           Parse::RecDescent::_tracefirst($_[1]),
35470           q{dereference_operation},
35471           $tracelevel)
35472           if defined $::RD_TRACE;
35473
35474
35475   my $err_at = @{$thisparser->{errors}};
35476
35477   my $score;
35478   my $score_return;
35479   my $_tok;
35480   my $return = undef;
35481   my $_matched=0;
35482   my $commit=0;
35483   my @item = ();
35484   my %item = ();
35485   my $repeating =  defined($_[2]) && $_[2];
35486   my $_noactions = defined($_[3]) && $_[3];
35487    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
35488   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
35489   my $text;
35490   my $lastsep="";
35491   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35492   $expectation->at($_[1]);
35493
35494   my $thisline;
35495   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35496
35497
35498
35499   while (!$_matched && !$commit)
35500   {
35501
35502     Parse::RecDescent::_trace(q{Trying production: [scoped_reference_expression '->' name1 '(']},
35503             Parse::RecDescent::_tracefirst($_[1]),
35504             q{dereference_operation},
35505             $tracelevel)
35506             if defined $::RD_TRACE;
35507     my $thisprod = $thisrule->{"prods"}[0];
35508     $text = $_[1];
35509     my $_savetext;
35510     @item = (q{dereference_operation});
35511     %item = (__RULE__ => q{dereference_operation});
35512     my $repcount = 0;
35513
35514
35515     Parse::RecDescent::_trace(q{Trying subrule: [scoped_reference_expression]},
35516           Parse::RecDescent::_tracefirst($text),
35517           q{dereference_operation},
35518           $tracelevel)
35519           if defined $::RD_TRACE;
35520     if (1) { no strict qw{refs};
35521     $expectation->is(q{})->at($text);
35522     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::scoped_reference_expression($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35523     {
35524
35525       Parse::RecDescent::_trace(q{<<Didn't match subrule: [scoped_reference_expression]>>},
35526               Parse::RecDescent::_tracefirst($text),
35527               q{dereference_operation},
35528               $tracelevel)
35529               if defined $::RD_TRACE;
35530       $expectation->failed();
35531       last;
35532     }
35533     Parse::RecDescent::_trace(q{>>Matched subrule: [scoped_reference_expression]<< (return value: [}
35534           . $_tok . q{]},
35535
35536             Parse::RecDescent::_tracefirst($text),
35537             q{dereference_operation},
35538             $tracelevel)
35539             if defined $::RD_TRACE;
35540     $item{q{scoped_reference_expression}} = $_tok;
35541     push @item, $_tok;
35542
35543     }
35544
35545     Parse::RecDescent::_trace(q{Trying terminal: ['->']},
35546             Parse::RecDescent::_tracefirst($text),
35547             q{dereference_operation},
35548             $tracelevel)
35549             if defined $::RD_TRACE;
35550     $lastsep = "";
35551     $expectation->is(q{'->'})->at($text);
35552
35553
35554     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A\-\>//)
35555     {
35556
35557       $expectation->failed();
35558       Parse::RecDescent::_trace(qq{<<Didn't match terminal>>},
35559               Parse::RecDescent::_tracefirst($text))
35560               if defined $::RD_TRACE;
35561       last;
35562     }
35563     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35564             . $& . q{])},
35565               Parse::RecDescent::_tracefirst($text))
35566               if defined $::RD_TRACE;
35567     push @item, $item{__STRING1__}=$&;
35568
35569
35570     Parse::RecDescent::_trace(q{Trying subrule: [name1]},
35571           Parse::RecDescent::_tracefirst($text),
35572           q{dereference_operation},
35573           $tracelevel)
35574           if defined $::RD_TRACE;
35575     if (1) { no strict qw{refs};
35576     $expectation->is(q{name1})->at($text);
35577     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::name1($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35578     {
35579
35580       Parse::RecDescent::_trace(q{<<Didn't match subrule: [name1]>>},
35581               Parse::RecDescent::_tracefirst($text),
35582               q{dereference_operation},
35583               $tracelevel)
35584               if defined $::RD_TRACE;
35585       $expectation->failed();
35586       last;
35587     }
35588     Parse::RecDescent::_trace(q{>>Matched subrule: [name1]<< (return value: [}
35589           . $_tok . q{]},
35590
35591             Parse::RecDescent::_tracefirst($text),
35592             q{dereference_operation},
35593             $tracelevel)
35594             if defined $::RD_TRACE;
35595     $item{q{name1}} = $_tok;
35596     push @item, $_tok;
35597
35598     }
35599
35600     Parse::RecDescent::_trace(q{Trying repeated subrule: ['(']},
35601           Parse::RecDescent::_tracefirst($text),
35602           q{dereference_operation},
35603           $tracelevel)
35604           if defined $::RD_TRACE;
35605     $expectation->is(q{'('})->at($text);
35606
35607     unless (defined ($_tok = $thisparser->_parserepeat($text, \&Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_dereference_operation, 0, 1, $_noactions,$expectation,undef)))
35608     {
35609       Parse::RecDescent::_trace(q{<<Didn't match repeated subrule: ['(']>>},
35610               Parse::RecDescent::_tracefirst($text),
35611               q{dereference_operation},
35612               $tracelevel)
35613               if defined $::RD_TRACE;
35614       last;
35615     }
35616     Parse::RecDescent::_trace(q{>>Matched repeated subrule: [_alternation_1_of_production_1_of_rule_dereference_operation]<< (}
35617           . @$_tok . q{ times)},
35618
35619             Parse::RecDescent::_tracefirst($text),
35620             q{dereference_operation},
35621             $tracelevel)
35622             if defined $::RD_TRACE;
35623     $item{q{_alternation_1_of_production_1_of_rule_dereference_operation(?)}} = $_tok;
35624     push @item, $_tok;
35625
35626
35627
35628
35629     Parse::RecDescent::_trace(q{>>Matched production: [scoped_reference_expression '->' name1 '(']<<},
35630             Parse::RecDescent::_tracefirst($text),
35631             q{dereference_operation},
35632             $tracelevel)
35633             if defined $::RD_TRACE;
35634     $_matched = 1;
35635     last;
35636   }
35637
35638
35639         unless ( $_matched || defined($return) || defined($score) )
35640   {
35641
35642
35643     $_[1] = $text;  # NOT SURE THIS IS NEEDED
35644     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
35645            Parse::RecDescent::_tracefirst($_[1]),
35646            q{dereference_operation},
35647            $tracelevel)
35648           if defined $::RD_TRACE;
35649     return undef;
35650   }
35651   if (!defined($return) && defined($score))
35652   {
35653     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35654             q{dereference_operation},
35655             $tracelevel)
35656             if defined $::RD_TRACE;
35657     $return = $score_return;
35658   }
35659   splice @{$thisparser->{errors}}, $err_at;
35660   $return = $item[$#item] unless defined $return;
35661   if (defined $::RD_TRACE)
35662   {
35663     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35664             $return . q{])}, "",
35665             q{dereference_operation},
35666             $tracelevel);
35667     Parse::RecDescent::_trace(q{(consumed: [} .
35668             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
35669             Parse::RecDescent::_tracefirst($text),
35670             , q{dereference_operation},
35671             $tracelevel)
35672   }
35673   $_[1] = $text;
35674   return $return;
35675 }
35676
35677 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35678 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::OUTER
35679 {
35680   my $thisparser = $_[0];
35681   use vars q{$tracelevel};
35682   local $tracelevel = ($tracelevel||0)+1;
35683   $ERRORS = 0;
35684   my $thisrule = $thisparser->{"rules"}{"OUTER"};
35685
35686   Parse::RecDescent::_trace(q{Trying rule: [OUTER]},
35687           Parse::RecDescent::_tracefirst($_[1]),
35688           q{OUTER},
35689           $tracelevel)
35690           if defined $::RD_TRACE;
35691
35692
35693   my $err_at = @{$thisparser->{errors}};
35694
35695   my $score;
35696   my $score_return;
35697   my $_tok;
35698   my $return = undef;
35699   my $_matched=0;
35700   my $commit=0;
35701   my @item = ();
35702   my %item = ();
35703   my $repeating =  defined($_[2]) && $_[2];
35704   my $_noactions = defined($_[3]) && $_[3];
35705    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
35706   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
35707   my $text;
35708   my $lastsep="";
35709   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35710   $expectation->at($_[1]);
35711
35712   my $thisline;
35713   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35714
35715
35716
35717   while (!$_matched && !$commit)
35718   {
35719
35720     Parse::RecDescent::_trace(q{Trying production: [/outer/i]},
35721             Parse::RecDescent::_tracefirst($_[1]),
35722             q{OUTER},
35723             $tracelevel)
35724             if defined $::RD_TRACE;
35725     my $thisprod = $thisrule->{"prods"}[0];
35726     $text = $_[1];
35727     my $_savetext;
35728     @item = (q{OUTER});
35729     %item = (__RULE__ => q{OUTER});
35730     my $repcount = 0;
35731
35732
35733     Parse::RecDescent::_trace(q{Trying terminal: [/outer/i]}, Parse::RecDescent::_tracefirst($text),
35734             q{OUTER},
35735             $tracelevel)
35736             if defined $::RD_TRACE;
35737     $lastsep = "";
35738     $expectation->is(q{})->at($text);
35739
35740
35741     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:outer)//i)
35742     {
35743
35744       $expectation->failed();
35745       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35746               Parse::RecDescent::_tracefirst($text))
35747           if defined $::RD_TRACE;
35748
35749       last;
35750     }
35751     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35752             . $& . q{])},
35753               Parse::RecDescent::_tracefirst($text))
35754           if defined $::RD_TRACE;
35755     push @item, $item{__PATTERN1__}=$&;
35756
35757
35758
35759     Parse::RecDescent::_trace(q{>>Matched production: [/outer/i]<<},
35760             Parse::RecDescent::_tracefirst($text),
35761             q{OUTER},
35762             $tracelevel)
35763             if defined $::RD_TRACE;
35764     $_matched = 1;
35765     last;
35766   }
35767
35768
35769         unless ( $_matched || defined($return) || defined($score) )
35770   {
35771
35772
35773     $_[1] = $text;  # NOT SURE THIS IS NEEDED
35774     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
35775            Parse::RecDescent::_tracefirst($_[1]),
35776            q{OUTER},
35777            $tracelevel)
35778           if defined $::RD_TRACE;
35779     return undef;
35780   }
35781   if (!defined($return) && defined($score))
35782   {
35783     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
35784             q{OUTER},
35785             $tracelevel)
35786             if defined $::RD_TRACE;
35787     $return = $score_return;
35788   }
35789   splice @{$thisparser->{errors}}, $err_at;
35790   $return = $item[$#item] unless defined $return;
35791   if (defined $::RD_TRACE)
35792   {
35793     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
35794             $return . q{])}, "",
35795             q{OUTER},
35796             $tracelevel);
35797     Parse::RecDescent::_trace(q{(consumed: [} .
35798             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
35799             Parse::RecDescent::_tracefirst($text),
35800             , q{OUTER},
35801             $tracelevel)
35802   }
35803   $_[1] = $text;
35804   return $return;
35805 }
35806
35807 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
35808 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::window_order_clause
35809 {
35810   my $thisparser = $_[0];
35811   use vars q{$tracelevel};
35812   local $tracelevel = ($tracelevel||0)+1;
35813   $ERRORS = 0;
35814   my $thisrule = $thisparser->{"rules"}{"window_order_clause"};
35815
35816   Parse::RecDescent::_trace(q{Trying rule: [window_order_clause]},
35817           Parse::RecDescent::_tracefirst($_[1]),
35818           q{window_order_clause},
35819           $tracelevel)
35820           if defined $::RD_TRACE;
35821
35822
35823   my $err_at = @{$thisparser->{errors}};
35824
35825   my $score;
35826   my $score_return;
35827   my $_tok;
35828   my $return = undef;
35829   my $_matched=0;
35830   my $commit=0;
35831   my @item = ();
35832   my %item = ();
35833   my $repeating =  defined($_[2]) && $_[2];
35834   my $_noactions = defined($_[3]) && $_[3];
35835    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
35836   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
35837   my $text;
35838   my $lastsep="";
35839   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
35840   $expectation->at($_[1]);
35841
35842   my $thisline;
35843   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
35844
35845
35846
35847   while (!$_matched && !$commit)
35848   {
35849
35850     Parse::RecDescent::_trace(q{Trying production: [/ORDER\\s+BY/i <leftop: sort_key_expression /,/ sort_key_expression>]},
35851             Parse::RecDescent::_tracefirst($_[1]),
35852             q{window_order_clause},
35853             $tracelevel)
35854             if defined $::RD_TRACE;
35855     my $thisprod = $thisrule->{"prods"}[0];
35856     $text = $_[1];
35857     my $_savetext;
35858     @item = (q{window_order_clause});
35859     %item = (__RULE__ => q{window_order_clause});
35860     my $repcount = 0;
35861
35862
35863     Parse::RecDescent::_trace(q{Trying terminal: [/ORDER\\s+BY/i]}, Parse::RecDescent::_tracefirst($text),
35864             q{window_order_clause},
35865             $tracelevel)
35866             if defined $::RD_TRACE;
35867     $lastsep = "";
35868     $expectation->is(q{})->at($text);
35869
35870
35871     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:ORDER\s+BY)//i)
35872     {
35873
35874       $expectation->failed();
35875       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35876               Parse::RecDescent::_tracefirst($text))
35877           if defined $::RD_TRACE;
35878
35879       last;
35880     }
35881     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35882             . $& . q{])},
35883               Parse::RecDescent::_tracefirst($text))
35884           if defined $::RD_TRACE;
35885     push @item, $item{__PATTERN1__}=$&;
35886
35887
35888     Parse::RecDescent::_trace(q{Trying operator: [<leftop: sort_key_expression /,/ sort_key_expression>]},
35889           Parse::RecDescent::_tracefirst($text),
35890           q{window_order_clause},
35891           $tracelevel)
35892           if defined $::RD_TRACE;
35893     $expectation->is(q{<leftop: sort_key_expression /,/ sort_key_expression>})->at($text);
35894
35895     $_tok = undef;
35896     OPLOOP: while (1)
35897     {
35898       $repcount = 0;
35899       my  @item;
35900
35901       # MATCH LEFTARG
35902
35903     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
35904           Parse::RecDescent::_tracefirst($text),
35905           q{window_order_clause},
35906           $tracelevel)
35907           if defined $::RD_TRACE;
35908     if (1) { no strict qw{refs};
35909     $expectation->is(q{sort_key_expression})->at($text);
35910     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35911     {
35912
35913       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]>>},
35914               Parse::RecDescent::_tracefirst($text),
35915               q{window_order_clause},
35916               $tracelevel)
35917               if defined $::RD_TRACE;
35918       $expectation->failed();
35919       last;
35920     }
35921     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
35922           . $_tok . q{]},
35923
35924             Parse::RecDescent::_tracefirst($text),
35925             q{window_order_clause},
35926             $tracelevel)
35927             if defined $::RD_TRACE;
35928     $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_tok;
35929     push @item, $_tok;
35930
35931     }
35932
35933
35934       $repcount++;
35935
35936       my $savetext = $text;
35937       my $backtrack;
35938
35939       # MATCH (OP RIGHTARG)(s)
35940       while ($repcount < 100000000)
35941       {
35942       $backtrack = 0;
35943
35944     Parse::RecDescent::_trace(q{Trying terminal: [/,/]}, Parse::RecDescent::_tracefirst($text),
35945             q{window_order_clause},
35946             $tracelevel)
35947             if defined $::RD_TRACE;
35948     $lastsep = "";
35949     $expectation->is(q{/,/})->at($text);
35950
35951
35952     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:,)//)
35953     {
35954
35955       $expectation->failed();
35956       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
35957               Parse::RecDescent::_tracefirst($text))
35958           if defined $::RD_TRACE;
35959
35960       last;
35961     }
35962     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
35963             . $& . q{])},
35964               Parse::RecDescent::_tracefirst($text))
35965           if defined $::RD_TRACE;
35966     push @item, $item{__PATTERN2__}=$&;
35967
35968
35969       pop @item;
35970       if (defined $1) {push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'}=$1; $backtrack=1;}
35971
35972     Parse::RecDescent::_trace(q{Trying subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]},
35973           Parse::RecDescent::_tracefirst($text),
35974           q{window_order_clause},
35975           $tracelevel)
35976           if defined $::RD_TRACE;
35977     if (1) { no strict qw{refs};
35978     $expectation->is(q{sort_key_expression})->at($text);
35979     unless (defined ($_tok = Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::_alternation_1_of_production_1_of_rule_window_order_clause($thisparser,$text,$repeating,$_noactions,sub { \@arg })))
35980     {
35981
35982       Parse::RecDescent::_trace(q{<<Didn't match subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]>>},
35983               Parse::RecDescent::_tracefirst($text),
35984               q{window_order_clause},
35985               $tracelevel)
35986               if defined $::RD_TRACE;
35987       $expectation->failed();
35988       last;
35989     }
35990     Parse::RecDescent::_trace(q{>>Matched subrule: [_alternation_1_of_production_1_of_rule_window_order_clause]<< (return value: [}
35991           . $_tok . q{]},
35992
35993             Parse::RecDescent::_tracefirst($text),
35994             q{window_order_clause},
35995             $tracelevel)
35996             if defined $::RD_TRACE;
35997     $item{q{_alternation_1_of_production_1_of_rule_window_order_clause}} = $_tok;
35998     push @item, $_tok;
35999
36000     }
36001
36002       $savetext = $text;
36003       $repcount++;
36004       }
36005       $text = $savetext;
36006       pop @item if $backtrack;
36007
36008       unless (@item) { undef $_tok; last }
36009       $_tok = [ @item ];
36010       last;
36011     }
36012
36013     unless ($repcount>=1)
36014     {
36015       Parse::RecDescent::_trace(q{<<Didn't match operator: [<leftop: sort_key_expression /,/ sort_key_expression>]>>},
36016               Parse::RecDescent::_tracefirst($text),
36017               q{window_order_clause},
36018               $tracelevel)
36019               if defined $::RD_TRACE;
36020       $expectation->failed();
36021       last;
36022     }
36023     Parse::RecDescent::_trace(q{>>Matched operator: [<leftop: sort_key_expression /,/ sort_key_expression>]<< (return value: [}
36024             . qq{@{$_tok||[]}} . q{]},
36025             Parse::RecDescent::_tracefirst($text),
36026             q{window_order_clause},
36027             $tracelevel)
36028             if defined $::RD_TRACE;
36029
36030     push @item, $item{'_alternation_1_of_production_1_of_rule_window_order_clause(s)'}=$_tok||[];
36031
36032
36033
36034     Parse::RecDescent::_trace(q{>>Matched production: [/ORDER\\s+BY/i <leftop: sort_key_expression /,/ sort_key_expression>]<<},
36035             Parse::RecDescent::_tracefirst($text),
36036             q{window_order_clause},
36037             $tracelevel)
36038             if defined $::RD_TRACE;
36039     $_matched = 1;
36040     last;
36041   }
36042
36043
36044         unless ( $_matched || defined($return) || defined($score) )
36045   {
36046
36047
36048     $_[1] = $text;  # NOT SURE THIS IS NEEDED
36049     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
36050            Parse::RecDescent::_tracefirst($_[1]),
36051            q{window_order_clause},
36052            $tracelevel)
36053           if defined $::RD_TRACE;
36054     return undef;
36055   }
36056   if (!defined($return) && defined($score))
36057   {
36058     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36059             q{window_order_clause},
36060             $tracelevel)
36061             if defined $::RD_TRACE;
36062     $return = $score_return;
36063   }
36064   splice @{$thisparser->{errors}}, $err_at;
36065   $return = $item[$#item] unless defined $return;
36066   if (defined $::RD_TRACE)
36067   {
36068     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36069             $return . q{])}, "",
36070             q{window_order_clause},
36071             $tracelevel);
36072     Parse::RecDescent::_trace(q{(consumed: [} .
36073             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
36074             Parse::RecDescent::_tracefirst($text),
36075             , q{window_order_clause},
36076             $tracelevel)
36077   }
36078   $_[1] = $text;
36079   return $return;
36080 }
36081
36082 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
36083 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::TRIGGER
36084 {
36085   my $thisparser = $_[0];
36086   use vars q{$tracelevel};
36087   local $tracelevel = ($tracelevel||0)+1;
36088   $ERRORS = 0;
36089   my $thisrule = $thisparser->{"rules"}{"TRIGGER"};
36090
36091   Parse::RecDescent::_trace(q{Trying rule: [TRIGGER]},
36092           Parse::RecDescent::_tracefirst($_[1]),
36093           q{TRIGGER},
36094           $tracelevel)
36095           if defined $::RD_TRACE;
36096
36097
36098   my $err_at = @{$thisparser->{errors}};
36099
36100   my $score;
36101   my $score_return;
36102   my $_tok;
36103   my $return = undef;
36104   my $_matched=0;
36105   my $commit=0;
36106   my @item = ();
36107   my %item = ();
36108   my $repeating =  defined($_[2]) && $_[2];
36109   my $_noactions = defined($_[3]) && $_[3];
36110    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
36111   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
36112   my $text;
36113   my $lastsep="";
36114   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
36115   $expectation->at($_[1]);
36116
36117   my $thisline;
36118   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
36119
36120
36121
36122   while (!$_matched && !$commit)
36123   {
36124
36125     Parse::RecDescent::_trace(q{Trying production: [/trigger/i]},
36126             Parse::RecDescent::_tracefirst($_[1]),
36127             q{TRIGGER},
36128             $tracelevel)
36129             if defined $::RD_TRACE;
36130     my $thisprod = $thisrule->{"prods"}[0];
36131     $text = $_[1];
36132     my $_savetext;
36133     @item = (q{TRIGGER});
36134     %item = (__RULE__ => q{TRIGGER});
36135     my $repcount = 0;
36136
36137
36138     Parse::RecDescent::_trace(q{Trying terminal: [/trigger/i]}, Parse::RecDescent::_tracefirst($text),
36139             q{TRIGGER},
36140             $tracelevel)
36141             if defined $::RD_TRACE;
36142     $lastsep = "";
36143     $expectation->is(q{})->at($text);
36144
36145
36146     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:trigger)//i)
36147     {
36148
36149       $expectation->failed();
36150       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
36151               Parse::RecDescent::_tracefirst($text))
36152           if defined $::RD_TRACE;
36153
36154       last;
36155     }
36156     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
36157             . $& . q{])},
36158               Parse::RecDescent::_tracefirst($text))
36159           if defined $::RD_TRACE;
36160     push @item, $item{__PATTERN1__}=$&;
36161
36162
36163
36164     Parse::RecDescent::_trace(q{>>Matched production: [/trigger/i]<<},
36165             Parse::RecDescent::_tracefirst($text),
36166             q{TRIGGER},
36167             $tracelevel)
36168             if defined $::RD_TRACE;
36169     $_matched = 1;
36170     last;
36171   }
36172
36173
36174         unless ( $_matched || defined($return) || defined($score) )
36175   {
36176
36177
36178     $_[1] = $text;  # NOT SURE THIS IS NEEDED
36179     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
36180            Parse::RecDescent::_tracefirst($_[1]),
36181            q{TRIGGER},
36182            $tracelevel)
36183           if defined $::RD_TRACE;
36184     return undef;
36185   }
36186   if (!defined($return) && defined($score))
36187   {
36188     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36189             q{TRIGGER},
36190             $tracelevel)
36191             if defined $::RD_TRACE;
36192     $return = $score_return;
36193   }
36194   splice @{$thisparser->{errors}}, $err_at;
36195   $return = $item[$#item] unless defined $return;
36196   if (defined $::RD_TRACE)
36197   {
36198     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36199             $return . q{])}, "",
36200             q{TRIGGER},
36201             $tracelevel);
36202     Parse::RecDescent::_trace(q{(consumed: [} .
36203             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
36204             Parse::RecDescent::_tracefirst($text),
36205             , q{TRIGGER},
36206             $tracelevel)
36207   }
36208   $_[1] = $text;
36209   return $return;
36210 }
36211
36212 # ARGS ARE: ($parser, $text; $repeating, $_noactions, \@args)
36213 sub Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar::comment
36214 {
36215   my $thisparser = $_[0];
36216   use vars q{$tracelevel};
36217   local $tracelevel = ($tracelevel||0)+1;
36218   $ERRORS = 0;
36219   my $thisrule = $thisparser->{"rules"}{"comment"};
36220
36221   Parse::RecDescent::_trace(q{Trying rule: [comment]},
36222           Parse::RecDescent::_tracefirst($_[1]),
36223           q{comment},
36224           $tracelevel)
36225           if defined $::RD_TRACE;
36226
36227
36228   my $err_at = @{$thisparser->{errors}};
36229
36230   my $score;
36231   my $score_return;
36232   my $_tok;
36233   my $return = undef;
36234   my $_matched=0;
36235   my $commit=0;
36236   my @item = ();
36237   my %item = ();
36238   my $repeating =  defined($_[2]) && $_[2];
36239   my $_noactions = defined($_[3]) && $_[3];
36240    my @arg =        defined $_[4] ? @{ &{$_[4]} } : ();
36241   my %arg =        ($#arg & 01) ? @arg : (@arg, undef);
36242   my $text;
36243   my $lastsep="";
36244   my $expectation = new Parse::RecDescent::Expectation($thisrule->expected());
36245   $expectation->at($_[1]);
36246
36247   my $thisline;
36248   tie $thisline, q{Parse::RecDescent::LineCounter}, \$text, $thisparser;
36249
36250
36251
36252   while (!$_matched && !$commit)
36253   {
36254
36255     Parse::RecDescent::_trace(q{Trying production: [/^\\s*-\{2\}.*\\n/]},
36256             Parse::RecDescent::_tracefirst($_[1]),
36257             q{comment},
36258             $tracelevel)
36259             if defined $::RD_TRACE;
36260     my $thisprod = $thisrule->{"prods"}[0];
36261     $text = $_[1];
36262     my $_savetext;
36263     @item = (q{comment});
36264     %item = (__RULE__ => q{comment});
36265     my $repcount = 0;
36266
36267
36268     Parse::RecDescent::_trace(q{Trying terminal: [/^\\s*-\{2\}.*\\n/]}, Parse::RecDescent::_tracefirst($text),
36269             q{comment},
36270             $tracelevel)
36271             if defined $::RD_TRACE;
36272     $lastsep = "";
36273     $expectation->is(q{})->at($text);
36274
36275
36276     unless ($text =~ s/\A($skip)/$lastsep=$1 and ""/e and   $text =~ s/\A(?:^\s*-{2}.*\n)//)
36277     {
36278
36279       $expectation->failed();
36280       Parse::RecDescent::_trace(q{<<Didn't match terminal>>},
36281               Parse::RecDescent::_tracefirst($text))
36282           if defined $::RD_TRACE;
36283
36284       last;
36285     }
36286     Parse::RecDescent::_trace(q{>>Matched terminal<< (return value: [}
36287             . $& . q{])},
36288               Parse::RecDescent::_tracefirst($text))
36289           if defined $::RD_TRACE;
36290     push @item, $item{__PATTERN1__}=$&;
36291
36292
36293     Parse::RecDescent::_trace(q{Trying action},
36294             Parse::RecDescent::_tracefirst($text),
36295             q{comment},
36296             $tracelevel)
36297             if defined $::RD_TRACE;
36298
36299
36300     $_tok = ($_noactions) ? 0 : do {
36301         my $comment =  $item[1];
36302         $comment    =~ s/^\s*(-{2})\s*//;
36303         $comment    =~ s/\s*$//;
36304         $return     = $comment;
36305     };
36306     unless (defined $_tok)
36307     {
36308       Parse::RecDescent::_trace(q{<<Didn't match action>> (return value: [undef])})
36309           if defined $::RD_TRACE;
36310       last;
36311     }
36312     Parse::RecDescent::_trace(q{>>Matched action<< (return value: [}
36313             . $_tok . q{])},
36314             Parse::RecDescent::_tracefirst($text))
36315             if defined $::RD_TRACE;
36316     push @item, $_tok;
36317     $item{__ACTION1__}=$_tok;
36318
36319
36320
36321     Parse::RecDescent::_trace(q{>>Matched production: [/^\\s*-\{2\}.*\\n/]<<},
36322             Parse::RecDescent::_tracefirst($text),
36323             q{comment},
36324             $tracelevel)
36325             if defined $::RD_TRACE;
36326     $_matched = 1;
36327     last;
36328   }
36329
36330
36331         unless ( $_matched || defined($return) || defined($score) )
36332   {
36333
36334
36335     $_[1] = $text;  # NOT SURE THIS IS NEEDED
36336     Parse::RecDescent::_trace(q{<<Didn't match rule>>},
36337            Parse::RecDescent::_tracefirst($_[1]),
36338            q{comment},
36339            $tracelevel)
36340           if defined $::RD_TRACE;
36341     return undef;
36342   }
36343   if (!defined($return) && defined($score))
36344   {
36345     Parse::RecDescent::_trace(q{>>Accepted scored production<<}, "",
36346             q{comment},
36347             $tracelevel)
36348             if defined $::RD_TRACE;
36349     $return = $score_return;
36350   }
36351   splice @{$thisparser->{errors}}, $err_at;
36352   $return = $item[$#item] unless defined $return;
36353   if (defined $::RD_TRACE)
36354   {
36355     Parse::RecDescent::_trace(q{>>Matched rule<< (return value: [} .
36356             $return . q{])}, "",
36357             q{comment},
36358             $tracelevel);
36359     Parse::RecDescent::_trace(q{(consumed: [} .
36360             Parse::RecDescent::_tracemax(substr($_[1],0,-length($text))) . q{])},
36361             Parse::RecDescent::_tracefirst($text),
36362             , q{comment},
36363             $tracelevel)
36364   }
36365   $_[1] = $text;
36366   return $return;
36367 }
36368 }
36369 package SQL::Translator::Parser::DB2::Grammar; sub new { my $self = bless( {
36370                  '_AUTOTREE' => undef,
36371                  'localvars' => '',
36372                  'startcode' => '',
36373                  '_check' => {
36374                                'thisoffset' => '',
36375                                'itempos' => '',
36376                                'prevoffset' => '',
36377                                'prevline' => '',
36378                                'prevcolumn' => '',
36379                                'thiscolumn' => ''
36380                              },
36381                  'namespace' => 'Parse::RecDescent::SQL::Translator::Parser::DB2::Grammar',
36382                  '_AUTOACTION' => undef,
36383                  'rules' => {
36384                               '_alternation_1_of_production_17_of_rule_sysibm_function' => bless( {
36385                                                                                                     'impcount' => 0,
36386                                                                                                     'calls' => [],
36387                                                                                                     'changed' => 0,
36388                                                                                                     'opcount' => 0,
36389                                                                                                     'prods' => [
36390                                                                                                                  bless( {
36391                                                                                                                           'number' => '0',
36392                                                                                                                           'strcount' => 0,
36393                                                                                                                           'dircount' => 0,
36394                                                                                                                           'uncommit' => undef,
36395                                                                                                                           'error' => undef,
36396                                                                                                                           'patcount' => 1,
36397                                                                                                                           'actcount' => 0,
36398                                                                                                                           'items' => [
36399                                                                                                                                        bless( {
36400                                                                                                                                                 'pattern' => 'DECIMAL',
36401                                                                                                                                                 'hashname' => '__PATTERN1__',
36402                                                                                                                                                 'description' => '/DECIMAL/i',
36403                                                                                                                                                 'lookahead' => 0,
36404                                                                                                                                                 'rdelim' => '/',
36405                                                                                                                                                 'line' => 628,
36406                                                                                                                                                 'mod' => 'i',
36407                                                                                                                                                 'ldelim' => '/'
36408                                                                                                                                               }, 'Parse::RecDescent::Token' )
36409                                                                                                                                      ],
36410                                                                                                                           'line' => undef
36411                                                                                                                         }, 'Parse::RecDescent::Production' ),
36412                                                                                                                  bless( {
36413                                                                                                                           'number' => '1',
36414                                                                                                                           'strcount' => 0,
36415                                                                                                                           'dircount' => 0,
36416                                                                                                                           'uncommit' => undef,
36417                                                                                                                           'error' => undef,
36418                                                                                                                           'patcount' => 1,
36419                                                                                                                           'actcount' => 0,
36420                                                                                                                           'items' => [
36421                                                                                                                                        bless( {
36422                                                                                                                                                 'pattern' => 'DEC',
36423                                                                                                                                                 'hashname' => '__PATTERN1__',
36424                                                                                                                                                 'description' => '/DEC/i',
36425                                                                                                                                                 'lookahead' => 0,
36426                                                                                                                                                 'rdelim' => '/',
36427                                                                                                                                                 'line' => 628,
36428                                                                                                                                                 'mod' => 'i',
36429                                                                                                                                                 'ldelim' => '/'
36430                                                                                                                                               }, 'Parse::RecDescent::Token' )
36431                                                                                                                                      ],
36432                                                                                                                           'line' => 628
36433                                                                                                                         }, 'Parse::RecDescent::Production' )
36434                                                                                                                ],
36435                                                                                                     'name' => '_alternation_1_of_production_17_of_rule_sysibm_function',
36436                                                                                                     'vars' => '',
36437                                                                                                     'line' => 628
36438                                                                                                   }, 'Parse::RecDescent::Rule' ),
36439                               'triggered_action' => bless( {
36440                                                              'impcount' => 0,
36441                                                              'calls' => [
36442                                                                           'when_clause',
36443                                                                           'SQL_procedure_statement'
36444                                                                         ],
36445                                                              'changed' => 0,
36446                                                              'opcount' => 0,
36447                                                              'prods' => [
36448                                                                           bless( {
36449                                                                                    'number' => '0',
36450                                                                                    'strcount' => 0,
36451                                                                                    'dircount' => 0,
36452                                                                                    'uncommit' => undef,
36453                                                                                    'error' => undef,
36454                                                                                    'patcount' => 0,
36455                                                                                    'actcount' => 1,
36456                                                                                    'items' => [
36457                                                                                                 bless( {
36458                                                                                                          'subrule' => 'when_clause',
36459                                                                                                          'expected' => undef,
36460                                                                                                          'min' => 0,
36461                                                                                                          'argcode' => undef,
36462                                                                                                          'max' => 1,
36463                                                                                                          'matchrule' => 0,
36464                                                                                                          'repspec' => '?',
36465                                                                                                          'lookahead' => 0,
36466                                                                                                          'line' => 263
36467                                                                                                        }, 'Parse::RecDescent::Repetition' ),
36468                                                                                                 bless( {
36469                                                                                                          'subrule' => 'SQL_procedure_statement',
36470                                                                                                          'matchrule' => 0,
36471                                                                                                          'implicit' => undef,
36472                                                                                                          'argcode' => undef,
36473                                                                                                          'lookahead' => 0,
36474                                                                                                          'line' => 263
36475                                                                                                        }, 'Parse::RecDescent::Subrule' ),
36476                                                                                                 bless( {
36477                                                                                                          'hashname' => '__ACTION1__',
36478                                                                                                          'lookahead' => 0,
36479                                                                                                          'line' => 264,
36480                                                                                                          'code' => '{ $return = { \'condition\' => $item[1][0],
36481               \'statement\' => $item{\'SQL_procedure_statement\'} };
36482 }'
36483                                                                                                        }, 'Parse::RecDescent::Action' )
36484                                                                                               ],
36485                                                                                    'line' => undef
36486                                                                                  }, 'Parse::RecDescent::Production' )
36487                                                                         ],
36488                                                              'name' => 'triggered_action',
36489                                                              'vars' => '',
36490                                                              'line' => 263
36491                                                            }, 'Parse::RecDescent::Rule' ),
36492                               '_alternation_1_of_production_2_of_rule_search_condition' => bless( {
36493                                                                                                     'impcount' => 0,
36494                                                                                                     'calls' => [
36495                                                                                                                  'predicate',
36496                                                                                                                  '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
36497                                                                                                                  'search_condition'
36498                                                                                                                ],
36499                                                                                                     'changed' => 0,
36500                                                                                                     'opcount' => 0,
36501                                                                                                     'prods' => [
36502                                                                                                                  bless( {
36503                                                                                                                           'number' => '0',
36504                                                                                                                           'strcount' => 0,
36505                                                                                                                           'dircount' => 0,
36506                                                                                                                           'uncommit' => undef,
36507                                                                                                                           'error' => undef,
36508                                                                                                                           'patcount' => 0,
36509                                                                                                                           'actcount' => 0,
36510                                                                                                                           'items' => [
36511                                                                                                                                        bless( {
36512                                                                                                                                                 'subrule' => 'predicate',
36513                                                                                                                                                 'matchrule' => 0,
36514                                                                                                                                                 'implicit' => undef,
36515                                                                                                                                                 'argcode' => undef,
36516                                                                                                                                                 'lookahead' => 0,
36517                                                                                                                                                 'line' => 628
36518                                                                                                                                               }, 'Parse::RecDescent::Subrule' ),
36519                                                                                                                                        bless( {
36520                                                                                                                                                 'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
36521                                                                                                                                                 'expected' => '/SELECTIVITY/i',
36522                                                                                                                                                 'min' => 0,
36523                                                                                                                                                 'argcode' => undef,
36524                                                                                                                                                 'max' => 1,
36525                                                                                                                                                 'matchrule' => 0,
36526                                                                                                                                                 'repspec' => '?',
36527                                                                                                                                                 'lookahead' => 0,
36528                                                                                                                                                 'line' => 628
36529                                                                                                                                               }, 'Parse::RecDescent::Repetition' )
36530                                                                                                                                      ],
36531                                                                                                                           'line' => undef
36532                                                                                                                         }, 'Parse::RecDescent::Production' ),
36533                                                                                                                  bless( {
36534                                                                                                                           'number' => '1',
36535                                                                                                                           'strcount' => 2,
36536                                                                                                                           'dircount' => 0,
36537                                                                                                                           'uncommit' => undef,
36538                                                                                                                           'error' => undef,
36539                                                                                                                           'patcount' => 0,
36540                                                                                                                           'actcount' => 0,
36541                                                                                                                           'items' => [
36542                                                                                                                                        bless( {
36543                                                                                                                                                 'pattern' => '(',
36544                                                                                                                                                 'hashname' => '__STRING1__',
36545                                                                                                                                                 'description' => '\'(\'',
36546                                                                                                                                                 'lookahead' => 0,
36547                                                                                                                                                 'line' => 628
36548                                                                                                                                               }, 'Parse::RecDescent::Literal' ),
36549                                                                                                                                        bless( {
36550                                                                                                                                                 'subrule' => 'search_condition',
36551                                                                                                                                                 'matchrule' => 0,
36552                                                                                                                                                 'implicit' => undef,
36553                                                                                                                                                 'argcode' => undef,
36554                                                                                                                                                 'lookahead' => 0,
36555                                                                                                                                                 'line' => 628
36556                                                                                                                                               }, 'Parse::RecDescent::Subrule' ),
36557                                                                                                                                        bless( {
36558                                                                                                                                                 'pattern' => ')',
36559                                                                                                                                                 'hashname' => '__STRING2__',
36560                                                                                                                                                 'description' => '\')\'',
36561                                                                                                                                                 'lookahead' => 0,
36562                                                                                                                                                 'line' => 628
36563                                                                                                                                               }, 'Parse::RecDescent::Literal' )
36564                                                                                                                                      ],
36565                                                                                                                           'line' => 628
36566                                                                                                                         }, 'Parse::RecDescent::Production' )
36567                                                                                                                ],
36568                                                                                                     'name' => '_alternation_1_of_production_2_of_rule_search_condition',
36569                                                                                                     'vars' => '',
36570                                                                                                     'line' => 628
36571                                                                                                   }, 'Parse::RecDescent::Rule' ),
36572                               'name1' => bless( {
36573                                                   'impcount' => 0,
36574                                                   'calls' => [
36575                                                                'NAME'
36576                                                              ],
36577                                                   'changed' => 0,
36578                                                   'opcount' => 0,
36579                                                   'prods' => [
36580                                                                bless( {
36581                                                                         'number' => '0',
36582                                                                         'strcount' => 0,
36583                                                                         'dircount' => 0,
36584                                                                         'uncommit' => undef,
36585                                                                         'error' => undef,
36586                                                                         'patcount' => 0,
36587                                                                         'actcount' => 0,
36588                                                                         'items' => [
36589                                                                                      bless( {
36590                                                                                               'subrule' => 'NAME',
36591                                                                                               'matchrule' => 0,
36592                                                                                               'implicit' => undef,
36593                                                                                               'argcode' => undef,
36594                                                                                               'lookahead' => 0,
36595                                                                                               'line' => 536
36596                                                                                             }, 'Parse::RecDescent::Subrule' )
36597                                                                                    ],
36598                                                                         'line' => undef
36599                                                                       }, 'Parse::RecDescent::Production' )
36600                                                              ],
36601                                                   'name' => 'name1',
36602                                                   'vars' => '',
36603                                                   'line' => 536
36604                                                 }, 'Parse::RecDescent::Rule' ),
36605                               '_alternation_2_of_production_1_of_rule_cond' => bless( {
36606                                                                                         'impcount' => 0,
36607                                                                                         'calls' => [
36608                                                                                                      'predicate',
36609                                                                                                      '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
36610                                                                                                      'search_condition'
36611                                                                                                    ],
36612                                                                                         'changed' => 0,
36613                                                                                         'opcount' => 0,
36614                                                                                         'prods' => [
36615                                                                                                      bless( {
36616                                                                                                               'number' => '0',
36617                                                                                                               'strcount' => 0,
36618                                                                                                               'dircount' => 0,
36619                                                                                                               'uncommit' => undef,
36620                                                                                                               'error' => undef,
36621                                                                                                               'patcount' => 0,
36622                                                                                                               'actcount' => 0,
36623                                                                                                               'items' => [
36624                                                                                                                            bless( {
36625                                                                                                                                     'subrule' => 'predicate',
36626                                                                                                                                     'matchrule' => 0,
36627                                                                                                                                     'implicit' => undef,
36628                                                                                                                                     'argcode' => undef,
36629                                                                                                                                     'lookahead' => 0,
36630                                                                                                                                     'line' => 628
36631                                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
36632                                                                                                                            bless( {
36633                                                                                                                                     'subrule' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
36634                                                                                                                                     'expected' => '/SELECTIVITY/i',
36635                                                                                                                                     'min' => 0,
36636                                                                                                                                     'argcode' => undef,
36637                                                                                                                                     'max' => 1,
36638                                                                                                                                     'matchrule' => 0,
36639                                                                                                                                     'repspec' => '?',
36640                                                                                                                                     'lookahead' => 0,
36641                                                                                                                                     'line' => 628
36642                                                                                                                                   }, 'Parse::RecDescent::Repetition' )
36643                                                                                                                          ],
36644                                                                                                               'line' => undef
36645                                                                                                             }, 'Parse::RecDescent::Production' ),
36646                                                                                                      bless( {
36647                                                                                                               'number' => '1',
36648                                                                                                               'strcount' => 2,
36649                                                                                                               'dircount' => 0,
36650                                                                                                               'uncommit' => undef,
36651                                                                                                               'error' => undef,
36652                                                                                                               'patcount' => 0,
36653                                                                                                               'actcount' => 0,
36654                                                                                                               'items' => [
36655                                                                                                                            bless( {
36656                                                                                                                                     'pattern' => '(',
36657                                                                                                                                     'hashname' => '__STRING1__',
36658                                                                                                                                     'description' => '\'(\'',
36659                                                                                                                                     'lookahead' => 0,
36660                                                                                                                                     'line' => 628
36661                                                                                                                                   }, 'Parse::RecDescent::Literal' ),
36662                                                                                                                            bless( {
36663                                                                                                                                     'subrule' => 'search_condition',
36664                                                                                                                                     'matchrule' => 0,
36665                                                                                                                                     'implicit' => undef,
36666                                                                                                                                     'argcode' => undef,
36667                                                                                                                                     'lookahead' => 0,
36668                                                                                                                                     'line' => 628
36669                                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
36670                                                                                                                            bless( {
36671                                                                                                                                     'pattern' => ')',
36672                                                                                                                                     'hashname' => '__STRING2__',
36673                                                                                                                                     'description' => '\')\'',
36674                                                                                                                                     'lookahead' => 0,
36675                                                                                                                                     'line' => 628
36676                                                                                                                                   }, 'Parse::RecDescent::Literal' )
36677                                                                                                                          ],
36678                                                                                                               'line' => 628
36679                                                                                                             }, 'Parse::RecDescent::Production' )
36680                                                                                                    ],
36681                                                                                         'name' => '_alternation_2_of_production_1_of_rule_cond',
36682                                                                                         'vars' => '',
36683                                                                                         'line' => 628
36684                                                                                       }, 'Parse::RecDescent::Rule' ),
36685                               '_alternation_1_of_production_1_of_rule_expression' => bless( {
36686                                                                                               'impcount' => 2,
36687                                                                                               'calls' => [
36688                                                                                                            '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36689                                                                                                            '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression'
36690                                                                                                          ],
36691                                                                                               'changed' => 0,
36692                                                                                               'opcount' => 0,
36693                                                                                               'prods' => [
36694                                                                                                            bless( {
36695                                                                                                                     'number' => '0',
36696                                                                                                                     'strcount' => 0,
36697                                                                                                                     'dircount' => 0,
36698                                                                                                                     'uncommit' => undef,
36699                                                                                                                     'error' => undef,
36700                                                                                                                     'patcount' => 0,
36701                                                                                                                     'actcount' => 0,
36702                                                                                                                     'items' => [
36703                                                                                                                                  bless( {
36704                                                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36705                                                                                                                                           'expected' => '\'+\', or \'-\'',
36706                                                                                                                                           'min' => 0,
36707                                                                                                                                           'argcode' => undef,
36708                                                                                                                                           'max' => 1,
36709                                                                                                                                           'matchrule' => 0,
36710                                                                                                                                           'repspec' => '?',
36711                                                                                                                                           'lookahead' => 0,
36712                                                                                                                                           'line' => 611
36713                                                                                                                                         }, 'Parse::RecDescent::Repetition' ),
36714                                                                                                                                  bless( {
36715                                                                                                                                           'subrule' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36716                                                                                                                                           'matchrule' => 0,
36717                                                                                                                                           'implicit' => 'function, or \'(\', or constant, or column_name, or host_variable, or special_register, or labeled_duration, or case_expression, or cast_specification, or OLAP_function, or method_invocation, or subtype_treatment, or sequence_reference',
36718                                                                                                                                           'argcode' => undef,
36719                                                                                                                                           'lookahead' => 0,
36720                                                                                                                                           'line' => 627
36721                                                                                                                                         }, 'Parse::RecDescent::Subrule' )
36722                                                                                                                                ],
36723                                                                                                                     'line' => undef
36724                                                                                                                   }, 'Parse::RecDescent::Production' )
36725                                                                                                          ],
36726                                                                                               'name' => '_alternation_1_of_production_1_of_rule_expression',
36727                                                                                               'vars' => '',
36728                                                                                               'line' => 608
36729                                                                                             }, 'Parse::RecDescent::Rule' ),
36730                               'SCHEMA' => bless( {
36731                                                    'impcount' => 0,
36732                                                    'calls' => [],
36733                                                    'changed' => 0,
36734                                                    'opcount' => 0,
36735                                                    'prods' => [
36736                                                                 bless( {
36737                                                                          'number' => '0',
36738                                                                          'strcount' => 0,
36739                                                                          'dircount' => 0,
36740                                                                          'uncommit' => undef,
36741                                                                          'error' => undef,
36742                                                                          'patcount' => 1,
36743                                                                          'actcount' => 0,
36744                                                                          'items' => [
36745                                                                                       bless( {
36746                                                                                                'pattern' => '\\w+',
36747                                                                                                'hashname' => '__PATTERN1__',
36748                                                                                                'description' => '/\\\\w+/',
36749                                                                                                'lookahead' => 0,
36750                                                                                                'rdelim' => '/',
36751                                                                                                'line' => 142,
36752                                                                                                'mod' => '',
36753                                                                                                'ldelim' => '/'
36754                                                                                              }, 'Parse::RecDescent::Token' )
36755                                                                                     ],
36756                                                                          'line' => undef
36757                                                                        }, 'Parse::RecDescent::Production' ),
36758                                                                 bless( {
36759                                                                          'number' => '1',
36760                                                                          'strcount' => 0,
36761                                                                          'dircount' => 0,
36762                                                                          'uncommit' => undef,
36763                                                                          'error' => undef,
36764                                                                          'patcount' => 1,
36765                                                                          'actcount' => 0,
36766                                                                          'items' => [
36767                                                                                       bless( {
36768                                                                                                'pattern' => '\\w{1,128}',
36769                                                                                                'hashname' => '__PATTERN1__',
36770                                                                                                'description' => '/\\\\w\\{1,128\\}/',
36771                                                                                                'lookahead' => 0,
36772                                                                                                'rdelim' => '/',
36773                                                                                                'line' => 144,
36774                                                                                                'mod' => '',
36775                                                                                                'ldelim' => '/'
36776                                                                                              }, 'Parse::RecDescent::Token' )
36777                                                                                     ],
36778                                                                          'line' => undef
36779                                                                        }, 'Parse::RecDescent::Production' )
36780                                                               ],
36781                                                    'name' => 'SCHEMA',
36782                                                    'vars' => '',
36783                                                    'line' => 142
36784                                                  }, 'Parse::RecDescent::Rule' ),
36785                               '_alternation_1_of_production_87_of_rule_sysibm_function' => bless( {
36786                                                                                                     'impcount' => 0,
36787                                                                                                     'calls' => [],
36788                                                                                                     'changed' => 0,
36789                                                                                                     'opcount' => 0,
36790                                                                                                     'prods' => [
36791                                                                                                                  bless( {
36792                                                                                                                           'number' => '0',
36793                                                                                                                           'strcount' => 0,
36794                                                                                                                           'dircount' => 0,
36795                                                                                                                           'uncommit' => undef,
36796                                                                                                                           'error' => undef,
36797                                                                                                                           'patcount' => 1,
36798                                                                                                                           'actcount' => 0,
36799                                                                                                                           'items' => [
36800                                                                                                                                        bless( {
36801                                                                                                                                                 'pattern' => 'VARIANCE',
36802                                                                                                                                                 'hashname' => '__PATTERN1__',
36803                                                                                                                                                 'description' => '/VARIANCE/i',
36804                                                                                                                                                 'lookahead' => 0,
36805                                                                                                                                                 'rdelim' => '/',
36806                                                                                                                                                 'line' => 628,
36807                                                                                                                                                 'mod' => 'i',
36808                                                                                                                                                 'ldelim' => '/'
36809                                                                                                                                               }, 'Parse::RecDescent::Token' )
36810                                                                                                                                      ],
36811                                                                                                                           'line' => undef
36812                                                                                                                         }, 'Parse::RecDescent::Production' ),
36813                                                                                                                  bless( {
36814                                                                                                                           'number' => '1',
36815                                                                                                                           'strcount' => 0,
36816                                                                                                                           'dircount' => 0,
36817                                                                                                                           'uncommit' => undef,
36818                                                                                                                           'error' => undef,
36819                                                                                                                           'patcount' => 1,
36820                                                                                                                           'actcount' => 0,
36821                                                                                                                           'items' => [
36822                                                                                                                                        bless( {
36823                                                                                                                                                 'pattern' => 'VAR',
36824                                                                                                                                                 'hashname' => '__PATTERN1__',
36825                                                                                                                                                 'description' => '/VAR/i',
36826                                                                                                                                                 'lookahead' => 0,
36827                                                                                                                                                 'rdelim' => '/',
36828                                                                                                                                                 'line' => 628,
36829                                                                                                                                                 'mod' => 'i',
36830                                                                                                                                                 'ldelim' => '/'
36831                                                                                                                                               }, 'Parse::RecDescent::Token' )
36832                                                                                                                                      ],
36833                                                                                                                           'line' => 628
36834                                                                                                                         }, 'Parse::RecDescent::Production' )
36835                                                                                                                ],
36836                                                                                                     'name' => '_alternation_1_of_production_87_of_rule_sysibm_function',
36837                                                                                                     'vars' => '',
36838                                                                                                     'line' => 628
36839                                                                                                   }, 'Parse::RecDescent::Rule' ),
36840                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless( {
36841                                                                                                                                      'impcount' => 0,
36842                                                                                                                                      'calls' => [],
36843                                                                                                                                      'changed' => 0,
36844                                                                                                                                      'opcount' => 0,
36845                                                                                                                                      'prods' => [
36846                                                                                                                                                   bless( {
36847                                                                                                                                                            'number' => '0',
36848                                                                                                                                                            'strcount' => 1,
36849                                                                                                                                                            'dircount' => 0,
36850                                                                                                                                                            'uncommit' => undef,
36851                                                                                                                                                            'error' => undef,
36852                                                                                                                                                            'patcount' => 0,
36853                                                                                                                                                            'actcount' => 0,
36854                                                                                                                                                            'items' => [
36855                                                                                                                                                                         bless( {
36856                                                                                                                                                                                  'pattern' => '+',
36857                                                                                                                                                                                  'hashname' => '__STRING1__',
36858                                                                                                                                                                                  'description' => '\'+\'',
36859                                                                                                                                                                                  'lookahead' => 0,
36860                                                                                                                                                                                  'line' => 626
36861                                                                                                                                                                                }, 'Parse::RecDescent::Literal' )
36862                                                                                                                                                                       ],
36863                                                                                                                                                            'line' => undef
36864                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
36865                                                                                                                                                   bless( {
36866                                                                                                                                                            'number' => '1',
36867                                                                                                                                                            'strcount' => 1,
36868                                                                                                                                                            'dircount' => 0,
36869                                                                                                                                                            'uncommit' => undef,
36870                                                                                                                                                            'error' => undef,
36871                                                                                                                                                            'patcount' => 0,
36872                                                                                                                                                            'actcount' => 0,
36873                                                                                                                                                            'items' => [
36874                                                                                                                                                                         bless( {
36875                                                                                                                                                                                  'pattern' => '-',
36876                                                                                                                                                                                  'hashname' => '__STRING1__',
36877                                                                                                                                                                                  'description' => '\'-\'',
36878                                                                                                                                                                                  'lookahead' => 0,
36879                                                                                                                                                                                  'line' => 627
36880                                                                                                                                                                                }, 'Parse::RecDescent::Literal' )
36881                                                                                                                                                                       ],
36882                                                                                                                                                            'line' => 627
36883                                                                                                                                                          }, 'Parse::RecDescent::Production' )
36884                                                                                                                                                 ],
36885                                                                                                                                      'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
36886                                                                                                                                      'vars' => '',
36887                                                                                                                                      'line' => 626
36888                                                                                                                                    }, 'Parse::RecDescent::Rule' ),
36889                               'get_bracketed' => bless( {
36890                                                           'impcount' => 0,
36891                                                           'calls' => [],
36892                                                           'changed' => 0,
36893                                                           'opcount' => 0,
36894                                                           'prods' => [
36895                                                                        bless( {
36896                                                                                 'number' => '0',
36897                                                                                 'strcount' => 0,
36898                                                                                 'dircount' => 0,
36899                                                                                 'uncommit' => undef,
36900                                                                                 'error' => undef,
36901                                                                                 'patcount' => 0,
36902                                                                                 'actcount' => 1,
36903                                                                                 'items' => [
36904                                                                                              bless( {
36905                                                                                                       'hashname' => '__ACTION1__',
36906                                                                                                       'lookahead' => 0,
36907                                                                                                       'line' => 170,
36908                                                                                                       'code' => '{
36909     extract_bracketed($text, \'(\');
36910 }'
36911                                                                                                     }, 'Parse::RecDescent::Action' )
36912                                                                                            ],
36913                                                                                 'line' => undef
36914                                                                               }, 'Parse::RecDescent::Production' )
36915                                                                      ],
36916                                                           'name' => 'get_bracketed',
36917                                                           'vars' => '',
36918                                                           'line' => 169
36919                                                         }, 'Parse::RecDescent::Rule' ),
36920                               'labeled_duration' => bless( {
36921                                                              'impcount' => 0,
36922                                                              'calls' => [
36923                                                                           'ld_type',
36924                                                                           'ld_duration'
36925                                                                         ],
36926                                                              'changed' => 0,
36927                                                              'opcount' => 0,
36928                                                              'prods' => [
36929                                                                           bless( {
36930                                                                                    'number' => '0',
36931                                                                                    'strcount' => 0,
36932                                                                                    'dircount' => 0,
36933                                                                                    'uncommit' => undef,
36934                                                                                    'error' => undef,
36935                                                                                    'patcount' => 0,
36936                                                                                    'actcount' => 0,
36937                                                                                    'items' => [
36938                                                                                                 bless( {
36939                                                                                                          'subrule' => 'ld_type',
36940                                                                                                          'matchrule' => 0,
36941                                                                                                          'implicit' => undef,
36942                                                                                                          'argcode' => undef,
36943                                                                                                          'lookahead' => 0,
36944                                                                                                          'line' => 480
36945                                                                                                        }, 'Parse::RecDescent::Subrule' ),
36946                                                                                                 bless( {
36947                                                                                                          'subrule' => 'ld_duration',
36948                                                                                                          'matchrule' => 0,
36949                                                                                                          'implicit' => undef,
36950                                                                                                          'argcode' => undef,
36951                                                                                                          'lookahead' => 0,
36952                                                                                                          'line' => 480
36953                                                                                                        }, 'Parse::RecDescent::Subrule' )
36954                                                                                               ],
36955                                                                                    'line' => undef
36956                                                                                  }, 'Parse::RecDescent::Production' )
36957                                                                         ],
36958                                                              'name' => 'labeled_duration',
36959                                                              'vars' => '',
36960                                                              'line' => 480
36961                                                            }, 'Parse::RecDescent::Rule' ),
36962                               'group_end' => bless( {
36963                                                       'impcount' => 0,
36964                                                       'calls' => [
36965                                                                    'unsigned_constant'
36966                                                                  ],
36967                                                       'changed' => 0,
36968                                                       'opcount' => 0,
36969                                                       'prods' => [
36970                                                                    bless( {
36971                                                                             'number' => '0',
36972                                                                             'strcount' => 0,
36973                                                                             'dircount' => 0,
36974                                                                             'uncommit' => undef,
36975                                                                             'error' => undef,
36976                                                                             'patcount' => 1,
36977                                                                             'actcount' => 0,
36978                                                                             'items' => [
36979                                                                                          bless( {
36980                                                                                                   'pattern' => 'UNBOUNDED\\s+PRECEDING',
36981                                                                                                   'hashname' => '__PATTERN1__',
36982                                                                                                   'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
36983                                                                                                   'lookahead' => 0,
36984                                                                                                   'rdelim' => '/',
36985                                                                                                   'line' => 590,
36986                                                                                                   'mod' => 'i',
36987                                                                                                   'ldelim' => '/'
36988                                                                                                 }, 'Parse::RecDescent::Token' )
36989                                                                                        ],
36990                                                                             'line' => undef
36991                                                                           }, 'Parse::RecDescent::Production' ),
36992                                                                    bless( {
36993                                                                             'number' => '1',
36994                                                                             'strcount' => 0,
36995                                                                             'dircount' => 0,
36996                                                                             'uncommit' => undef,
36997                                                                             'error' => undef,
36998                                                                             'patcount' => 1,
36999                                                                             'actcount' => 0,
37000                                                                             'items' => [
37001                                                                                          bless( {
37002                                                                                                   'subrule' => 'unsigned_constant',
37003                                                                                                   'matchrule' => 0,
37004                                                                                                   'implicit' => undef,
37005                                                                                                   'argcode' => undef,
37006                                                                                                   'lookahead' => 0,
37007                                                                                                   'line' => 591
37008                                                                                                 }, 'Parse::RecDescent::Subrule' ),
37009                                                                                          bless( {
37010                                                                                                   'pattern' => 'FOLLOWING',
37011                                                                                                   'hashname' => '__PATTERN1__',
37012                                                                                                   'description' => '/FOLLOWING/i',
37013                                                                                                   'lookahead' => 0,
37014                                                                                                   'rdelim' => '/',
37015                                                                                                   'line' => 591,
37016                                                                                                   'mod' => 'i',
37017                                                                                                   'ldelim' => '/'
37018                                                                                                 }, 'Parse::RecDescent::Token' )
37019                                                                                        ],
37020                                                                             'line' => 591
37021                                                                           }, 'Parse::RecDescent::Production' )
37022                                                                  ],
37023                                                       'name' => 'group_end',
37024                                                       'vars' => '',
37025                                                       'line' => 590
37026                                                     }, 'Parse::RecDescent::Rule' ),
37027                               'statement' => bless( {
37028                                                       'impcount' => 0,
37029                                                       'calls' => [
37030                                                                    'comment',
37031                                                                    'create'
37032                                                                  ],
37033                                                       'changed' => 0,
37034                                                       'opcount' => 0,
37035                                                       'prods' => [
37036                                                                    bless( {
37037                                                                             'number' => '0',
37038                                                                             'strcount' => 0,
37039                                                                             'dircount' => 0,
37040                                                                             'uncommit' => undef,
37041                                                                             'error' => undef,
37042                                                                             'patcount' => 0,
37043                                                                             'actcount' => 0,
37044                                                                             'items' => [
37045                                                                                          bless( {
37046                                                                                                   'subrule' => 'comment',
37047                                                                                                   'matchrule' => 0,
37048                                                                                                   'implicit' => undef,
37049                                                                                                   'argcode' => undef,
37050                                                                                                   'lookahead' => 0,
37051                                                                                                   'line' => 23
37052                                                                                                 }, 'Parse::RecDescent::Subrule' )
37053                                                                                        ],
37054                                                                             'line' => undef
37055                                                                           }, 'Parse::RecDescent::Production' ),
37056                                                                    bless( {
37057                                                                             'number' => '1',
37058                                                                             'strcount' => 0,
37059                                                                             'dircount' => 0,
37060                                                                             'uncommit' => undef,
37061                                                                             'error' => undef,
37062                                                                             'patcount' => 0,
37063                                                                             'actcount' => 0,
37064                                                                             'items' => [
37065                                                                                          bless( {
37066                                                                                                   'subrule' => 'create',
37067                                                                                                   'matchrule' => 0,
37068                                                                                                   'implicit' => undef,
37069                                                                                                   'argcode' => undef,
37070                                                                                                   'lookahead' => 0,
37071                                                                                                   'line' => 24
37072                                                                                                 }, 'Parse::RecDescent::Subrule' )
37073                                                                                        ],
37074                                                                             'line' => 24
37075                                                                           }, 'Parse::RecDescent::Production' ),
37076                                                                    bless( {
37077                                                                             'number' => '2',
37078                                                                             'strcount' => 0,
37079                                                                             'dircount' => 1,
37080                                                                             'uncommit' => 0,
37081                                                                             'error' => 1,
37082                                                                             'patcount' => 0,
37083                                                                             'actcount' => 0,
37084                                                                             'items' => [
37085                                                                                          bless( {
37086                                                                                                   'msg' => '',
37087                                                                                                   'hashname' => '__DIRECTIVE1__',
37088                                                                                                   'commitonly' => '',
37089                                                                                                   'lookahead' => 0,
37090                                                                                                   'line' => 25
37091                                                                                                 }, 'Parse::RecDescent::Error' )
37092                                                                                        ],
37093                                                                             'line' => 25
37094                                                                           }, 'Parse::RecDescent::Production' )
37095                                                                  ],
37096                                                       'name' => 'statement',
37097                                                       'vars' => '',
37098                                                       'line' => 22
37099                                                     }, 'Parse::RecDescent::Rule' ),
37100                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause' => bless( {
37101                                                                                                                                              'impcount' => 0,
37102                                                                                                                                              'calls' => [
37103                                                                                                                                                           'result_expression'
37104                                                                                                                                                         ],
37105                                                                                                                                              'changed' => 0,
37106                                                                                                                                              'opcount' => 0,
37107                                                                                                                                              'prods' => [
37108                                                                                                                                                           bless( {
37109                                                                                                                                                                    'number' => '0',
37110                                                                                                                                                                    'strcount' => 0,
37111                                                                                                                                                                    'dircount' => 0,
37112                                                                                                                                                                    'uncommit' => undef,
37113                                                                                                                                                                    'error' => undef,
37114                                                                                                                                                                    'patcount' => 0,
37115                                                                                                                                                                    'actcount' => 0,
37116                                                                                                                                                                    'items' => [
37117                                                                                                                                                                                 bless( {
37118                                                                                                                                                                                          'subrule' => 'result_expression',
37119                                                                                                                                                                                          'matchrule' => 0,
37120                                                                                                                                                                                          'implicit' => undef,
37121                                                                                                                                                                                          'argcode' => undef,
37122                                                                                                                                                                                          'lookahead' => 0,
37123                                                                                                                                                                                          'line' => 626
37124                                                                                                                                                                                        }, 'Parse::RecDescent::Subrule' )
37125                                                                                                                                                                               ],
37126                                                                                                                                                                    'line' => undef
37127                                                                                                                                                                  }, 'Parse::RecDescent::Production' ),
37128                                                                                                                                                           bless( {
37129                                                                                                                                                                    'number' => '1',
37130                                                                                                                                                                    'strcount' => 0,
37131                                                                                                                                                                    'dircount' => 0,
37132                                                                                                                                                                    'uncommit' => undef,
37133                                                                                                                                                                    'error' => undef,
37134                                                                                                                                                                    'patcount' => 1,
37135                                                                                                                                                                    'actcount' => 0,
37136                                                                                                                                                                    'items' => [
37137                                                                                                                                                                                 bless( {
37138                                                                                                                                                                                          'pattern' => 'NULL',
37139                                                                                                                                                                                          'hashname' => '__PATTERN1__',
37140                                                                                                                                                                                          'description' => '/NULL/i',
37141                                                                                                                                                                                          'lookahead' => 0,
37142                                                                                                                                                                                          'rdelim' => '/',
37143                                                                                                                                                                                          'line' => 627,
37144                                                                                                                                                                                          'mod' => 'i',
37145                                                                                                                                                                                          'ldelim' => '/'
37146                                                                                                                                                                                        }, 'Parse::RecDescent::Token' )
37147                                                                                                                                                                               ],
37148                                                                                                                                                                    'line' => 627
37149                                                                                                                                                                  }, 'Parse::RecDescent::Production' )
37150                                                                                                                                                         ],
37151                                                                                                                                              'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
37152                                                                                                                                              'vars' => '',
37153                                                                                                                                              'line' => 626
37154                                                                                                                                            }, 'Parse::RecDescent::Rule' ),
37155                               '_alternation_2_of_production_1_of_rule_case_expression' => bless( {
37156                                                                                                    'impcount' => 0,
37157                                                                                                    'calls' => [
37158                                                                                                                 'result_expression'
37159                                                                                                               ],
37160                                                                                                    'changed' => 0,
37161                                                                                                    'opcount' => 0,
37162                                                                                                    'prods' => [
37163                                                                                                                 bless( {
37164                                                                                                                          'number' => '0',
37165                                                                                                                          'strcount' => 0,
37166                                                                                                                          'dircount' => 0,
37167                                                                                                                          'uncommit' => undef,
37168                                                                                                                          'error' => undef,
37169                                                                                                                          'patcount' => 1,
37170                                                                                                                          'actcount' => 0,
37171                                                                                                                          'items' => [
37172                                                                                                                                       bless( {
37173                                                                                                                                                'pattern' => 'ELSE\\s+NULL',
37174                                                                                                                                                'hashname' => '__PATTERN1__',
37175                                                                                                                                                'description' => '/ELSE\\\\s+NULL/i',
37176                                                                                                                                                'lookahead' => 0,
37177                                                                                                                                                'rdelim' => '/',
37178                                                                                                                                                'line' => 626,
37179                                                                                                                                                'mod' => 'i',
37180                                                                                                                                                'ldelim' => '/'
37181                                                                                                                                              }, 'Parse::RecDescent::Token' )
37182                                                                                                                                     ],
37183                                                                                                                          'line' => undef
37184                                                                                                                        }, 'Parse::RecDescent::Production' ),
37185                                                                                                                 bless( {
37186                                                                                                                          'number' => '1',
37187                                                                                                                          'strcount' => 0,
37188                                                                                                                          'dircount' => 0,
37189                                                                                                                          'uncommit' => undef,
37190                                                                                                                          'error' => undef,
37191                                                                                                                          'patcount' => 1,
37192                                                                                                                          'actcount' => 0,
37193                                                                                                                          'items' => [
37194                                                                                                                                       bless( {
37195                                                                                                                                                'pattern' => 'ELSE',
37196                                                                                                                                                'hashname' => '__PATTERN1__',
37197                                                                                                                                                'description' => '/ELSE/i',
37198                                                                                                                                                'lookahead' => 0,
37199                                                                                                                                                'rdelim' => '/',
37200                                                                                                                                                'line' => 627,
37201                                                                                                                                                'mod' => 'i',
37202                                                                                                                                                'ldelim' => '/'
37203                                                                                                                                              }, 'Parse::RecDescent::Token' ),
37204                                                                                                                                       bless( {
37205                                                                                                                                                'subrule' => 'result_expression',
37206                                                                                                                                                'matchrule' => 0,
37207                                                                                                                                                'implicit' => undef,
37208                                                                                                                                                'argcode' => undef,
37209                                                                                                                                                'lookahead' => 0,
37210                                                                                                                                                'line' => 627
37211                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
37212                                                                                                                                     ],
37213                                                                                                                          'line' => 627
37214                                                                                                                        }, 'Parse::RecDescent::Production' )
37215                                                                                                               ],
37216                                                                                                    'name' => '_alternation_2_of_production_1_of_rule_case_expression',
37217                                                                                                    'vars' => '',
37218                                                                                                    'line' => 626
37219                                                                                                  }, 'Parse::RecDescent::Rule' ),
37220                               'subject_expression' => bless( {
37221                                                                'impcount' => 0,
37222                                                                'calls' => [
37223                                                                             'expression'
37224                                                                           ],
37225                                                                'changed' => 0,
37226                                                                'opcount' => 0,
37227                                                                'prods' => [
37228                                                                             bless( {
37229                                                                                      'number' => '0',
37230                                                                                      'strcount' => 0,
37231                                                                                      'dircount' => 0,
37232                                                                                      'uncommit' => undef,
37233                                                                                      'error' => undef,
37234                                                                                      'patcount' => 0,
37235                                                                                      'actcount' => 1,
37236                                                                                      'items' => [
37237                                                                                                   bless( {
37238                                                                                                            'subrule' => 'expression',
37239                                                                                                            'matchrule' => 0,
37240                                                                                                            'implicit' => undef,
37241                                                                                                            'argcode' => undef,
37242                                                                                                            'lookahead' => 0,
37243                                                                                                            'line' => 598
37244                                                                                                          }, 'Parse::RecDescent::Subrule' ),
37245                                                                                                   bless( {
37246                                                                                                            'hashname' => '__ACTION1__',
37247                                                                                                            'lookahead' => 0,
37248                                                                                                            'line' => 599,
37249                                                                                                            'code' => '{ # with static result type that is a used-defined struct type
37250 }'
37251                                                                                                          }, 'Parse::RecDescent::Action' )
37252                                                                                                 ],
37253                                                                                      'line' => undef
37254                                                                                    }, 'Parse::RecDescent::Production' )
37255                                                                           ],
37256                                                                'name' => 'subject_expression',
37257                                                                'vars' => '',
37258                                                                'line' => 598
37259                                                              }, 'Parse::RecDescent::Rule' ),
37260                               '_alternation_1_of_production_1_of_rule_desc_option' => bless( {
37261                                                                                                'impcount' => 0,
37262                                                                                                'calls' => [],
37263                                                                                                'changed' => 0,
37264                                                                                                'opcount' => 0,
37265                                                                                                'prods' => [
37266                                                                                                             bless( {
37267                                                                                                                      'number' => '0',
37268                                                                                                                      'strcount' => 0,
37269                                                                                                                      'dircount' => 0,
37270                                                                                                                      'uncommit' => undef,
37271                                                                                                                      'error' => undef,
37272                                                                                                                      'patcount' => 1,
37273                                                                                                                      'actcount' => 0,
37274                                                                                                                      'items' => [
37275                                                                                                                                   bless( {
37276                                                                                                                                            'pattern' => 'NULLS\\s+FIRST',
37277                                                                                                                                            'hashname' => '__PATTERN1__',
37278                                                                                                                                            'description' => '/NULLS\\\\s+FIRST/i',
37279                                                                                                                                            'lookahead' => 0,
37280                                                                                                                                            'rdelim' => '/',
37281                                                                                                                                            'line' => 628,
37282                                                                                                                                            'mod' => 'i',
37283                                                                                                                                            'ldelim' => '/'
37284                                                                                                                                          }, 'Parse::RecDescent::Token' )
37285                                                                                                                                 ],
37286                                                                                                                      'line' => undef
37287                                                                                                                    }, 'Parse::RecDescent::Production' ),
37288                                                                                                             bless( {
37289                                                                                                                      'number' => '1',
37290                                                                                                                      'strcount' => 0,
37291                                                                                                                      'dircount' => 0,
37292                                                                                                                      'uncommit' => undef,
37293                                                                                                                      'error' => undef,
37294                                                                                                                      'patcount' => 1,
37295                                                                                                                      'actcount' => 0,
37296                                                                                                                      'items' => [
37297                                                                                                                                   bless( {
37298                                                                                                                                            'pattern' => 'NULLS\\s+LAST',
37299                                                                                                                                            'hashname' => '__PATTERN1__',
37300                                                                                                                                            'description' => '/NULLS\\\\s+LAST/i',
37301                                                                                                                                            'lookahead' => 0,
37302                                                                                                                                            'rdelim' => '/',
37303                                                                                                                                            'line' => 628,
37304                                                                                                                                            'mod' => 'i',
37305                                                                                                                                            'ldelim' => '/'
37306                                                                                                                                          }, 'Parse::RecDescent::Token' )
37307                                                                                                                                 ],
37308                                                                                                                      'line' => 628
37309                                                                                                                    }, 'Parse::RecDescent::Production' )
37310                                                                                                           ],
37311                                                                                                'name' => '_alternation_1_of_production_1_of_rule_desc_option',
37312                                                                                                'vars' => '',
37313                                                                                                'line' => 628
37314                                                                                              }, 'Parse::RecDescent::Rule' ),
37315                               'view_name' => bless( {
37316                                                       'impcount' => 0,
37317                                                       'calls' => [
37318                                                                    'SCHEMA',
37319                                                                    'NAME'
37320                                                                  ],
37321                                                       'changed' => 0,
37322                                                       'opcount' => 0,
37323                                                       'prods' => [
37324                                                                    bless( {
37325                                                                             'number' => '0',
37326                                                                             'strcount' => 1,
37327                                                                             'dircount' => 0,
37328                                                                             'uncommit' => undef,
37329                                                                             'error' => undef,
37330                                                                             'patcount' => 0,
37331                                                                             'actcount' => 1,
37332                                                                             'items' => [
37333                                                                                          bless( {
37334                                                                                                   'subrule' => 'SCHEMA',
37335                                                                                                   'matchrule' => 0,
37336                                                                                                   'implicit' => undef,
37337                                                                                                   'argcode' => undef,
37338                                                                                                   'lookahead' => 0,
37339                                                                                                   'line' => 129
37340                                                                                                 }, 'Parse::RecDescent::Subrule' ),
37341                                                                                          bless( {
37342                                                                                                   'pattern' => '.',
37343                                                                                                   'hashname' => '__STRING1__',
37344                                                                                                   'description' => '\'.\'',
37345                                                                                                   'lookahead' => 0,
37346                                                                                                   'line' => 129
37347                                                                                                 }, 'Parse::RecDescent::Literal' ),
37348                                                                                          bless( {
37349                                                                                                   'subrule' => 'NAME',
37350                                                                                                   'matchrule' => 0,
37351                                                                                                   'implicit' => undef,
37352                                                                                                   'argcode' => undef,
37353                                                                                                   'lookahead' => 0,
37354                                                                                                   'line' => 129
37355                                                                                                 }, 'Parse::RecDescent::Subrule' ),
37356                                                                                          bless( {
37357                                                                                                   'hashname' => '__ACTION1__',
37358                                                                                                   'lookahead' => 0,
37359                                                                                                   'line' => 130,
37360                                                                                                   'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
37361                                                                                                 }, 'Parse::RecDescent::Action' )
37362                                                                                        ],
37363                                                                             'line' => undef
37364                                                                           }, 'Parse::RecDescent::Production' ),
37365                                                                    bless( {
37366                                                                             'number' => '1',
37367                                                                             'strcount' => 0,
37368                                                                             'dircount' => 0,
37369                                                                             'uncommit' => undef,
37370                                                                             'error' => undef,
37371                                                                             'patcount' => 0,
37372                                                                             'actcount' => 1,
37373                                                                             'items' => [
37374                                                                                          bless( {
37375                                                                                                   'subrule' => 'NAME',
37376                                                                                                   'matchrule' => 0,
37377                                                                                                   'implicit' => undef,
37378                                                                                                   'argcode' => undef,
37379                                                                                                   'lookahead' => 0,
37380                                                                                                   'line' => 131
37381                                                                                                 }, 'Parse::RecDescent::Subrule' ),
37382                                                                                          bless( {
37383                                                                                                   'hashname' => '__ACTION1__',
37384                                                                                                   'lookahead' => 0,
37385                                                                                                   'line' => 132,
37386                                                                                                   'code' => '{ $return = { name => $item[1] } }'
37387                                                                                                 }, 'Parse::RecDescent::Action' )
37388                                                                                        ],
37389                                                                             'line' => 131
37390                                                                           }, 'Parse::RecDescent::Production' )
37391                                                                  ],
37392                                                       'name' => 'view_name',
37393                                                       'vars' => '',
37394                                                       'line' => 129
37395                                                     }, 'Parse::RecDescent::Rule' ),
37396                               '_alternation_1_of_production_1_of_rule_cond' => bless( {
37397                                                                                         'impcount' => 0,
37398                                                                                         'calls' => [],
37399                                                                                         'changed' => 0,
37400                                                                                         'opcount' => 0,
37401                                                                                         'prods' => [
37402                                                                                                      bless( {
37403                                                                                                               'number' => '0',
37404                                                                                                               'strcount' => 0,
37405                                                                                                               'dircount' => 0,
37406                                                                                                               'uncommit' => undef,
37407                                                                                                               'error' => undef,
37408                                                                                                               'patcount' => 1,
37409                                                                                                               'actcount' => 0,
37410                                                                                                               'items' => [
37411                                                                                                                            bless( {
37412                                                                                                                                     'pattern' => 'AND',
37413                                                                                                                                     'hashname' => '__PATTERN1__',
37414                                                                                                                                     'description' => '/AND/i',
37415                                                                                                                                     'lookahead' => 0,
37416                                                                                                                                     'rdelim' => '/',
37417                                                                                                                                     'line' => 628,
37418                                                                                                                                     'mod' => 'i',
37419                                                                                                                                     'ldelim' => '/'
37420                                                                                                                                   }, 'Parse::RecDescent::Token' )
37421                                                                                                                          ],
37422                                                                                                               'line' => undef
37423                                                                                                             }, 'Parse::RecDescent::Production' ),
37424                                                                                                      bless( {
37425                                                                                                               'number' => '1',
37426                                                                                                               'strcount' => 0,
37427                                                                                                               'dircount' => 0,
37428                                                                                                               'uncommit' => undef,
37429                                                                                                               'error' => undef,
37430                                                                                                               'patcount' => 1,
37431                                                                                                               'actcount' => 0,
37432                                                                                                               'items' => [
37433                                                                                                                            bless( {
37434                                                                                                                                     'pattern' => 'OR',
37435                                                                                                                                     'hashname' => '__PATTERN1__',
37436                                                                                                                                     'description' => '/OR/i',
37437                                                                                                                                     'lookahead' => 0,
37438                                                                                                                                     'rdelim' => '/',
37439                                                                                                                                     'line' => 628,
37440                                                                                                                                     'mod' => 'i',
37441                                                                                                                                     'ldelim' => '/'
37442                                                                                                                                   }, 'Parse::RecDescent::Token' )
37443                                                                                                                          ],
37444                                                                                                               'line' => 628
37445                                                                                                             }, 'Parse::RecDescent::Production' )
37446                                                                                                    ],
37447                                                                                         'name' => '_alternation_1_of_production_1_of_rule_cond',
37448                                                                                         'vars' => '',
37449                                                                                         'line' => 628
37450                                                                                       }, 'Parse::RecDescent::Rule' ),
37451                               'numbering_function' => bless( {
37452                                                                'impcount' => 2,
37453                                                                'calls' => [
37454                                                                             'window_partition_clause',
37455                                                                             '_alternation_1_of_production_1_of_rule_numbering_function',
37456                                                                             '_alternation_2_of_production_1_of_rule_numbering_function'
37457                                                                           ],
37458                                                                'changed' => 0,
37459                                                                'opcount' => 0,
37460                                                                'prods' => [
37461                                                                             bless( {
37462                                                                                      'number' => '0',
37463                                                                                      'strcount' => 3,
37464                                                                                      'dircount' => 0,
37465                                                                                      'uncommit' => undef,
37466                                                                                      'error' => undef,
37467                                                                                      'patcount' => 2,
37468                                                                                      'actcount' => 0,
37469                                                                                      'items' => [
37470                                                                                                   bless( {
37471                                                                                                            'pattern' => 'ROW_NUMBER|ROWNUMBER',
37472                                                                                                            'hashname' => '__PATTERN1__',
37473                                                                                                            'description' => '/ROW_NUMBER|ROWNUMBER/i',
37474                                                                                                            'lookahead' => 0,
37475                                                                                                            'rdelim' => '/',
37476                                                                                                            'line' => 546,
37477                                                                                                            'mod' => 'i',
37478                                                                                                            'ldelim' => '/'
37479                                                                                                          }, 'Parse::RecDescent::Token' ),
37480                                                                                                   bless( {
37481                                                                                                            'pattern' => '()',
37482                                                                                                            'hashname' => '__STRING1__',
37483                                                                                                            'description' => '\'()\'',
37484                                                                                                            'lookahead' => 0,
37485                                                                                                            'line' => 546
37486                                                                                                          }, 'Parse::RecDescent::Literal' ),
37487                                                                                                   bless( {
37488                                                                                                            'pattern' => 'OVER',
37489                                                                                                            'hashname' => '__PATTERN2__',
37490                                                                                                            'description' => '/OVER/i',
37491                                                                                                            'lookahead' => 0,
37492                                                                                                            'rdelim' => '/',
37493                                                                                                            'line' => 546,
37494                                                                                                            'mod' => 'i',
37495                                                                                                            'ldelim' => '/'
37496                                                                                                          }, 'Parse::RecDescent::Token' ),
37497                                                                                                   bless( {
37498                                                                                                            'pattern' => '(',
37499                                                                                                            'hashname' => '__STRING2__',
37500                                                                                                            'description' => '\'(\'',
37501                                                                                                            'lookahead' => 0,
37502                                                                                                            'line' => 546
37503                                                                                                          }, 'Parse::RecDescent::Literal' ),
37504                                                                                                   bless( {
37505                                                                                                            'subrule' => 'window_partition_clause',
37506                                                                                                            'expected' => undef,
37507                                                                                                            'min' => 0,
37508                                                                                                            'argcode' => undef,
37509                                                                                                            'max' => 1,
37510                                                                                                            'matchrule' => 0,
37511                                                                                                            'repspec' => '?',
37512                                                                                                            'lookahead' => 0,
37513                                                                                                            'line' => 546
37514                                                                                                          }, 'Parse::RecDescent::Repetition' ),
37515                                                                                                   bless( {
37516                                                                                                            'subrule' => '_alternation_1_of_production_1_of_rule_numbering_function',
37517                                                                                                            'expected' => 'window_order_clause',
37518                                                                                                            'min' => 0,
37519                                                                                                            'argcode' => undef,
37520                                                                                                            'max' => 1,
37521                                                                                                            'matchrule' => 0,
37522                                                                                                            'repspec' => '?',
37523                                                                                                            'lookahead' => 0,
37524                                                                                                            'line' => 548
37525                                                                                                          }, 'Parse::RecDescent::Repetition' ),
37526                                                                                                   bless( {
37527                                                                                                            'subrule' => '_alternation_2_of_production_1_of_rule_numbering_function',
37528                                                                                                            'expected' => '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i, or window_aggregation_group_clause',
37529                                                                                                            'min' => 0,
37530                                                                                                            'argcode' => undef,
37531                                                                                                            'max' => 1,
37532                                                                                                            'matchrule' => 0,
37533                                                                                                            'repspec' => '?',
37534                                                                                                            'lookahead' => 0,
37535                                                                                                            'line' => 551
37536                                                                                                          }, 'Parse::RecDescent::Repetition' ),
37537                                                                                                   bless( {
37538                                                                                                            'pattern' => ')',
37539                                                                                                            'hashname' => '__STRING3__',
37540                                                                                                            'description' => '\')\'',
37541                                                                                                            'lookahead' => 0,
37542                                                                                                            'line' => 551
37543                                                                                                          }, 'Parse::RecDescent::Literal' )
37544                                                                                                 ],
37545                                                                                      'line' => undef
37546                                                                                    }, 'Parse::RecDescent::Production' )
37547                                                                           ],
37548                                                                'name' => 'numbering_function',
37549                                                                'vars' => '',
37550                                                                'line' => 546
37551                                                              }, 'Parse::RecDescent::Rule' ),
37552                               '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause' => bless( {
37553                                                                                                                    'impcount' => 0,
37554                                                                                                                    'calls' => [],
37555                                                                                                                    'changed' => 0,
37556                                                                                                                    'opcount' => 0,
37557                                                                                                                    'prods' => [
37558                                                                                                                                 bless( {
37559                                                                                                                                          'number' => '0',
37560                                                                                                                                          'strcount' => 0,
37561                                                                                                                                          'dircount' => 0,
37562                                                                                                                                          'uncommit' => undef,
37563                                                                                                                                          'error' => undef,
37564                                                                                                                                          'patcount' => 1,
37565                                                                                                                                          'actcount' => 0,
37566                                                                                                                                          'items' => [
37567                                                                                                                                                       bless( {
37568                                                                                                                                                                'pattern' => 'ROWS',
37569                                                                                                                                                                'hashname' => '__PATTERN1__',
37570                                                                                                                                                                'description' => '/ROWS/i',
37571                                                                                                                                                                'lookahead' => 0,
37572                                                                                                                                                                'rdelim' => '/',
37573                                                                                                                                                                'line' => 626,
37574                                                                                                                                                                'mod' => 'i',
37575                                                                                                                                                                'ldelim' => '/'
37576                                                                                                                                                              }, 'Parse::RecDescent::Token' )
37577                                                                                                                                                     ],
37578                                                                                                                                          'line' => undef
37579                                                                                                                                        }, 'Parse::RecDescent::Production' ),
37580                                                                                                                                 bless( {
37581                                                                                                                                          'number' => '1',
37582                                                                                                                                          'strcount' => 0,
37583                                                                                                                                          'dircount' => 0,
37584                                                                                                                                          'uncommit' => undef,
37585                                                                                                                                          'error' => undef,
37586                                                                                                                                          'patcount' => 1,
37587                                                                                                                                          'actcount' => 0,
37588                                                                                                                                          'items' => [
37589                                                                                                                                                       bless( {
37590                                                                                                                                                                'pattern' => 'RANGE',
37591                                                                                                                                                                'hashname' => '__PATTERN1__',
37592                                                                                                                                                                'description' => '/RANGE/i',
37593                                                                                                                                                                'lookahead' => 0,
37594                                                                                                                                                                'rdelim' => '/',
37595                                                                                                                                                                'line' => 627,
37596                                                                                                                                                                'mod' => 'i',
37597                                                                                                                                                                'ldelim' => '/'
37598                                                                                                                                                              }, 'Parse::RecDescent::Token' )
37599                                                                                                                                                     ],
37600                                                                                                                                          'line' => 627
37601                                                                                                                                        }, 'Parse::RecDescent::Production' )
37602                                                                                                                               ],
37603                                                                                                                    'name' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
37604                                                                                                                    'vars' => '',
37605                                                                                                                    'line' => 626
37606                                                                                                                  }, 'Parse::RecDescent::Rule' ),
37607                               'group_bound1' => bless( {
37608                                                          'impcount' => 0,
37609                                                          'calls' => [
37610                                                                       'unsigned_constant'
37611                                                                     ],
37612                                                          'changed' => 0,
37613                                                          'opcount' => 0,
37614                                                          'prods' => [
37615                                                                       bless( {
37616                                                                                'number' => '0',
37617                                                                                'strcount' => 0,
37618                                                                                'dircount' => 0,
37619                                                                                'uncommit' => undef,
37620                                                                                'error' => undef,
37621                                                                                'patcount' => 1,
37622                                                                                'actcount' => 0,
37623                                                                                'items' => [
37624                                                                                             bless( {
37625                                                                                                      'pattern' => 'UNBOUNDED\\s+PRECEDING',
37626                                                                                                      'hashname' => '__PATTERN1__',
37627                                                                                                      'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
37628                                                                                                      'lookahead' => 0,
37629                                                                                                      'rdelim' => '/',
37630                                                                                                      'line' => 580,
37631                                                                                                      'mod' => 'i',
37632                                                                                                      'ldelim' => '/'
37633                                                                                                    }, 'Parse::RecDescent::Token' )
37634                                                                                           ],
37635                                                                                'line' => undef
37636                                                                              }, 'Parse::RecDescent::Production' ),
37637                                                                       bless( {
37638                                                                                'number' => '1',
37639                                                                                'strcount' => 0,
37640                                                                                'dircount' => 0,
37641                                                                                'uncommit' => undef,
37642                                                                                'error' => undef,
37643                                                                                'patcount' => 1,
37644                                                                                'actcount' => 0,
37645                                                                                'items' => [
37646                                                                                             bless( {
37647                                                                                                      'subrule' => 'unsigned_constant',
37648                                                                                                      'matchrule' => 0,
37649                                                                                                      'implicit' => undef,
37650                                                                                                      'argcode' => undef,
37651                                                                                                      'lookahead' => 0,
37652                                                                                                      'line' => 581
37653                                                                                                    }, 'Parse::RecDescent::Subrule' ),
37654                                                                                             bless( {
37655                                                                                                      'pattern' => 'PRECEDING',
37656                                                                                                      'hashname' => '__PATTERN1__',
37657                                                                                                      'description' => '/PRECEDING/i',
37658                                                                                                      'lookahead' => 0,
37659                                                                                                      'rdelim' => '/',
37660                                                                                                      'line' => 581,
37661                                                                                                      'mod' => 'i',
37662                                                                                                      'ldelim' => '/'
37663                                                                                                    }, 'Parse::RecDescent::Token' )
37664                                                                                           ],
37665                                                                                'line' => 581
37666                                                                              }, 'Parse::RecDescent::Production' ),
37667                                                                       bless( {
37668                                                                                'number' => '2',
37669                                                                                'strcount' => 0,
37670                                                                                'dircount' => 0,
37671                                                                                'uncommit' => undef,
37672                                                                                'error' => undef,
37673                                                                                'patcount' => 1,
37674                                                                                'actcount' => 0,
37675                                                                                'items' => [
37676                                                                                             bless( {
37677                                                                                                      'subrule' => 'unsigned_constant',
37678                                                                                                      'matchrule' => 0,
37679                                                                                                      'implicit' => undef,
37680                                                                                                      'argcode' => undef,
37681                                                                                                      'lookahead' => 0,
37682                                                                                                      'line' => 582
37683                                                                                                    }, 'Parse::RecDescent::Subrule' ),
37684                                                                                             bless( {
37685                                                                                                      'pattern' => 'FOLLOWING',
37686                                                                                                      'hashname' => '__PATTERN1__',
37687                                                                                                      'description' => '/FOLLOWING/i',
37688                                                                                                      'lookahead' => 0,
37689                                                                                                      'rdelim' => '/',
37690                                                                                                      'line' => 582,
37691                                                                                                      'mod' => 'i',
37692                                                                                                      'ldelim' => '/'
37693                                                                                                    }, 'Parse::RecDescent::Token' )
37694                                                                                           ],
37695                                                                                'line' => 582
37696                                                                              }, 'Parse::RecDescent::Production' ),
37697                                                                       bless( {
37698                                                                                'number' => '3',
37699                                                                                'strcount' => 0,
37700                                                                                'dircount' => 0,
37701                                                                                'uncommit' => undef,
37702                                                                                'error' => undef,
37703                                                                                'patcount' => 1,
37704                                                                                'actcount' => 0,
37705                                                                                'items' => [
37706                                                                                             bless( {
37707                                                                                                      'pattern' => 'CURRENT\\s+ROW',
37708                                                                                                      'hashname' => '__PATTERN1__',
37709                                                                                                      'description' => '/CURRENT\\\\s+ROW/i',
37710                                                                                                      'lookahead' => 0,
37711                                                                                                      'rdelim' => '/',
37712                                                                                                      'line' => 583,
37713                                                                                                      'mod' => 'i',
37714                                                                                                      'ldelim' => '/'
37715                                                                                                    }, 'Parse::RecDescent::Token' )
37716                                                                                           ],
37717                                                                                'line' => 583
37718                                                                              }, 'Parse::RecDescent::Production' )
37719                                                                     ],
37720                                                          'name' => 'group_bound1',
37721                                                          'vars' => '',
37722                                                          'line' => 580
37723                                                        }, 'Parse::RecDescent::Rule' ),
37724                               'OLAP_function' => bless( {
37725                                                           'impcount' => 0,
37726                                                           'calls' => [
37727                                                                        'ranking_function',
37728                                                                        'numbering_function',
37729                                                                        'aggregation_function'
37730                                                                      ],
37731                                                           'changed' => 0,
37732                                                           'opcount' => 0,
37733                                                           'prods' => [
37734                                                                        bless( {
37735                                                                                 'number' => '0',
37736                                                                                 'strcount' => 0,
37737                                                                                 'dircount' => 0,
37738                                                                                 'uncommit' => undef,
37739                                                                                 'error' => undef,
37740                                                                                 'patcount' => 0,
37741                                                                                 'actcount' => 0,
37742                                                                                 'items' => [
37743                                                                                              bless( {
37744                                                                                                       'subrule' => 'ranking_function',
37745                                                                                                       'matchrule' => 0,
37746                                                                                                       'implicit' => undef,
37747                                                                                                       'argcode' => undef,
37748                                                                                                       'lookahead' => 0,
37749                                                                                                       'line' => 538
37750                                                                                                     }, 'Parse::RecDescent::Subrule' )
37751                                                                                            ],
37752                                                                                 'line' => undef
37753                                                                               }, 'Parse::RecDescent::Production' ),
37754                                                                        bless( {
37755                                                                                 'number' => '1',
37756                                                                                 'strcount' => 0,
37757                                                                                 'dircount' => 0,
37758                                                                                 'uncommit' => undef,
37759                                                                                 'error' => undef,
37760                                                                                 'patcount' => 0,
37761                                                                                 'actcount' => 0,
37762                                                                                 'items' => [
37763                                                                                              bless( {
37764                                                                                                       'subrule' => 'numbering_function',
37765                                                                                                       'matchrule' => 0,
37766                                                                                                       'implicit' => undef,
37767                                                                                                       'argcode' => undef,
37768                                                                                                       'lookahead' => 0,
37769                                                                                                       'line' => 539
37770                                                                                                     }, 'Parse::RecDescent::Subrule' )
37771                                                                                            ],
37772                                                                                 'line' => 539
37773                                                                               }, 'Parse::RecDescent::Production' ),
37774                                                                        bless( {
37775                                                                                 'number' => '2',
37776                                                                                 'strcount' => 0,
37777                                                                                 'dircount' => 0,
37778                                                                                 'uncommit' => undef,
37779                                                                                 'error' => undef,
37780                                                                                 'patcount' => 0,
37781                                                                                 'actcount' => 0,
37782                                                                                 'items' => [
37783                                                                                              bless( {
37784                                                                                                       'subrule' => 'aggregation_function',
37785                                                                                                       'matchrule' => 0,
37786                                                                                                       'implicit' => undef,
37787                                                                                                       'argcode' => undef,
37788                                                                                                       'lookahead' => 0,
37789                                                                                                       'line' => 540
37790                                                                                                     }, 'Parse::RecDescent::Subrule' )
37791                                                                                            ],
37792                                                                                 'line' => 540
37793                                                                               }, 'Parse::RecDescent::Production' )
37794                                                                      ],
37795                                                           'name' => 'OLAP_function',
37796                                                           'vars' => '',
37797                                                           'line' => 538
37798                                                         }, 'Parse::RecDescent::Rule' ),
37799                               '_alternation_1_of_production_30_of_rule_sysibm_function' => bless( {
37800                                                                                                     'impcount' => 0,
37801                                                                                                     'calls' => [],
37802                                                                                                     'changed' => 0,
37803                                                                                                     'opcount' => 0,
37804                                                                                                     'prods' => [
37805                                                                                                                  bless( {
37806                                                                                                                           'number' => '0',
37807                                                                                                                           'strcount' => 0,
37808                                                                                                                           'dircount' => 0,
37809                                                                                                                           'uncommit' => undef,
37810                                                                                                                           'error' => undef,
37811                                                                                                                           'patcount' => 1,
37812                                                                                                                           'actcount' => 0,
37813                                                                                                                           'items' => [
37814                                                                                                                                        bless( {
37815                                                                                                                                                 'pattern' => 'DOUBLE',
37816                                                                                                                                                 'hashname' => '__PATTERN1__',
37817                                                                                                                                                 'description' => '/DOUBLE/i',
37818                                                                                                                                                 'lookahead' => 0,
37819                                                                                                                                                 'rdelim' => '/',
37820                                                                                                                                                 'line' => 628,
37821                                                                                                                                                 'mod' => 'i',
37822                                                                                                                                                 'ldelim' => '/'
37823                                                                                                                                               }, 'Parse::RecDescent::Token' )
37824                                                                                                                                      ],
37825                                                                                                                           'line' => undef
37826                                                                                                                         }, 'Parse::RecDescent::Production' ),
37827                                                                                                                  bless( {
37828                                                                                                                           'number' => '1',
37829                                                                                                                           'strcount' => 0,
37830                                                                                                                           'dircount' => 0,
37831                                                                                                                           'uncommit' => undef,
37832                                                                                                                           'error' => undef,
37833                                                                                                                           'patcount' => 1,
37834                                                                                                                           'actcount' => 0,
37835                                                                                                                           'items' => [
37836                                                                                                                                        bless( {
37837                                                                                                                                                 'pattern' => 'DOUBLE_PRECISION',
37838                                                                                                                                                 'hashname' => '__PATTERN1__',
37839                                                                                                                                                 'description' => '/DOUBLE_PRECISION/i',
37840                                                                                                                                                 'lookahead' => 0,
37841                                                                                                                                                 'rdelim' => '/',
37842                                                                                                                                                 'line' => 628,
37843                                                                                                                                                 'mod' => 'i',
37844                                                                                                                                                 'ldelim' => '/'
37845                                                                                                                                               }, 'Parse::RecDescent::Token' )
37846                                                                                                                                      ],
37847                                                                                                                           'line' => 628
37848                                                                                                                         }, 'Parse::RecDescent::Production' )
37849                                                                                                                ],
37850                                                                                                     'name' => '_alternation_1_of_production_30_of_rule_sysibm_function',
37851                                                                                                     'vars' => '',
37852                                                                                                     'line' => 628
37853                                                                                                   }, 'Parse::RecDescent::Rule' ),
37854                               'FULL' => bless( {
37855                                                  'impcount' => 0,
37856                                                  'calls' => [],
37857                                                  'changed' => 0,
37858                                                  'opcount' => 0,
37859                                                  'prods' => [
37860                                                               bless( {
37861                                                                        'number' => '0',
37862                                                                        'strcount' => 0,
37863                                                                        'dircount' => 0,
37864                                                                        'uncommit' => undef,
37865                                                                        'error' => undef,
37866                                                                        'patcount' => 1,
37867                                                                        'actcount' => 0,
37868                                                                        'items' => [
37869                                                                                     bless( {
37870                                                                                              'pattern' => 'full',
37871                                                                                              'hashname' => '__PATTERN1__',
37872                                                                                              'description' => '/full/i',
37873                                                                                              'lookahead' => 0,
37874                                                                                              'rdelim' => '/',
37875                                                                                              'line' => 113,
37876                                                                                              'mod' => 'i',
37877                                                                                              'ldelim' => '/'
37878                                                                                            }, 'Parse::RecDescent::Token' )
37879                                                                                   ],
37880                                                                        'line' => undef
37881                                                                      }, 'Parse::RecDescent::Production' )
37882                                                             ],
37883                                                  'name' => 'FULL',
37884                                                  'vars' => '',
37885                                                  'line' => 113
37886                                                }, 'Parse::RecDescent::Rule' ),
37887                               '_alternation_2_of_production_1_of_rule_cast_specification' => bless( {
37888                                                                                                       'impcount' => 1,
37889                                                                                                       'calls' => [
37890                                                                                                                    '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification'
37891                                                                                                                  ],
37892                                                                                                       'changed' => 0,
37893                                                                                                       'opcount' => 0,
37894                                                                                                       'prods' => [
37895                                                                                                                    bless( {
37896                                                                                                                             'number' => '0',
37897                                                                                                                             'strcount' => 0,
37898                                                                                                                             'dircount' => 0,
37899                                                                                                                             'uncommit' => undef,
37900                                                                                                                             'error' => undef,
37901                                                                                                                             'patcount' => 1,
37902                                                                                                                             'actcount' => 0,
37903                                                                                                                             'items' => [
37904                                                                                                                                          bless( {
37905                                                                                                                                                   'pattern' => 'SCOPE',
37906                                                                                                                                                   'hashname' => '__PATTERN1__',
37907                                                                                                                                                   'description' => '/SCOPE/',
37908                                                                                                                                                   'lookahead' => 0,
37909                                                                                                                                                   'rdelim' => '/',
37910                                                                                                                                                   'line' => 625,
37911                                                                                                                                                   'mod' => '',
37912                                                                                                                                                   'ldelim' => '/'
37913                                                                                                                                                 }, 'Parse::RecDescent::Token' ),
37914                                                                                                                                          bless( {
37915                                                                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
37916                                                                                                                                                   'matchrule' => 0,
37917                                                                                                                                                   'implicit' => 'typed_table_name, or typed_view_name',
37918                                                                                                                                                   'argcode' => undef,
37919                                                                                                                                                   'lookahead' => 0,
37920                                                                                                                                                   'line' => 627
37921                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
37922                                                                                                                                        ],
37923                                                                                                                             'line' => undef
37924                                                                                                                           }, 'Parse::RecDescent::Production' )
37925                                                                                                                  ],
37926                                                                                                       'name' => '_alternation_2_of_production_1_of_rule_cast_specification',
37927                                                                                                       'vars' => '',
37928                                                                                                       'line' => 625
37929                                                                                                     }, 'Parse::RecDescent::Rule' ),
37930                               'case_expression' => bless( {
37931                                                             'impcount' => 2,
37932                                                             'calls' => [
37933                                                                          '_alternation_1_of_production_1_of_rule_case_expression',
37934                                                                          '_alternation_2_of_production_1_of_rule_case_expression'
37935                                                                        ],
37936                                                             'changed' => 0,
37937                                                             'opcount' => 0,
37938                                                             'prods' => [
37939                                                                          bless( {
37940                                                                                   'number' => '0',
37941                                                                                   'strcount' => 0,
37942                                                                                   'dircount' => 0,
37943                                                                                   'uncommit' => undef,
37944                                                                                   'error' => undef,
37945                                                                                   'patcount' => 2,
37946                                                                                   'actcount' => 0,
37947                                                                                   'items' => [
37948                                                                                                bless( {
37949                                                                                                         'pattern' => 'CASE',
37950                                                                                                         'hashname' => '__PATTERN1__',
37951                                                                                                         'description' => '/CASE/i',
37952                                                                                                         'lookahead' => 0,
37953                                                                                                         'rdelim' => '/',
37954                                                                                                         'line' => 496,
37955                                                                                                         'mod' => 'i',
37956                                                                                                         'ldelim' => '/'
37957                                                                                                       }, 'Parse::RecDescent::Token' ),
37958                                                                                                bless( {
37959                                                                                                         'subrule' => '_alternation_1_of_production_1_of_rule_case_expression',
37960                                                                                                         'matchrule' => 0,
37961                                                                                                         'implicit' => 'searched_when_clause, or simple_when_clause',
37962                                                                                                         'argcode' => undef,
37963                                                                                                         'lookahead' => 0,
37964                                                                                                         'line' => 498
37965                                                                                                       }, 'Parse::RecDescent::Subrule' ),
37966                                                                                                bless( {
37967                                                                                                         'subrule' => '_alternation_2_of_production_1_of_rule_case_expression',
37968                                                                                                         'expected' => '/ELSE\\\\s+NULL/i, or /ELSE/i',
37969                                                                                                         'min' => 0,
37970                                                                                                         'argcode' => undef,
37971                                                                                                         'max' => 1,
37972                                                                                                         'matchrule' => 0,
37973                                                                                                         'repspec' => '?',
37974                                                                                                         'lookahead' => 0,
37975                                                                                                         'line' => 501
37976                                                                                                       }, 'Parse::RecDescent::Repetition' ),
37977                                                                                                bless( {
37978                                                                                                         'pattern' => 'END',
37979                                                                                                         'hashname' => '__PATTERN2__',
37980                                                                                                         'description' => '/END/i',
37981                                                                                                         'lookahead' => 0,
37982                                                                                                         'rdelim' => '/',
37983                                                                                                         'line' => 501,
37984                                                                                                         'mod' => 'i',
37985                                                                                                         'ldelim' => '/'
37986                                                                                                       }, 'Parse::RecDescent::Token' )
37987                                                                                              ],
37988                                                                                   'line' => undef
37989                                                                                 }, 'Parse::RecDescent::Production' )
37990                                                                        ],
37991                                                             'name' => 'case_expression',
37992                                                             'vars' => '',
37993                                                             'line' => 496
37994                                                           }, 'Parse::RecDescent::Rule' ),
37995                               'operator' => bless( {
37996                                                      'impcount' => 0,
37997                                                      'calls' => [
37998                                                                   '_alternation_1_of_production_1_of_rule_operator'
37999                                                                 ],
38000                                                      'changed' => 0,
38001                                                      'opcount' => 0,
38002                                                      'prods' => [
38003                                                                   bless( {
38004                                                                            'number' => '0',
38005                                                                            'strcount' => 0,
38006                                                                            'dircount' => 0,
38007                                                                            'uncommit' => undef,
38008                                                                            'error' => undef,
38009                                                                            'patcount' => 0,
38010                                                                            'actcount' => 0,
38011                                                                            'items' => [
38012                                                                                         bless( {
38013                                                                                                  'subrule' => '_alternation_1_of_production_1_of_rule_operator',
38014                                                                                                  'matchrule' => 0,
38015                                                                                                  'implicit' => '/CONCAT/i, or \'||\'',
38016                                                                                                  'argcode' => undef,
38017                                                                                                  'lookahead' => 0,
38018                                                                                                  'line' => 321
38019                                                                                                }, 'Parse::RecDescent::Subrule' )
38020                                                                                       ],
38021                                                                            'line' => undef
38022                                                                          }, 'Parse::RecDescent::Production' ),
38023                                                                   bless( {
38024                                                                            'number' => '1',
38025                                                                            'strcount' => 1,
38026                                                                            'dircount' => 0,
38027                                                                            'uncommit' => undef,
38028                                                                            'error' => undef,
38029                                                                            'patcount' => 0,
38030                                                                            'actcount' => 0,
38031                                                                            'items' => [
38032                                                                                         bless( {
38033                                                                                                  'pattern' => '/',
38034                                                                                                  'hashname' => '__STRING1__',
38035                                                                                                  'description' => '\'/\'',
38036                                                                                                  'lookahead' => 0,
38037                                                                                                  'line' => 321
38038                                                                                                }, 'Parse::RecDescent::Literal' )
38039                                                                                       ],
38040                                                                            'line' => 321
38041                                                                          }, 'Parse::RecDescent::Production' ),
38042                                                                   bless( {
38043                                                                            'number' => '2',
38044                                                                            'strcount' => 1,
38045                                                                            'dircount' => 0,
38046                                                                            'uncommit' => undef,
38047                                                                            'error' => undef,
38048                                                                            'patcount' => 0,
38049                                                                            'actcount' => 0,
38050                                                                            'items' => [
38051                                                                                         bless( {
38052                                                                                                  'pattern' => '*',
38053                                                                                                  'hashname' => '__STRING1__',
38054                                                                                                  'description' => '\'*\'',
38055                                                                                                  'lookahead' => 0,
38056                                                                                                  'line' => 321
38057                                                                                                }, 'Parse::RecDescent::Literal' )
38058                                                                                       ],
38059                                                                            'line' => 321
38060                                                                          }, 'Parse::RecDescent::Production' ),
38061                                                                   bless( {
38062                                                                            'number' => '3',
38063                                                                            'strcount' => 1,
38064                                                                            'dircount' => 0,
38065                                                                            'uncommit' => undef,
38066                                                                            'error' => undef,
38067                                                                            'patcount' => 0,
38068                                                                            'actcount' => 0,
38069                                                                            'items' => [
38070                                                                                         bless( {
38071                                                                                                  'pattern' => '+',
38072                                                                                                  'hashname' => '__STRING1__',
38073                                                                                                  'description' => '\'+\'',
38074                                                                                                  'lookahead' => 0,
38075                                                                                                  'line' => 321
38076                                                                                                }, 'Parse::RecDescent::Literal' )
38077                                                                                       ],
38078                                                                            'line' => 321
38079                                                                          }, 'Parse::RecDescent::Production' ),
38080                                                                   bless( {
38081                                                                            'number' => '4',
38082                                                                            'strcount' => 1,
38083                                                                            'dircount' => 0,
38084                                                                            'uncommit' => undef,
38085                                                                            'error' => undef,
38086                                                                            'patcount' => 0,
38087                                                                            'actcount' => 0,
38088                                                                            'items' => [
38089                                                                                         bless( {
38090                                                                                                  'pattern' => '-',
38091                                                                                                  'hashname' => '__STRING1__',
38092                                                                                                  'description' => '\'-\'',
38093                                                                                                  'lookahead' => 0,
38094                                                                                                  'line' => 321
38095                                                                                                }, 'Parse::RecDescent::Literal' )
38096                                                                                       ],
38097                                                                            'line' => 321
38098                                                                          }, 'Parse::RecDescent::Production' )
38099                                                                 ],
38100                                                      'name' => 'operator',
38101                                                      'vars' => '',
38102                                                      'line' => 321
38103                                                    }, 'Parse::RecDescent::Rule' ),
38104                               '_alternation_1_of_production_2_of_rule_type' => bless( {
38105                                                                                         'impcount' => 0,
38106                                                                                         'calls' => [],
38107                                                                                         'changed' => 0,
38108                                                                                         'opcount' => 0,
38109                                                                                         'prods' => [
38110                                                                                                      bless( {
38111                                                                                                               'number' => '0',
38112                                                                                                               'strcount' => 0,
38113                                                                                                               'dircount' => 0,
38114                                                                                                               'uncommit' => undef,
38115                                                                                                               'error' => undef,
38116                                                                                                               'patcount' => 1,
38117                                                                                                               'actcount' => 0,
38118                                                                                                               'items' => [
38119                                                                                                                            bless( {
38120                                                                                                                                     'pattern' => 'INSERT',
38121                                                                                                                                     'hashname' => '__PATTERN1__',
38122                                                                                                                                     'description' => '/INSERT/i',
38123                                                                                                                                     'lookahead' => 0,
38124                                                                                                                                     'rdelim' => '/',
38125                                                                                                                                     'line' => 628,
38126                                                                                                                                     'mod' => 'i',
38127                                                                                                                                     'ldelim' => '/'
38128                                                                                                                                   }, 'Parse::RecDescent::Token' )
38129                                                                                                                          ],
38130                                                                                                               'line' => undef
38131                                                                                                             }, 'Parse::RecDescent::Production' ),
38132                                                                                                      bless( {
38133                                                                                                               'number' => '1',
38134                                                                                                               'strcount' => 0,
38135                                                                                                               'dircount' => 0,
38136                                                                                                               'uncommit' => undef,
38137                                                                                                               'error' => undef,
38138                                                                                                               'patcount' => 1,
38139                                                                                                               'actcount' => 0,
38140                                                                                                               'items' => [
38141                                                                                                                            bless( {
38142                                                                                                                                     'pattern' => 'DELETE',
38143                                                                                                                                     'hashname' => '__PATTERN1__',
38144                                                                                                                                     'description' => '/DELETE/i',
38145                                                                                                                                     'lookahead' => 0,
38146                                                                                                                                     'rdelim' => '/',
38147                                                                                                                                     'line' => 628,
38148                                                                                                                                     'mod' => 'i',
38149                                                                                                                                     'ldelim' => '/'
38150                                                                                                                                   }, 'Parse::RecDescent::Token' )
38151                                                                                                                          ],
38152                                                                                                               'line' => 628
38153                                                                                                             }, 'Parse::RecDescent::Production' ),
38154                                                                                                      bless( {
38155                                                                                                               'number' => '2',
38156                                                                                                               'strcount' => 0,
38157                                                                                                               'dircount' => 0,
38158                                                                                                               'uncommit' => undef,
38159                                                                                                               'error' => undef,
38160                                                                                                               'patcount' => 1,
38161                                                                                                               'actcount' => 0,
38162                                                                                                               'items' => [
38163                                                                                                                            bless( {
38164                                                                                                                                     'pattern' => 'UPDATE',
38165                                                                                                                                     'hashname' => '__PATTERN1__',
38166                                                                                                                                     'description' => '/UPDATE/i',
38167                                                                                                                                     'lookahead' => 0,
38168                                                                                                                                     'rdelim' => '/',
38169                                                                                                                                     'line' => 628,
38170                                                                                                                                     'mod' => 'i',
38171                                                                                                                                     'ldelim' => '/'
38172                                                                                                                                   }, 'Parse::RecDescent::Token' )
38173                                                                                                                          ],
38174                                                                                                               'line' => 628
38175                                                                                                             }, 'Parse::RecDescent::Production' )
38176                                                                                                    ],
38177                                                                                         'name' => '_alternation_1_of_production_2_of_rule_type',
38178                                                                                         'vars' => '',
38179                                                                                         'line' => 628
38180                                                                                       }, 'Parse::RecDescent::Rule' ),
38181                               '_alternation_1_of_production_8_of_rule_sysibm_function' => bless( {
38182                                                                                                    'impcount' => 0,
38183                                                                                                    'calls' => [],
38184                                                                                                    'changed' => 0,
38185                                                                                                    'opcount' => 0,
38186                                                                                                    'prods' => [
38187                                                                                                                 bless( {
38188                                                                                                                          'number' => '0',
38189                                                                                                                          'strcount' => 0,
38190                                                                                                                          'dircount' => 0,
38191                                                                                                                          'uncommit' => undef,
38192                                                                                                                          'error' => undef,
38193                                                                                                                          'patcount' => 1,
38194                                                                                                                          'actcount' => 0,
38195                                                                                                                          'items' => [
38196                                                                                                                                       bless( {
38197                                                                                                                                                'pattern' => 'CONCAT',
38198                                                                                                                                                'hashname' => '__PATTERN1__',
38199                                                                                                                                                'description' => '/CONCAT/',
38200                                                                                                                                                'lookahead' => 0,
38201                                                                                                                                                'rdelim' => '/',
38202                                                                                                                                                'line' => 628,
38203                                                                                                                                                'mod' => '',
38204                                                                                                                                                'ldelim' => '/'
38205                                                                                                                                              }, 'Parse::RecDescent::Token' )
38206                                                                                                                                     ],
38207                                                                                                                          'line' => undef
38208                                                                                                                        }, 'Parse::RecDescent::Production' ),
38209                                                                                                                 bless( {
38210                                                                                                                          'number' => '1',
38211                                                                                                                          'strcount' => 1,
38212                                                                                                                          'dircount' => 0,
38213                                                                                                                          'uncommit' => undef,
38214                                                                                                                          'error' => undef,
38215                                                                                                                          'patcount' => 0,
38216                                                                                                                          'actcount' => 0,
38217                                                                                                                          'items' => [
38218                                                                                                                                       bless( {
38219                                                                                                                                                'pattern' => '||',
38220                                                                                                                                                'hashname' => '__STRING1__',
38221                                                                                                                                                'description' => '\'||\'',
38222                                                                                                                                                'lookahead' => 0,
38223                                                                                                                                                'line' => 628
38224                                                                                                                                              }, 'Parse::RecDescent::Literal' )
38225                                                                                                                                     ],
38226                                                                                                                          'line' => 628
38227                                                                                                                        }, 'Parse::RecDescent::Production' )
38228                                                                                                               ],
38229                                                                                                    'name' => '_alternation_1_of_production_8_of_rule_sysibm_function',
38230                                                                                                    'vars' => '',
38231                                                                                                    'line' => 628
38232                                                                                                  }, 'Parse::RecDescent::Rule' ),
38233                               'sequence_reference' => bless( {
38234                                                                'impcount' => 0,
38235                                                                'calls' => [
38236                                                                             'nextval_expression',
38237                                                                             'prevval_expression'
38238                                                                           ],
38239                                                                'changed' => 0,
38240                                                                'opcount' => 0,
38241                                                                'prods' => [
38242                                                                             bless( {
38243                                                                                      'number' => '0',
38244                                                                                      'strcount' => 0,
38245                                                                                      'dircount' => 0,
38246                                                                                      'uncommit' => undef,
38247                                                                                      'error' => undef,
38248                                                                                      'patcount' => 0,
38249                                                                                      'actcount' => 0,
38250                                                                                      'items' => [
38251                                                                                                   bless( {
38252                                                                                                            'subrule' => 'nextval_expression',
38253                                                                                                            'matchrule' => 0,
38254                                                                                                            'implicit' => undef,
38255                                                                                                            'argcode' => undef,
38256                                                                                                            'lookahead' => 0,
38257                                                                                                            'line' => 608
38258                                                                                                          }, 'Parse::RecDescent::Subrule' )
38259                                                                                                 ],
38260                                                                                      'line' => undef
38261                                                                                    }, 'Parse::RecDescent::Production' ),
38262                                                                             bless( {
38263                                                                                      'number' => '1',
38264                                                                                      'strcount' => 0,
38265                                                                                      'dircount' => 0,
38266                                                                                      'uncommit' => undef,
38267                                                                                      'error' => undef,
38268                                                                                      'patcount' => 0,
38269                                                                                      'actcount' => 0,
38270                                                                                      'items' => [
38271                                                                                                   bless( {
38272                                                                                                            'subrule' => 'prevval_expression',
38273                                                                                                            'matchrule' => 0,
38274                                                                                                            'implicit' => undef,
38275                                                                                                            'argcode' => undef,
38276                                                                                                            'lookahead' => 0,
38277                                                                                                            'line' => 609
38278                                                                                                          }, 'Parse::RecDescent::Subrule' )
38279                                                                                                 ],
38280                                                                                      'line' => 609
38281                                                                                    }, 'Parse::RecDescent::Production' )
38282                                                                           ],
38283                                                                'name' => 'sequence_reference',
38284                                                                'vars' => '',
38285                                                                'line' => 608
38286                                                              }, 'Parse::RecDescent::Rule' ),
38287                               'sysibm_function' => bless( {
38288                                                             'impcount' => 0,
38289                                                             'calls' => [
38290                                                                          '_alternation_1_of_production_1_of_rule_sysibm_function',
38291                                                                          '_alternation_1_of_production_8_of_rule_sysibm_function',
38292                                                                          '_alternation_1_of_production_9_of_rule_sysibm_function',
38293                                                                          '_alternation_1_of_production_12_of_rule_sysibm_function',
38294                                                                          '_alternation_1_of_production_17_of_rule_sysibm_function',
38295                                                                          '_alternation_1_of_production_30_of_rule_sysibm_function',
38296                                                                          '_alternation_1_of_production_41_of_rule_sysibm_function',
38297                                                                          '_alternation_1_of_production_42_of_rule_sysibm_function',
38298                                                                          '_alternation_1_of_production_63_of_rule_sysibm_function',
38299                                                                          '_alternation_1_of_production_83_of_rule_sysibm_function',
38300                                                                          '_alternation_1_of_production_87_of_rule_sysibm_function'
38301                                                                        ],
38302                                                             'changed' => 0,
38303                                                             'opcount' => 0,
38304                                                             'prods' => [
38305                                                                          bless( {
38306                                                                                   'number' => '0',
38307                                                                                   'strcount' => 0,
38308                                                                                   'dircount' => 0,
38309                                                                                   'uncommit' => undef,
38310                                                                                   'error' => undef,
38311                                                                                   'patcount' => 0,
38312                                                                                   'actcount' => 0,
38313                                                                                   'items' => [
38314                                                                                                bless( {
38315                                                                                                         'subrule' => '_alternation_1_of_production_1_of_rule_sysibm_function',
38316                                                                                                         'matchrule' => 0,
38317                                                                                                         'implicit' => '/ABS/i, or /ABSVAL/i',
38318                                                                                                         'argcode' => undef,
38319                                                                                                         'lookahead' => 0,
38320                                                                                                         'line' => 332
38321                                                                                                       }, 'Parse::RecDescent::Subrule' )
38322                                                                                              ],
38323                                                                                   'line' => undef
38324                                                                                 }, 'Parse::RecDescent::Production' ),
38325                                                                          bless( {
38326                                                                                   'number' => '1',
38327                                                                                   'strcount' => 0,
38328                                                                                   'dircount' => 0,
38329                                                                                   'uncommit' => undef,
38330                                                                                   'error' => undef,
38331                                                                                   'patcount' => 1,
38332                                                                                   'actcount' => 0,
38333                                                                                   'items' => [
38334                                                                                                bless( {
38335                                                                                                         'pattern' => 'AVG',
38336                                                                                                         'hashname' => '__PATTERN1__',
38337                                                                                                         'description' => '/AVG/i',
38338                                                                                                         'lookahead' => 0,
38339                                                                                                         'rdelim' => '/',
38340                                                                                                         'line' => 333,
38341                                                                                                         'mod' => 'i',
38342                                                                                                         'ldelim' => '/'
38343                                                                                                       }, 'Parse::RecDescent::Token' )
38344                                                                                              ],
38345                                                                                   'line' => 333
38346                                                                                 }, 'Parse::RecDescent::Production' ),
38347                                                                          bless( {
38348                                                                                   'number' => '2',
38349                                                                                   'strcount' => 0,
38350                                                                                   'dircount' => 0,
38351                                                                                   'uncommit' => undef,
38352                                                                                   'error' => undef,
38353                                                                                   'patcount' => 1,
38354                                                                                   'actcount' => 0,
38355                                                                                   'items' => [
38356                                                                                                bless( {
38357                                                                                                         'pattern' => 'BIGINT',
38358                                                                                                         'hashname' => '__PATTERN1__',
38359                                                                                                         'description' => '/BIGINT/i',
38360                                                                                                         'lookahead' => 0,
38361                                                                                                         'rdelim' => '/',
38362                                                                                                         'line' => 334,
38363                                                                                                         'mod' => 'i',
38364                                                                                                         'ldelim' => '/'
38365                                                                                                       }, 'Parse::RecDescent::Token' )
38366                                                                                              ],
38367                                                                                   'line' => 334
38368                                                                                 }, 'Parse::RecDescent::Production' ),
38369                                                                          bless( {
38370                                                                                   'number' => '3',
38371                                                                                   'strcount' => 0,
38372                                                                                   'dircount' => 0,
38373                                                                                   'uncommit' => undef,
38374                                                                                   'error' => undef,
38375                                                                                   'patcount' => 1,
38376                                                                                   'actcount' => 0,
38377                                                                                   'items' => [
38378                                                                                                bless( {
38379                                                                                                         'pattern' => 'BLOB',
38380                                                                                                         'hashname' => '__PATTERN1__',
38381                                                                                                         'description' => '/BLOB/i',
38382                                                                                                         'lookahead' => 0,
38383                                                                                                         'rdelim' => '/',
38384                                                                                                         'line' => 335,
38385                                                                                                         'mod' => 'i',
38386                                                                                                         'ldelim' => '/'
38387                                                                                                       }, 'Parse::RecDescent::Token' )
38388                                                                                              ],
38389                                                                                   'line' => 335
38390                                                                                 }, 'Parse::RecDescent::Production' ),
38391                                                                          bless( {
38392                                                                                   'number' => '4',
38393                                                                                   'strcount' => 0,
38394                                                                                   'dircount' => 0,
38395                                                                                   'uncommit' => undef,
38396                                                                                   'error' => undef,
38397                                                                                   'patcount' => 1,
38398                                                                                   'actcount' => 0,
38399                                                                                   'items' => [
38400                                                                                                bless( {
38401                                                                                                         'pattern' => 'CHAR',
38402                                                                                                         'hashname' => '__PATTERN1__',
38403                                                                                                         'description' => '/CHAR/i',
38404                                                                                                         'lookahead' => 0,
38405                                                                                                         'rdelim' => '/',
38406                                                                                                         'line' => 336,
38407                                                                                                         'mod' => 'i',
38408                                                                                                         'ldelim' => '/'
38409                                                                                                       }, 'Parse::RecDescent::Token' )
38410                                                                                              ],
38411                                                                                   'line' => 336
38412                                                                                 }, 'Parse::RecDescent::Production' ),
38413                                                                          bless( {
38414                                                                                   'number' => '5',
38415                                                                                   'strcount' => 0,
38416                                                                                   'dircount' => 0,
38417                                                                                   'uncommit' => undef,
38418                                                                                   'error' => undef,
38419                                                                                   'patcount' => 1,
38420                                                                                   'actcount' => 0,
38421                                                                                   'items' => [
38422                                                                                                bless( {
38423                                                                                                         'pattern' => 'CLOB',
38424                                                                                                         'hashname' => '__PATTERN1__',
38425                                                                                                         'description' => '/CLOB/i',
38426                                                                                                         'lookahead' => 0,
38427                                                                                                         'rdelim' => '/',
38428                                                                                                         'line' => 337,
38429                                                                                                         'mod' => 'i',
38430                                                                                                         'ldelim' => '/'
38431                                                                                                       }, 'Parse::RecDescent::Token' )
38432                                                                                              ],
38433                                                                                   'line' => 337
38434                                                                                 }, 'Parse::RecDescent::Production' ),
38435                                                                          bless( {
38436                                                                                   'number' => '6',
38437                                                                                   'strcount' => 0,
38438                                                                                   'dircount' => 0,
38439                                                                                   'uncommit' => undef,
38440                                                                                   'error' => undef,
38441                                                                                   'patcount' => 1,
38442                                                                                   'actcount' => 0,
38443                                                                                   'items' => [
38444                                                                                                bless( {
38445                                                                                                         'pattern' => 'COALESCE',
38446                                                                                                         'hashname' => '__PATTERN1__',
38447                                                                                                         'description' => '/COALESCE/i',
38448                                                                                                         'lookahead' => 0,
38449                                                                                                         'rdelim' => '/',
38450                                                                                                         'line' => 338,
38451                                                                                                         'mod' => 'i',
38452                                                                                                         'ldelim' => '/'
38453                                                                                                       }, 'Parse::RecDescent::Token' )
38454                                                                                              ],
38455                                                                                   'line' => 338
38456                                                                                 }, 'Parse::RecDescent::Production' ),
38457                                                                          bless( {
38458                                                                                   'number' => '7',
38459                                                                                   'strcount' => 0,
38460                                                                                   'dircount' => 0,
38461                                                                                   'uncommit' => undef,
38462                                                                                   'error' => undef,
38463                                                                                   'patcount' => 0,
38464                                                                                   'actcount' => 0,
38465                                                                                   'items' => [
38466                                                                                                bless( {
38467                                                                                                         'subrule' => '_alternation_1_of_production_8_of_rule_sysibm_function',
38468                                                                                                         'matchrule' => 0,
38469                                                                                                         'implicit' => '/CONCAT/, or \'||\'',
38470                                                                                                         'argcode' => undef,
38471                                                                                                         'lookahead' => 0,
38472                                                                                                         'line' => 339
38473                                                                                                       }, 'Parse::RecDescent::Subrule' )
38474                                                                                              ],
38475                                                                                   'line' => 339
38476                                                                                 }, 'Parse::RecDescent::Production' ),
38477                                                                          bless( {
38478                                                                                   'number' => '8',
38479                                                                                   'strcount' => 0,
38480                                                                                   'dircount' => 0,
38481                                                                                   'uncommit' => undef,
38482                                                                                   'error' => undef,
38483                                                                                   'patcount' => 0,
38484                                                                                   'actcount' => 0,
38485                                                                                   'items' => [
38486                                                                                                bless( {
38487                                                                                                         'subrule' => '_alternation_1_of_production_9_of_rule_sysibm_function',
38488                                                                                                         'matchrule' => 0,
38489                                                                                                         'implicit' => '/CORRELATION/i, or /CORR/',
38490                                                                                                         'argcode' => undef,
38491                                                                                                         'lookahead' => 0,
38492                                                                                                         'line' => 340
38493                                                                                                       }, 'Parse::RecDescent::Subrule' )
38494                                                                                              ],
38495                                                                                   'line' => 340
38496                                                                                 }, 'Parse::RecDescent::Production' ),
38497                                                                          bless( {
38498                                                                                   'number' => '9',
38499                                                                                   'strcount' => 0,
38500                                                                                   'dircount' => 0,
38501                                                                                   'uncommit' => undef,
38502                                                                                   'error' => undef,
38503                                                                                   'patcount' => 1,
38504                                                                                   'actcount' => 0,
38505                                                                                   'items' => [
38506                                                                                                bless( {
38507                                                                                                         'pattern' => 'COUNT',
38508                                                                                                         'hashname' => '__PATTERN1__',
38509                                                                                                         'description' => '/COUNT/i',
38510                                                                                                         'lookahead' => 0,
38511                                                                                                         'rdelim' => '/',
38512                                                                                                         'line' => 341,
38513                                                                                                         'mod' => 'i',
38514                                                                                                         'ldelim' => '/'
38515                                                                                                       }, 'Parse::RecDescent::Token' )
38516                                                                                              ],
38517                                                                                   'line' => 341
38518                                                                                 }, 'Parse::RecDescent::Production' ),
38519                                                                          bless( {
38520                                                                                   'number' => '10',
38521                                                                                   'strcount' => 0,
38522                                                                                   'dircount' => 0,
38523                                                                                   'uncommit' => undef,
38524                                                                                   'error' => undef,
38525                                                                                   'patcount' => 1,
38526                                                                                   'actcount' => 0,
38527                                                                                   'items' => [
38528                                                                                                bless( {
38529                                                                                                         'pattern' => 'COUNT_BIG',
38530                                                                                                         'hashname' => '__PATTERN1__',
38531                                                                                                         'description' => '/COUNT_BIG/i',
38532                                                                                                         'lookahead' => 0,
38533                                                                                                         'rdelim' => '/',
38534                                                                                                         'line' => 342,
38535                                                                                                         'mod' => 'i',
38536                                                                                                         'ldelim' => '/'
38537                                                                                                       }, 'Parse::RecDescent::Token' )
38538                                                                                              ],
38539                                                                                   'line' => 342
38540                                                                                 }, 'Parse::RecDescent::Production' ),
38541                                                                          bless( {
38542                                                                                   'number' => '11',
38543                                                                                   'strcount' => 0,
38544                                                                                   'dircount' => 0,
38545                                                                                   'uncommit' => undef,
38546                                                                                   'error' => undef,
38547                                                                                   'patcount' => 0,
38548                                                                                   'actcount' => 0,
38549                                                                                   'items' => [
38550                                                                                                bless( {
38551                                                                                                         'subrule' => '_alternation_1_of_production_12_of_rule_sysibm_function',
38552                                                                                                         'matchrule' => 0,
38553                                                                                                         'implicit' => '/COVARIANCE/i, or /COVAR/i',
38554                                                                                                         'argcode' => undef,
38555                                                                                                         'lookahead' => 0,
38556                                                                                                         'line' => 343
38557                                                                                                       }, 'Parse::RecDescent::Subrule' )
38558                                                                                              ],
38559                                                                                   'line' => 343
38560                                                                                 }, 'Parse::RecDescent::Production' ),
38561                                                                          bless( {
38562                                                                                   'number' => '12',
38563                                                                                   'strcount' => 0,
38564                                                                                   'dircount' => 0,
38565                                                                                   'uncommit' => undef,
38566                                                                                   'error' => undef,
38567                                                                                   'patcount' => 1,
38568                                                                                   'actcount' => 0,
38569                                                                                   'items' => [
38570                                                                                                bless( {
38571                                                                                                         'pattern' => 'DATE',
38572                                                                                                         'hashname' => '__PATTERN1__',
38573                                                                                                         'description' => '/DATE/i',
38574                                                                                                         'lookahead' => 0,
38575                                                                                                         'rdelim' => '/',
38576                                                                                                         'line' => 344,
38577                                                                                                         'mod' => 'i',
38578                                                                                                         'ldelim' => '/'
38579                                                                                                       }, 'Parse::RecDescent::Token' )
38580                                                                                              ],
38581                                                                                   'line' => 344
38582                                                                                 }, 'Parse::RecDescent::Production' ),
38583                                                                          bless( {
38584                                                                                   'number' => '13',
38585                                                                                   'strcount' => 0,
38586                                                                                   'dircount' => 0,
38587                                                                                   'uncommit' => undef,
38588                                                                                   'error' => undef,
38589                                                                                   'patcount' => 1,
38590                                                                                   'actcount' => 0,
38591                                                                                   'items' => [
38592                                                                                                bless( {
38593                                                                                                         'pattern' => 'DAY',
38594                                                                                                         'hashname' => '__PATTERN1__',
38595                                                                                                         'description' => '/DAY/i',
38596                                                                                                         'lookahead' => 0,
38597                                                                                                         'rdelim' => '/',
38598                                                                                                         'line' => 345,
38599                                                                                                         'mod' => 'i',
38600                                                                                                         'ldelim' => '/'
38601                                                                                                       }, 'Parse::RecDescent::Token' )
38602                                                                                              ],
38603                                                                                   'line' => 345
38604                                                                                 }, 'Parse::RecDescent::Production' ),
38605                                                                          bless( {
38606                                                                                   'number' => '14',
38607                                                                                   'strcount' => 0,
38608                                                                                   'dircount' => 0,
38609                                                                                   'uncommit' => undef,
38610                                                                                   'error' => undef,
38611                                                                                   'patcount' => 1,
38612                                                                                   'actcount' => 0,
38613                                                                                   'items' => [
38614                                                                                                bless( {
38615                                                                                                         'pattern' => 'DAYS',
38616                                                                                                         'hashname' => '__PATTERN1__',
38617                                                                                                         'description' => '/DAYS/i',
38618                                                                                                         'lookahead' => 0,
38619                                                                                                         'rdelim' => '/',
38620                                                                                                         'line' => 346,
38621                                                                                                         'mod' => 'i',
38622                                                                                                         'ldelim' => '/'
38623                                                                                                       }, 'Parse::RecDescent::Token' )
38624                                                                                              ],
38625                                                                                   'line' => 346
38626                                                                                 }, 'Parse::RecDescent::Production' ),
38627                                                                          bless( {
38628                                                                                   'number' => '15',
38629                                                                                   'strcount' => 0,
38630                                                                                   'dircount' => 0,
38631                                                                                   'uncommit' => undef,
38632                                                                                   'error' => undef,
38633                                                                                   'patcount' => 1,
38634                                                                                   'actcount' => 0,
38635                                                                                   'items' => [
38636                                                                                                bless( {
38637                                                                                                         'pattern' => 'DBCLOB',
38638                                                                                                         'hashname' => '__PATTERN1__',
38639                                                                                                         'description' => '/DBCLOB/i',
38640                                                                                                         'lookahead' => 0,
38641                                                                                                         'rdelim' => '/',
38642                                                                                                         'line' => 347,
38643                                                                                                         'mod' => 'i',
38644                                                                                                         'ldelim' => '/'
38645                                                                                                       }, 'Parse::RecDescent::Token' )
38646                                                                                              ],
38647                                                                                   'line' => 347
38648                                                                                 }, 'Parse::RecDescent::Production' ),
38649                                                                          bless( {
38650                                                                                   'number' => '16',
38651                                                                                   'strcount' => 0,
38652                                                                                   'dircount' => 0,
38653                                                                                   'uncommit' => undef,
38654                                                                                   'error' => undef,
38655                                                                                   'patcount' => 0,
38656                                                                                   'actcount' => 0,
38657                                                                                   'items' => [
38658                                                                                                bless( {
38659                                                                                                         'subrule' => '_alternation_1_of_production_17_of_rule_sysibm_function',
38660                                                                                                         'matchrule' => 0,
38661                                                                                                         'implicit' => '/DECIMAL/i, or /DEC/i',
38662                                                                                                         'argcode' => undef,
38663                                                                                                         'lookahead' => 0,
38664                                                                                                         'line' => 348
38665                                                                                                       }, 'Parse::RecDescent::Subrule' )
38666                                                                                              ],
38667                                                                                   'line' => 348
38668                                                                                 }, 'Parse::RecDescent::Production' ),
38669                                                                          bless( {
38670                                                                                   'number' => '17',
38671                                                                                   'strcount' => 0,
38672                                                                                   'dircount' => 0,
38673                                                                                   'uncommit' => undef,
38674                                                                                   'error' => undef,
38675                                                                                   'patcount' => 1,
38676                                                                                   'actcount' => 0,
38677                                                                                   'items' => [
38678                                                                                                bless( {
38679                                                                                                         'pattern' => 'DECRYPT_BIN',
38680                                                                                                         'hashname' => '__PATTERN1__',
38681                                                                                                         'description' => '/DECRYPT_BIN/i',
38682                                                                                                         'lookahead' => 0,
38683                                                                                                         'rdelim' => '/',
38684                                                                                                         'line' => 349,
38685                                                                                                         'mod' => 'i',
38686                                                                                                         'ldelim' => '/'
38687                                                                                                       }, 'Parse::RecDescent::Token' )
38688                                                                                              ],
38689                                                                                   'line' => 349
38690                                                                                 }, 'Parse::RecDescent::Production' ),
38691                                                                          bless( {
38692                                                                                   'number' => '18',
38693                                                                                   'strcount' => 0,
38694                                                                                   'dircount' => 0,
38695                                                                                   'uncommit' => undef,
38696                                                                                   'error' => undef,
38697                                                                                   'patcount' => 1,
38698                                                                                   'actcount' => 0,
38699                                                                                   'items' => [
38700                                                                                                bless( {
38701                                                                                                         'pattern' => 'DECRYPT_CHAR',
38702                                                                                                         'hashname' => '__PATTERN1__',
38703                                                                                                         'description' => '/DECRYPT_CHAR/i',
38704                                                                                                         'lookahead' => 0,
38705                                                                                                         'rdelim' => '/',
38706                                                                                                         'line' => 350,
38707                                                                                                         'mod' => 'i',
38708                                                                                                         'ldelim' => '/'
38709                                                                                                       }, 'Parse::RecDescent::Token' )
38710                                                                                              ],
38711                                                                                   'line' => 350
38712                                                                                 }, 'Parse::RecDescent::Production' ),
38713                                                                          bless( {
38714                                                                                   'number' => '19',
38715                                                                                   'strcount' => 0,
38716                                                                                   'dircount' => 0,
38717                                                                                   'uncommit' => undef,
38718                                                                                   'error' => undef,
38719                                                                                   'patcount' => 1,
38720                                                                                   'actcount' => 0,
38721                                                                                   'items' => [
38722                                                                                                bless( {
38723                                                                                                         'pattern' => 'DEREF',
38724                                                                                                         'hashname' => '__PATTERN1__',
38725                                                                                                         'description' => '/DEREF/i',
38726                                                                                                         'lookahead' => 0,
38727                                                                                                         'rdelim' => '/',
38728                                                                                                         'line' => 351,
38729                                                                                                         'mod' => 'i',
38730                                                                                                         'ldelim' => '/'
38731                                                                                                       }, 'Parse::RecDescent::Token' )
38732                                                                                              ],
38733                                                                                   'line' => 351
38734                                                                                 }, 'Parse::RecDescent::Production' ),
38735                                                                          bless( {
38736                                                                                   'number' => '20',
38737                                                                                   'strcount' => 0,
38738                                                                                   'dircount' => 0,
38739                                                                                   'uncommit' => undef,
38740                                                                                   'error' => undef,
38741                                                                                   'patcount' => 1,
38742                                                                                   'actcount' => 0,
38743                                                                                   'items' => [
38744                                                                                                bless( {
38745                                                                                                         'pattern' => 'DIGITS',
38746                                                                                                         'hashname' => '__PATTERN1__',
38747                                                                                                         'description' => '/DIGITS/i',
38748                                                                                                         'lookahead' => 0,
38749                                                                                                         'rdelim' => '/',
38750                                                                                                         'line' => 352,
38751                                                                                                         'mod' => 'i',
38752                                                                                                         'ldelim' => '/'
38753                                                                                                       }, 'Parse::RecDescent::Token' )
38754                                                                                              ],
38755                                                                                   'line' => 352
38756                                                                                 }, 'Parse::RecDescent::Production' ),
38757                                                                          bless( {
38758                                                                                   'number' => '21',
38759                                                                                   'strcount' => 0,
38760                                                                                   'dircount' => 0,
38761                                                                                   'uncommit' => undef,
38762                                                                                   'error' => undef,
38763                                                                                   'patcount' => 1,
38764                                                                                   'actcount' => 0,
38765                                                                                   'items' => [
38766                                                                                                bless( {
38767                                                                                                         'pattern' => 'DLCOMMENT',
38768                                                                                                         'hashname' => '__PATTERN1__',
38769                                                                                                         'description' => '/DLCOMMENT/i',
38770                                                                                                         'lookahead' => 0,
38771                                                                                                         'rdelim' => '/',
38772                                                                                                         'line' => 353,
38773                                                                                                         'mod' => 'i',
38774                                                                                                         'ldelim' => '/'
38775                                                                                                       }, 'Parse::RecDescent::Token' )
38776                                                                                              ],
38777                                                                                   'line' => 353
38778                                                                                 }, 'Parse::RecDescent::Production' ),
38779                                                                          bless( {
38780                                                                                   'number' => '22',
38781                                                                                   'strcount' => 0,
38782                                                                                   'dircount' => 0,
38783                                                                                   'uncommit' => undef,
38784                                                                                   'error' => undef,
38785                                                                                   'patcount' => 1,
38786                                                                                   'actcount' => 0,
38787                                                                                   'items' => [
38788                                                                                                bless( {
38789                                                                                                         'pattern' => 'DLLINKTYPE',
38790                                                                                                         'hashname' => '__PATTERN1__',
38791                                                                                                         'description' => '/DLLINKTYPE/i',
38792                                                                                                         'lookahead' => 0,
38793                                                                                                         'rdelim' => '/',
38794                                                                                                         'line' => 354,
38795                                                                                                         'mod' => 'i',
38796                                                                                                         'ldelim' => '/'
38797                                                                                                       }, 'Parse::RecDescent::Token' )
38798                                                                                              ],
38799                                                                                   'line' => 354
38800                                                                                 }, 'Parse::RecDescent::Production' ),
38801                                                                          bless( {
38802                                                                                   'number' => '23',
38803                                                                                   'strcount' => 0,
38804                                                                                   'dircount' => 0,
38805                                                                                   'uncommit' => undef,
38806                                                                                   'error' => undef,
38807                                                                                   'patcount' => 1,
38808                                                                                   'actcount' => 0,
38809                                                                                   'items' => [
38810                                                                                                bless( {
38811                                                                                                         'pattern' => 'DLURLCOMPLETE',
38812                                                                                                         'hashname' => '__PATTERN1__',
38813                                                                                                         'description' => '/DLURLCOMPLETE/i',
38814                                                                                                         'lookahead' => 0,
38815                                                                                                         'rdelim' => '/',
38816                                                                                                         'line' => 355,
38817                                                                                                         'mod' => 'i',
38818                                                                                                         'ldelim' => '/'
38819                                                                                                       }, 'Parse::RecDescent::Token' )
38820                                                                                              ],
38821                                                                                   'line' => 355
38822                                                                                 }, 'Parse::RecDescent::Production' ),
38823                                                                          bless( {
38824                                                                                   'number' => '24',
38825                                                                                   'strcount' => 0,
38826                                                                                   'dircount' => 0,
38827                                                                                   'uncommit' => undef,
38828                                                                                   'error' => undef,
38829                                                                                   'patcount' => 1,
38830                                                                                   'actcount' => 0,
38831                                                                                   'items' => [
38832                                                                                                bless( {
38833                                                                                                         'pattern' => 'DLURLPATH',
38834                                                                                                         'hashname' => '__PATTERN1__',
38835                                                                                                         'description' => '/DLURLPATH/i',
38836                                                                                                         'lookahead' => 0,
38837                                                                                                         'rdelim' => '/',
38838                                                                                                         'line' => 356,
38839                                                                                                         'mod' => 'i',
38840                                                                                                         'ldelim' => '/'
38841                                                                                                       }, 'Parse::RecDescent::Token' )
38842                                                                                              ],
38843                                                                                   'line' => 356
38844                                                                                 }, 'Parse::RecDescent::Production' ),
38845                                                                          bless( {
38846                                                                                   'number' => '25',
38847                                                                                   'strcount' => 0,
38848                                                                                   'dircount' => 0,
38849                                                                                   'uncommit' => undef,
38850                                                                                   'error' => undef,
38851                                                                                   'patcount' => 1,
38852                                                                                   'actcount' => 0,
38853                                                                                   'items' => [
38854                                                                                                bless( {
38855                                                                                                         'pattern' => 'DLURLPATHONLY',
38856                                                                                                         'hashname' => '__PATTERN1__',
38857                                                                                                         'description' => '/DLURLPATHONLY/i',
38858                                                                                                         'lookahead' => 0,
38859                                                                                                         'rdelim' => '/',
38860                                                                                                         'line' => 357,
38861                                                                                                         'mod' => 'i',
38862                                                                                                         'ldelim' => '/'
38863                                                                                                       }, 'Parse::RecDescent::Token' )
38864                                                                                              ],
38865                                                                                   'line' => 357
38866                                                                                 }, 'Parse::RecDescent::Production' ),
38867                                                                          bless( {
38868                                                                                   'number' => '26',
38869                                                                                   'strcount' => 0,
38870                                                                                   'dircount' => 0,
38871                                                                                   'uncommit' => undef,
38872                                                                                   'error' => undef,
38873                                                                                   'patcount' => 1,
38874                                                                                   'actcount' => 0,
38875                                                                                   'items' => [
38876                                                                                                bless( {
38877                                                                                                         'pattern' => 'DLURLSCHEME',
38878                                                                                                         'hashname' => '__PATTERN1__',
38879                                                                                                         'description' => '/DLURLSCHEME/i',
38880                                                                                                         'lookahead' => 0,
38881                                                                                                         'rdelim' => '/',
38882                                                                                                         'line' => 358,
38883                                                                                                         'mod' => 'i',
38884                                                                                                         'ldelim' => '/'
38885                                                                                                       }, 'Parse::RecDescent::Token' )
38886                                                                                              ],
38887                                                                                   'line' => 358
38888                                                                                 }, 'Parse::RecDescent::Production' ),
38889                                                                          bless( {
38890                                                                                   'number' => '27',
38891                                                                                   'strcount' => 0,
38892                                                                                   'dircount' => 0,
38893                                                                                   'uncommit' => undef,
38894                                                                                   'error' => undef,
38895                                                                                   'patcount' => 1,
38896                                                                                   'actcount' => 0,
38897                                                                                   'items' => [
38898                                                                                                bless( {
38899                                                                                                         'pattern' => 'DLURLSERVER',
38900                                                                                                         'hashname' => '__PATTERN1__',
38901                                                                                                         'description' => '/DLURLSERVER/i',
38902                                                                                                         'lookahead' => 0,
38903                                                                                                         'rdelim' => '/',
38904                                                                                                         'line' => 359,
38905                                                                                                         'mod' => 'i',
38906                                                                                                         'ldelim' => '/'
38907                                                                                                       }, 'Parse::RecDescent::Token' )
38908                                                                                              ],
38909                                                                                   'line' => 359
38910                                                                                 }, 'Parse::RecDescent::Production' ),
38911                                                                          bless( {
38912                                                                                   'number' => '28',
38913                                                                                   'strcount' => 0,
38914                                                                                   'dircount' => 0,
38915                                                                                   'uncommit' => undef,
38916                                                                                   'error' => undef,
38917                                                                                   'patcount' => 1,
38918                                                                                   'actcount' => 0,
38919                                                                                   'items' => [
38920                                                                                                bless( {
38921                                                                                                         'pattern' => 'DLVALUE',
38922                                                                                                         'hashname' => '__PATTERN1__',
38923                                                                                                         'description' => '/DLVALUE/i',
38924                                                                                                         'lookahead' => 0,
38925                                                                                                         'rdelim' => '/',
38926                                                                                                         'line' => 360,
38927                                                                                                         'mod' => 'i',
38928                                                                                                         'ldelim' => '/'
38929                                                                                                       }, 'Parse::RecDescent::Token' )
38930                                                                                              ],
38931                                                                                   'line' => 360
38932                                                                                 }, 'Parse::RecDescent::Production' ),
38933                                                                          bless( {
38934                                                                                   'number' => '29',
38935                                                                                   'strcount' => 0,
38936                                                                                   'dircount' => 0,
38937                                                                                   'uncommit' => undef,
38938                                                                                   'error' => undef,
38939                                                                                   'patcount' => 0,
38940                                                                                   'actcount' => 0,
38941                                                                                   'items' => [
38942                                                                                                bless( {
38943                                                                                                         'subrule' => '_alternation_1_of_production_30_of_rule_sysibm_function',
38944                                                                                                         'matchrule' => 0,
38945                                                                                                         'implicit' => '/DOUBLE/i, or /DOUBLE_PRECISION/i',
38946                                                                                                         'argcode' => undef,
38947                                                                                                         'lookahead' => 0,
38948                                                                                                         'line' => 361
38949                                                                                                       }, 'Parse::RecDescent::Subrule' )
38950                                                                                              ],
38951                                                                                   'line' => 361
38952                                                                                 }, 'Parse::RecDescent::Production' ),
38953                                                                          bless( {
38954                                                                                   'number' => '30',
38955                                                                                   'strcount' => 0,
38956                                                                                   'dircount' => 0,
38957                                                                                   'uncommit' => undef,
38958                                                                                   'error' => undef,
38959                                                                                   'patcount' => 1,
38960                                                                                   'actcount' => 0,
38961                                                                                   'items' => [
38962                                                                                                bless( {
38963                                                                                                         'pattern' => 'ENCRYPT',
38964                                                                                                         'hashname' => '__PATTERN1__',
38965                                                                                                         'description' => '/ENCRYPT/i',
38966                                                                                                         'lookahead' => 0,
38967                                                                                                         'rdelim' => '/',
38968                                                                                                         'line' => 362,
38969                                                                                                         'mod' => 'i',
38970                                                                                                         'ldelim' => '/'
38971                                                                                                       }, 'Parse::RecDescent::Token' )
38972                                                                                              ],
38973                                                                                   'line' => 362
38974                                                                                 }, 'Parse::RecDescent::Production' ),
38975                                                                          bless( {
38976                                                                                   'number' => '31',
38977                                                                                   'strcount' => 0,
38978                                                                                   'dircount' => 0,
38979                                                                                   'uncommit' => undef,
38980                                                                                   'error' => undef,
38981                                                                                   'patcount' => 1,
38982                                                                                   'actcount' => 0,
38983                                                                                   'items' => [
38984                                                                                                bless( {
38985                                                                                                         'pattern' => 'EVENT_MON_STATE',
38986                                                                                                         'hashname' => '__PATTERN1__',
38987                                                                                                         'description' => '/EVENT_MON_STATE/i',
38988                                                                                                         'lookahead' => 0,
38989                                                                                                         'rdelim' => '/',
38990                                                                                                         'line' => 363,
38991                                                                                                         'mod' => 'i',
38992                                                                                                         'ldelim' => '/'
38993                                                                                                       }, 'Parse::RecDescent::Token' )
38994                                                                                              ],
38995                                                                                   'line' => 363
38996                                                                                 }, 'Parse::RecDescent::Production' ),
38997                                                                          bless( {
38998                                                                                   'number' => '32',
38999                                                                                   'strcount' => 0,
39000                                                                                   'dircount' => 0,
39001                                                                                   'uncommit' => undef,
39002                                                                                   'error' => undef,
39003                                                                                   'patcount' => 1,
39004                                                                                   'actcount' => 0,
39005                                                                                   'items' => [
39006                                                                                                bless( {
39007                                                                                                         'pattern' => 'FLOAT',
39008                                                                                                         'hashname' => '__PATTERN1__',
39009                                                                                                         'description' => '/FLOAT/i',
39010                                                                                                         'lookahead' => 0,
39011                                                                                                         'rdelim' => '/',
39012                                                                                                         'line' => 364,
39013                                                                                                         'mod' => 'i',
39014                                                                                                         'ldelim' => '/'
39015                                                                                                       }, 'Parse::RecDescent::Token' )
39016                                                                                              ],
39017                                                                                   'line' => 364
39018                                                                                 }, 'Parse::RecDescent::Production' ),
39019                                                                          bless( {
39020                                                                                   'number' => '33',
39021                                                                                   'strcount' => 0,
39022                                                                                   'dircount' => 0,
39023                                                                                   'uncommit' => undef,
39024                                                                                   'error' => undef,
39025                                                                                   'patcount' => 1,
39026                                                                                   'actcount' => 0,
39027                                                                                   'items' => [
39028                                                                                                bless( {
39029                                                                                                         'pattern' => 'GETHINT',
39030                                                                                                         'hashname' => '__PATTERN1__',
39031                                                                                                         'description' => '/GETHINT/i',
39032                                                                                                         'lookahead' => 0,
39033                                                                                                         'rdelim' => '/',
39034                                                                                                         'line' => 365,
39035                                                                                                         'mod' => 'i',
39036                                                                                                         'ldelim' => '/'
39037                                                                                                       }, 'Parse::RecDescent::Token' )
39038                                                                                              ],
39039                                                                                   'line' => 365
39040                                                                                 }, 'Parse::RecDescent::Production' ),
39041                                                                          bless( {
39042                                                                                   'number' => '34',
39043                                                                                   'strcount' => 0,
39044                                                                                   'dircount' => 0,
39045                                                                                   'uncommit' => undef,
39046                                                                                   'error' => undef,
39047                                                                                   'patcount' => 1,
39048                                                                                   'actcount' => 0,
39049                                                                                   'items' => [
39050                                                                                                bless( {
39051                                                                                                         'pattern' => 'GENERATE_UNIQUE',
39052                                                                                                         'hashname' => '__PATTERN1__',
39053                                                                                                         'description' => '/GENERATE_UNIQUE/i',
39054                                                                                                         'lookahead' => 0,
39055                                                                                                         'rdelim' => '/',
39056                                                                                                         'line' => 366,
39057                                                                                                         'mod' => 'i',
39058                                                                                                         'ldelim' => '/'
39059                                                                                                       }, 'Parse::RecDescent::Token' )
39060                                                                                              ],
39061                                                                                   'line' => 366
39062                                                                                 }, 'Parse::RecDescent::Production' ),
39063                                                                          bless( {
39064                                                                                   'number' => '35',
39065                                                                                   'strcount' => 0,
39066                                                                                   'dircount' => 0,
39067                                                                                   'uncommit' => undef,
39068                                                                                   'error' => undef,
39069                                                                                   'patcount' => 1,
39070                                                                                   'actcount' => 0,
39071                                                                                   'items' => [
39072                                                                                                bless( {
39073                                                                                                         'pattern' => 'GRAPHIC',
39074                                                                                                         'hashname' => '__PATTERN1__',
39075                                                                                                         'description' => '/GRAPHIC/i',
39076                                                                                                         'lookahead' => 0,
39077                                                                                                         'rdelim' => '/',
39078                                                                                                         'line' => 367,
39079                                                                                                         'mod' => 'i',
39080                                                                                                         'ldelim' => '/'
39081                                                                                                       }, 'Parse::RecDescent::Token' )
39082                                                                                              ],
39083                                                                                   'line' => 367
39084                                                                                 }, 'Parse::RecDescent::Production' ),
39085                                                                          bless( {
39086                                                                                   'number' => '36',
39087                                                                                   'strcount' => 0,
39088                                                                                   'dircount' => 0,
39089                                                                                   'uncommit' => undef,
39090                                                                                   'error' => undef,
39091                                                                                   'patcount' => 1,
39092                                                                                   'actcount' => 0,
39093                                                                                   'items' => [
39094                                                                                                bless( {
39095                                                                                                         'pattern' => 'GROUPING',
39096                                                                                                         'hashname' => '__PATTERN1__',
39097                                                                                                         'description' => '/GROUPING/i',
39098                                                                                                         'lookahead' => 0,
39099                                                                                                         'rdelim' => '/',
39100                                                                                                         'line' => 368,
39101                                                                                                         'mod' => 'i',
39102                                                                                                         'ldelim' => '/'
39103                                                                                                       }, 'Parse::RecDescent::Token' )
39104                                                                                              ],
39105                                                                                   'line' => 368
39106                                                                                 }, 'Parse::RecDescent::Production' ),
39107                                                                          bless( {
39108                                                                                   'number' => '37',
39109                                                                                   'strcount' => 0,
39110                                                                                   'dircount' => 0,
39111                                                                                   'uncommit' => undef,
39112                                                                                   'error' => undef,
39113                                                                                   'patcount' => 1,
39114                                                                                   'actcount' => 0,
39115                                                                                   'items' => [
39116                                                                                                bless( {
39117                                                                                                         'pattern' => 'HEX',
39118                                                                                                         'hashname' => '__PATTERN1__',
39119                                                                                                         'description' => '/HEX/i',
39120                                                                                                         'lookahead' => 0,
39121                                                                                                         'rdelim' => '/',
39122                                                                                                         'line' => 369,
39123                                                                                                         'mod' => 'i',
39124                                                                                                         'ldelim' => '/'
39125                                                                                                       }, 'Parse::RecDescent::Token' )
39126                                                                                              ],
39127                                                                                   'line' => 369
39128                                                                                 }, 'Parse::RecDescent::Production' ),
39129                                                                          bless( {
39130                                                                                   'number' => '38',
39131                                                                                   'strcount' => 0,
39132                                                                                   'dircount' => 0,
39133                                                                                   'uncommit' => undef,
39134                                                                                   'error' => undef,
39135                                                                                   'patcount' => 1,
39136                                                                                   'actcount' => 0,
39137                                                                                   'items' => [
39138                                                                                                bless( {
39139                                                                                                         'pattern' => 'HOUR',
39140                                                                                                         'hashname' => '__PATTERN1__',
39141                                                                                                         'description' => '/HOUR/i',
39142                                                                                                         'lookahead' => 0,
39143                                                                                                         'rdelim' => '/',
39144                                                                                                         'line' => 370,
39145                                                                                                         'mod' => 'i',
39146                                                                                                         'ldelim' => '/'
39147                                                                                                       }, 'Parse::RecDescent::Token' )
39148                                                                                              ],
39149                                                                                   'line' => 370
39150                                                                                 }, 'Parse::RecDescent::Production' ),
39151                                                                          bless( {
39152                                                                                   'number' => '39',
39153                                                                                   'strcount' => 0,
39154                                                                                   'dircount' => 0,
39155                                                                                   'uncommit' => undef,
39156                                                                                   'error' => undef,
39157                                                                                   'patcount' => 1,
39158                                                                                   'actcount' => 0,
39159                                                                                   'items' => [
39160                                                                                                bless( {
39161                                                                                                         'pattern' => 'IDENTITY_VAL_LOCAL',
39162                                                                                                         'hashname' => '__PATTERN1__',
39163                                                                                                         'description' => '/IDENTITY_VAL_LOCAL/i',
39164                                                                                                         'lookahead' => 0,
39165                                                                                                         'rdelim' => '/',
39166                                                                                                         'line' => 371,
39167                                                                                                         'mod' => 'i',
39168                                                                                                         'ldelim' => '/'
39169                                                                                                       }, 'Parse::RecDescent::Token' )
39170                                                                                              ],
39171                                                                                   'line' => 371
39172                                                                                 }, 'Parse::RecDescent::Production' ),
39173                                                                          bless( {
39174                                                                                   'number' => '40',
39175                                                                                   'strcount' => 0,
39176                                                                                   'dircount' => 0,
39177                                                                                   'uncommit' => undef,
39178                                                                                   'error' => undef,
39179                                                                                   'patcount' => 0,
39180                                                                                   'actcount' => 0,
39181                                                                                   'items' => [
39182                                                                                                bless( {
39183                                                                                                         'subrule' => '_alternation_1_of_production_41_of_rule_sysibm_function',
39184                                                                                                         'matchrule' => 0,
39185                                                                                                         'implicit' => '/INTEGER/i, or /INT/',
39186                                                                                                         'argcode' => undef,
39187                                                                                                         'lookahead' => 0,
39188                                                                                                         'line' => 372
39189                                                                                                       }, 'Parse::RecDescent::Subrule' )
39190                                                                                              ],
39191                                                                                   'line' => 372
39192                                                                                 }, 'Parse::RecDescent::Production' ),
39193                                                                          bless( {
39194                                                                                   'number' => '41',
39195                                                                                   'strcount' => 0,
39196                                                                                   'dircount' => 0,
39197                                                                                   'uncommit' => undef,
39198                                                                                   'error' => undef,
39199                                                                                   'patcount' => 0,
39200                                                                                   'actcount' => 0,
39201                                                                                   'items' => [
39202                                                                                                bless( {
39203                                                                                                         'subrule' => '_alternation_1_of_production_42_of_rule_sysibm_function',
39204                                                                                                         'matchrule' => 0,
39205                                                                                                         'implicit' => '/LCASE/i, or /LOWER/',
39206                                                                                                         'argcode' => undef,
39207                                                                                                         'lookahead' => 0,
39208                                                                                                         'line' => 373
39209                                                                                                       }, 'Parse::RecDescent::Subrule' )
39210                                                                                              ],
39211                                                                                   'line' => 373
39212                                                                                 }, 'Parse::RecDescent::Production' ),
39213                                                                          bless( {
39214                                                                                   'number' => '42',
39215                                                                                   'strcount' => 0,
39216                                                                                   'dircount' => 0,
39217                                                                                   'uncommit' => undef,
39218                                                                                   'error' => undef,
39219                                                                                   'patcount' => 1,
39220                                                                                   'actcount' => 0,
39221                                                                                   'items' => [
39222                                                                                                bless( {
39223                                                                                                         'pattern' => 'LENGTH',
39224                                                                                                         'hashname' => '__PATTERN1__',
39225                                                                                                         'description' => '/LENGTH/i',
39226                                                                                                         'lookahead' => 0,
39227                                                                                                         'rdelim' => '/',
39228                                                                                                         'line' => 374,
39229                                                                                                         'mod' => 'i',
39230                                                                                                         'ldelim' => '/'
39231                                                                                                       }, 'Parse::RecDescent::Token' )
39232                                                                                              ],
39233                                                                                   'line' => 374
39234                                                                                 }, 'Parse::RecDescent::Production' ),
39235                                                                          bless( {
39236                                                                                   'number' => '43',
39237                                                                                   'strcount' => 0,
39238                                                                                   'dircount' => 0,
39239                                                                                   'uncommit' => undef,
39240                                                                                   'error' => undef,
39241                                                                                   'patcount' => 1,
39242                                                                                   'actcount' => 0,
39243                                                                                   'items' => [
39244                                                                                                bless( {
39245                                                                                                         'pattern' => 'LONG_VARCHAR',
39246                                                                                                         'hashname' => '__PATTERN1__',
39247                                                                                                         'description' => '/LONG_VARCHAR/i',
39248                                                                                                         'lookahead' => 0,
39249                                                                                                         'rdelim' => '/',
39250                                                                                                         'line' => 375,
39251                                                                                                         'mod' => 'i',
39252                                                                                                         'ldelim' => '/'
39253                                                                                                       }, 'Parse::RecDescent::Token' )
39254                                                                                              ],
39255                                                                                   'line' => 375
39256                                                                                 }, 'Parse::RecDescent::Production' ),
39257                                                                          bless( {
39258                                                                                   'number' => '44',
39259                                                                                   'strcount' => 0,
39260                                                                                   'dircount' => 0,
39261                                                                                   'uncommit' => undef,
39262                                                                                   'error' => undef,
39263                                                                                   'patcount' => 1,
39264                                                                                   'actcount' => 0,
39265                                                                                   'items' => [
39266                                                                                                bless( {
39267                                                                                                         'pattern' => 'LONG_VARGRAPHIC',
39268                                                                                                         'hashname' => '__PATTERN1__',
39269                                                                                                         'description' => '/LONG_VARGRAPHIC/i',
39270                                                                                                         'lookahead' => 0,
39271                                                                                                         'rdelim' => '/',
39272                                                                                                         'line' => 376,
39273                                                                                                         'mod' => 'i',
39274                                                                                                         'ldelim' => '/'
39275                                                                                                       }, 'Parse::RecDescent::Token' )
39276                                                                                              ],
39277                                                                                   'line' => 376
39278                                                                                 }, 'Parse::RecDescent::Production' ),
39279                                                                          bless( {
39280                                                                                   'number' => '45',
39281                                                                                   'strcount' => 0,
39282                                                                                   'dircount' => 0,
39283                                                                                   'uncommit' => undef,
39284                                                                                   'error' => undef,
39285                                                                                   'patcount' => 1,
39286                                                                                   'actcount' => 0,
39287                                                                                   'items' => [
39288                                                                                                bless( {
39289                                                                                                         'pattern' => 'LTRIM',
39290                                                                                                         'hashname' => '__PATTERN1__',
39291                                                                                                         'description' => '/LTRIM/i',
39292                                                                                                         'lookahead' => 0,
39293                                                                                                         'rdelim' => '/',
39294                                                                                                         'line' => 377,
39295                                                                                                         'mod' => 'i',
39296                                                                                                         'ldelim' => '/'
39297                                                                                                       }, 'Parse::RecDescent::Token' )
39298                                                                                              ],
39299                                                                                   'line' => 377
39300                                                                                 }, 'Parse::RecDescent::Production' ),
39301                                                                          bless( {
39302                                                                                   'number' => '46',
39303                                                                                   'strcount' => 0,
39304                                                                                   'dircount' => 0,
39305                                                                                   'uncommit' => undef,
39306                                                                                   'error' => undef,
39307                                                                                   'patcount' => 1,
39308                                                                                   'actcount' => 0,
39309                                                                                   'items' => [
39310                                                                                                bless( {
39311                                                                                                         'pattern' => 'MAX',
39312                                                                                                         'hashname' => '__PATTERN1__',
39313                                                                                                         'description' => '/MAX/i',
39314                                                                                                         'lookahead' => 0,
39315                                                                                                         'rdelim' => '/',
39316                                                                                                         'line' => 378,
39317                                                                                                         'mod' => 'i',
39318                                                                                                         'ldelim' => '/'
39319                                                                                                       }, 'Parse::RecDescent::Token' )
39320                                                                                              ],
39321                                                                                   'line' => 378
39322                                                                                 }, 'Parse::RecDescent::Production' ),
39323                                                                          bless( {
39324                                                                                   'number' => '47',
39325                                                                                   'strcount' => 0,
39326                                                                                   'dircount' => 0,
39327                                                                                   'uncommit' => undef,
39328                                                                                   'error' => undef,
39329                                                                                   'patcount' => 1,
39330                                                                                   'actcount' => 0,
39331                                                                                   'items' => [
39332                                                                                                bless( {
39333                                                                                                         'pattern' => 'MICROSECOND',
39334                                                                                                         'hashname' => '__PATTERN1__',
39335                                                                                                         'description' => '/MICROSECOND/i',
39336                                                                                                         'lookahead' => 0,
39337                                                                                                         'rdelim' => '/',
39338                                                                                                         'line' => 379,
39339                                                                                                         'mod' => 'i',
39340                                                                                                         'ldelim' => '/'
39341                                                                                                       }, 'Parse::RecDescent::Token' )
39342                                                                                              ],
39343                                                                                   'line' => 379
39344                                                                                 }, 'Parse::RecDescent::Production' ),
39345                                                                          bless( {
39346                                                                                   'number' => '48',
39347                                                                                   'strcount' => 0,
39348                                                                                   'dircount' => 0,
39349                                                                                   'uncommit' => undef,
39350                                                                                   'error' => undef,
39351                                                                                   'patcount' => 1,
39352                                                                                   'actcount' => 0,
39353                                                                                   'items' => [
39354                                                                                                bless( {
39355                                                                                                         'pattern' => 'MIN',
39356                                                                                                         'hashname' => '__PATTERN1__',
39357                                                                                                         'description' => '/MIN/i',
39358                                                                                                         'lookahead' => 0,
39359                                                                                                         'rdelim' => '/',
39360                                                                                                         'line' => 380,
39361                                                                                                         'mod' => 'i',
39362                                                                                                         'ldelim' => '/'
39363                                                                                                       }, 'Parse::RecDescent::Token' )
39364                                                                                              ],
39365                                                                                   'line' => 380
39366                                                                                 }, 'Parse::RecDescent::Production' ),
39367                                                                          bless( {
39368                                                                                   'number' => '49',
39369                                                                                   'strcount' => 0,
39370                                                                                   'dircount' => 0,
39371                                                                                   'uncommit' => undef,
39372                                                                                   'error' => undef,
39373                                                                                   'patcount' => 1,
39374                                                                                   'actcount' => 0,
39375                                                                                   'items' => [
39376                                                                                                bless( {
39377                                                                                                         'pattern' => 'MINUTE',
39378                                                                                                         'hashname' => '__PATTERN1__',
39379                                                                                                         'description' => '/MINUTE/i',
39380                                                                                                         'lookahead' => 0,
39381                                                                                                         'rdelim' => '/',
39382                                                                                                         'line' => 381,
39383                                                                                                         'mod' => 'i',
39384                                                                                                         'ldelim' => '/'
39385                                                                                                       }, 'Parse::RecDescent::Token' )
39386                                                                                              ],
39387                                                                                   'line' => 381
39388                                                                                 }, 'Parse::RecDescent::Production' ),
39389                                                                          bless( {
39390                                                                                   'number' => '50',
39391                                                                                   'strcount' => 0,
39392                                                                                   'dircount' => 0,
39393                                                                                   'uncommit' => undef,
39394                                                                                   'error' => undef,
39395                                                                                   'patcount' => 1,
39396                                                                                   'actcount' => 0,
39397                                                                                   'items' => [
39398                                                                                                bless( {
39399                                                                                                         'pattern' => 'MONTH',
39400                                                                                                         'hashname' => '__PATTERN1__',
39401                                                                                                         'description' => '/MONTH/i',
39402                                                                                                         'lookahead' => 0,
39403                                                                                                         'rdelim' => '/',
39404                                                                                                         'line' => 382,
39405                                                                                                         'mod' => 'i',
39406                                                                                                         'ldelim' => '/'
39407                                                                                                       }, 'Parse::RecDescent::Token' )
39408                                                                                              ],
39409                                                                                   'line' => 382
39410                                                                                 }, 'Parse::RecDescent::Production' ),
39411                                                                          bless( {
39412                                                                                   'number' => '51',
39413                                                                                   'strcount' => 0,
39414                                                                                   'dircount' => 0,
39415                                                                                   'uncommit' => undef,
39416                                                                                   'error' => undef,
39417                                                                                   'patcount' => 1,
39418                                                                                   'actcount' => 0,
39419                                                                                   'items' => [
39420                                                                                                bless( {
39421                                                                                                         'pattern' => 'MULTIPLY_ACT',
39422                                                                                                         'hashname' => '__PATTERN1__',
39423                                                                                                         'description' => '/MULTIPLY_ACT/i',
39424                                                                                                         'lookahead' => 0,
39425                                                                                                         'rdelim' => '/',
39426                                                                                                         'line' => 383,
39427                                                                                                         'mod' => 'i',
39428                                                                                                         'ldelim' => '/'
39429                                                                                                       }, 'Parse::RecDescent::Token' )
39430                                                                                              ],
39431                                                                                   'line' => 383
39432                                                                                 }, 'Parse::RecDescent::Production' ),
39433                                                                          bless( {
39434                                                                                   'number' => '52',
39435                                                                                   'strcount' => 0,
39436                                                                                   'dircount' => 0,
39437                                                                                   'uncommit' => undef,
39438                                                                                   'error' => undef,
39439                                                                                   'patcount' => 1,
39440                                                                                   'actcount' => 0,
39441                                                                                   'items' => [
39442                                                                                                bless( {
39443                                                                                                         'pattern' => 'NODENUMBER',
39444                                                                                                         'hashname' => '__PATTERN1__',
39445                                                                                                         'description' => '/NODENUMBER/i',
39446                                                                                                         'lookahead' => 0,
39447                                                                                                         'rdelim' => '/',
39448                                                                                                         'line' => 384,
39449                                                                                                         'mod' => 'i',
39450                                                                                                         'ldelim' => '/'
39451                                                                                                       }, 'Parse::RecDescent::Token' )
39452                                                                                              ],
39453                                                                                   'line' => 384
39454                                                                                 }, 'Parse::RecDescent::Production' ),
39455                                                                          bless( {
39456                                                                                   'number' => '53',
39457                                                                                   'strcount' => 0,
39458                                                                                   'dircount' => 0,
39459                                                                                   'uncommit' => undef,
39460                                                                                   'error' => undef,
39461                                                                                   'patcount' => 1,
39462                                                                                   'actcount' => 0,
39463                                                                                   'items' => [
39464                                                                                                bless( {
39465                                                                                                         'pattern' => 'NULLIF',
39466                                                                                                         'hashname' => '__PATTERN1__',
39467                                                                                                         'description' => '/NULLIF/i',
39468                                                                                                         'lookahead' => 0,
39469                                                                                                         'rdelim' => '/',
39470                                                                                                         'line' => 385,
39471                                                                                                         'mod' => 'i',
39472                                                                                                         'ldelim' => '/'
39473                                                                                                       }, 'Parse::RecDescent::Token' )
39474                                                                                              ],
39475                                                                                   'line' => 385
39476                                                                                 }, 'Parse::RecDescent::Production' ),
39477                                                                          bless( {
39478                                                                                   'number' => '54',
39479                                                                                   'strcount' => 0,
39480                                                                                   'dircount' => 0,
39481                                                                                   'uncommit' => undef,
39482                                                                                   'error' => undef,
39483                                                                                   'patcount' => 1,
39484                                                                                   'actcount' => 0,
39485                                                                                   'items' => [
39486                                                                                                bless( {
39487                                                                                                         'pattern' => 'PARTITON',
39488                                                                                                         'hashname' => '__PATTERN1__',
39489                                                                                                         'description' => '/PARTITON/i',
39490                                                                                                         'lookahead' => 0,
39491                                                                                                         'rdelim' => '/',
39492                                                                                                         'line' => 386,
39493                                                                                                         'mod' => 'i',
39494                                                                                                         'ldelim' => '/'
39495                                                                                                       }, 'Parse::RecDescent::Token' )
39496                                                                                              ],
39497                                                                                   'line' => 386
39498                                                                                 }, 'Parse::RecDescent::Production' ),
39499                                                                          bless( {
39500                                                                                   'number' => '55',
39501                                                                                   'strcount' => 0,
39502                                                                                   'dircount' => 0,
39503                                                                                   'uncommit' => undef,
39504                                                                                   'error' => undef,
39505                                                                                   'patcount' => 1,
39506                                                                                   'actcount' => 0,
39507                                                                                   'items' => [
39508                                                                                                bless( {
39509                                                                                                         'pattern' => 'POSSTR',
39510                                                                                                         'hashname' => '__PATTERN1__',
39511                                                                                                         'description' => '/POSSTR/i',
39512                                                                                                         'lookahead' => 0,
39513                                                                                                         'rdelim' => '/',
39514                                                                                                         'line' => 387,
39515                                                                                                         'mod' => 'i',
39516                                                                                                         'ldelim' => '/'
39517                                                                                                       }, 'Parse::RecDescent::Token' )
39518                                                                                              ],
39519                                                                                   'line' => 387
39520                                                                                 }, 'Parse::RecDescent::Production' ),
39521                                                                          bless( {
39522                                                                                   'number' => '56',
39523                                                                                   'strcount' => 0,
39524                                                                                   'dircount' => 0,
39525                                                                                   'uncommit' => undef,
39526                                                                                   'error' => undef,
39527                                                                                   'patcount' => 1,
39528                                                                                   'actcount' => 0,
39529                                                                                   'items' => [
39530                                                                                                bless( {
39531                                                                                                         'pattern' => 'RAISE_ERROR',
39532                                                                                                         'hashname' => '__PATTERN1__',
39533                                                                                                         'description' => '/RAISE_ERROR/i',
39534                                                                                                         'lookahead' => 0,
39535                                                                                                         'rdelim' => '/',
39536                                                                                                         'line' => 388,
39537                                                                                                         'mod' => 'i',
39538                                                                                                         'ldelim' => '/'
39539                                                                                                       }, 'Parse::RecDescent::Token' )
39540                                                                                              ],
39541                                                                                   'line' => 388
39542                                                                                 }, 'Parse::RecDescent::Production' ),
39543                                                                          bless( {
39544                                                                                   'number' => '57',
39545                                                                                   'strcount' => 0,
39546                                                                                   'dircount' => 0,
39547                                                                                   'uncommit' => undef,
39548                                                                                   'error' => undef,
39549                                                                                   'patcount' => 1,
39550                                                                                   'actcount' => 0,
39551                                                                                   'items' => [
39552                                                                                                bless( {
39553                                                                                                         'pattern' => 'REAL',
39554                                                                                                         'hashname' => '__PATTERN1__',
39555                                                                                                         'description' => '/REAL/i',
39556                                                                                                         'lookahead' => 0,
39557                                                                                                         'rdelim' => '/',
39558                                                                                                         'line' => 389,
39559                                                                                                         'mod' => 'i',
39560                                                                                                         'ldelim' => '/'
39561                                                                                                       }, 'Parse::RecDescent::Token' )
39562                                                                                              ],
39563                                                                                   'line' => 389
39564                                                                                 }, 'Parse::RecDescent::Production' ),
39565                                                                          bless( {
39566                                                                                   'number' => '58',
39567                                                                                   'strcount' => 0,
39568                                                                                   'dircount' => 0,
39569                                                                                   'uncommit' => undef,
39570                                                                                   'error' => undef,
39571                                                                                   'patcount' => 1,
39572                                                                                   'actcount' => 0,
39573                                                                                   'items' => [
39574                                                                                                bless( {
39575                                                                                                         'pattern' => 'REC2XML',
39576                                                                                                         'hashname' => '__PATTERN1__',
39577                                                                                                         'description' => '/REC2XML/i',
39578                                                                                                         'lookahead' => 0,
39579                                                                                                         'rdelim' => '/',
39580                                                                                                         'line' => 390,
39581                                                                                                         'mod' => 'i',
39582                                                                                                         'ldelim' => '/'
39583                                                                                                       }, 'Parse::RecDescent::Token' )
39584                                                                                              ],
39585                                                                                   'line' => 390
39586                                                                                 }, 'Parse::RecDescent::Production' ),
39587                                                                          bless( {
39588                                                                                   'number' => '59',
39589                                                                                   'strcount' => 0,
39590                                                                                   'dircount' => 0,
39591                                                                                   'uncommit' => undef,
39592                                                                                   'error' => undef,
39593                                                                                   'patcount' => 1,
39594                                                                                   'actcount' => 0,
39595                                                                                   'items' => [
39596                                                                                                bless( {
39597                                                                                                         'pattern' => 'REGR_AVGX',
39598                                                                                                         'hashname' => '__PATTERN1__',
39599                                                                                                         'description' => '/REGR_AVGX/i',
39600                                                                                                         'lookahead' => 0,
39601                                                                                                         'rdelim' => '/',
39602                                                                                                         'line' => 391,
39603                                                                                                         'mod' => 'i',
39604                                                                                                         'ldelim' => '/'
39605                                                                                                       }, 'Parse::RecDescent::Token' )
39606                                                                                              ],
39607                                                                                   'line' => 391
39608                                                                                 }, 'Parse::RecDescent::Production' ),
39609                                                                          bless( {
39610                                                                                   'number' => '60',
39611                                                                                   'strcount' => 0,
39612                                                                                   'dircount' => 0,
39613                                                                                   'uncommit' => undef,
39614                                                                                   'error' => undef,
39615                                                                                   'patcount' => 1,
39616                                                                                   'actcount' => 0,
39617                                                                                   'items' => [
39618                                                                                                bless( {
39619                                                                                                         'pattern' => 'REGR_AVGY',
39620                                                                                                         'hashname' => '__PATTERN1__',
39621                                                                                                         'description' => '/REGR_AVGY/i',
39622                                                                                                         'lookahead' => 0,
39623                                                                                                         'rdelim' => '/',
39624                                                                                                         'line' => 392,
39625                                                                                                         'mod' => 'i',
39626                                                                                                         'ldelim' => '/'
39627                                                                                                       }, 'Parse::RecDescent::Token' )
39628                                                                                              ],
39629                                                                                   'line' => 392
39630                                                                                 }, 'Parse::RecDescent::Production' ),
39631                                                                          bless( {
39632                                                                                   'number' => '61',
39633                                                                                   'strcount' => 0,
39634                                                                                   'dircount' => 0,
39635                                                                                   'uncommit' => undef,
39636                                                                                   'error' => undef,
39637                                                                                   'patcount' => 1,
39638                                                                                   'actcount' => 0,
39639                                                                                   'items' => [
39640                                                                                                bless( {
39641                                                                                                         'pattern' => 'REGR_COUNT',
39642                                                                                                         'hashname' => '__PATTERN1__',
39643                                                                                                         'description' => '/REGR_COUNT/i',
39644                                                                                                         'lookahead' => 0,
39645                                                                                                         'rdelim' => '/',
39646                                                                                                         'line' => 393,
39647                                                                                                         'mod' => 'i',
39648                                                                                                         'ldelim' => '/'
39649                                                                                                       }, 'Parse::RecDescent::Token' )
39650                                                                                              ],
39651                                                                                   'line' => 393
39652                                                                                 }, 'Parse::RecDescent::Production' ),
39653                                                                          bless( {
39654                                                                                   'number' => '62',
39655                                                                                   'strcount' => 0,
39656                                                                                   'dircount' => 0,
39657                                                                                   'uncommit' => undef,
39658                                                                                   'error' => undef,
39659                                                                                   'patcount' => 0,
39660                                                                                   'actcount' => 0,
39661                                                                                   'items' => [
39662                                                                                                bless( {
39663                                                                                                         'subrule' => '_alternation_1_of_production_63_of_rule_sysibm_function',
39664                                                                                                         'matchrule' => 0,
39665                                                                                                         'implicit' => '/REGR_INTERCEPT/i, or /REGR_ICPT/i',
39666                                                                                                         'argcode' => undef,
39667                                                                                                         'lookahead' => 0,
39668                                                                                                         'line' => 394
39669                                                                                                       }, 'Parse::RecDescent::Subrule' )
39670                                                                                              ],
39671                                                                                   'line' => 394
39672                                                                                 }, 'Parse::RecDescent::Production' ),
39673                                                                          bless( {
39674                                                                                   'number' => '63',
39675                                                                                   'strcount' => 0,
39676                                                                                   'dircount' => 0,
39677                                                                                   'uncommit' => undef,
39678                                                                                   'error' => undef,
39679                                                                                   'patcount' => 1,
39680                                                                                   'actcount' => 0,
39681                                                                                   'items' => [
39682                                                                                                bless( {
39683                                                                                                         'pattern' => 'REGR_R2',
39684                                                                                                         'hashname' => '__PATTERN1__',
39685                                                                                                         'description' => '/REGR_R2/i',
39686                                                                                                         'lookahead' => 0,
39687                                                                                                         'rdelim' => '/',
39688                                                                                                         'line' => 395,
39689                                                                                                         'mod' => 'i',
39690                                                                                                         'ldelim' => '/'
39691                                                                                                       }, 'Parse::RecDescent::Token' )
39692                                                                                              ],
39693                                                                                   'line' => 395
39694                                                                                 }, 'Parse::RecDescent::Production' ),
39695                                                                          bless( {
39696                                                                                   'number' => '64',
39697                                                                                   'strcount' => 0,
39698                                                                                   'dircount' => 0,
39699                                                                                   'uncommit' => undef,
39700                                                                                   'error' => undef,
39701                                                                                   'patcount' => 1,
39702                                                                                   'actcount' => 0,
39703                                                                                   'items' => [
39704                                                                                                bless( {
39705                                                                                                         'pattern' => 'REGR_SLOPE',
39706                                                                                                         'hashname' => '__PATTERN1__',
39707                                                                                                         'description' => '/REGR_SLOPE/i',
39708                                                                                                         'lookahead' => 0,
39709                                                                                                         'rdelim' => '/',
39710                                                                                                         'line' => 396,
39711                                                                                                         'mod' => 'i',
39712                                                                                                         'ldelim' => '/'
39713                                                                                                       }, 'Parse::RecDescent::Token' )
39714                                                                                              ],
39715                                                                                   'line' => 396
39716                                                                                 }, 'Parse::RecDescent::Production' ),
39717                                                                          bless( {
39718                                                                                   'number' => '65',
39719                                                                                   'strcount' => 0,
39720                                                                                   'dircount' => 0,
39721                                                                                   'uncommit' => undef,
39722                                                                                   'error' => undef,
39723                                                                                   'patcount' => 1,
39724                                                                                   'actcount' => 0,
39725                                                                                   'items' => [
39726                                                                                                bless( {
39727                                                                                                         'pattern' => 'REGR_SXX',
39728                                                                                                         'hashname' => '__PATTERN1__',
39729                                                                                                         'description' => '/REGR_SXX/i',
39730                                                                                                         'lookahead' => 0,
39731                                                                                                         'rdelim' => '/',
39732                                                                                                         'line' => 397,
39733                                                                                                         'mod' => 'i',
39734                                                                                                         'ldelim' => '/'
39735                                                                                                       }, 'Parse::RecDescent::Token' )
39736                                                                                              ],
39737                                                                                   'line' => 397
39738                                                                                 }, 'Parse::RecDescent::Production' ),
39739                                                                          bless( {
39740                                                                                   'number' => '66',
39741                                                                                   'strcount' => 0,
39742                                                                                   'dircount' => 0,
39743                                                                                   'uncommit' => undef,
39744                                                                                   'error' => undef,
39745                                                                                   'patcount' => 1,
39746                                                                                   'actcount' => 0,
39747                                                                                   'items' => [
39748                                                                                                bless( {
39749                                                                                                         'pattern' => 'REGR_SXY',
39750                                                                                                         'hashname' => '__PATTERN1__',
39751                                                                                                         'description' => '/REGR_SXY/i',
39752                                                                                                         'lookahead' => 0,
39753                                                                                                         'rdelim' => '/',
39754                                                                                                         'line' => 398,
39755                                                                                                         'mod' => 'i',
39756                                                                                                         'ldelim' => '/'
39757                                                                                                       }, 'Parse::RecDescent::Token' )
39758                                                                                              ],
39759                                                                                   'line' => 398
39760                                                                                 }, 'Parse::RecDescent::Production' ),
39761                                                                          bless( {
39762                                                                                   'number' => '67',
39763                                                                                   'strcount' => 0,
39764                                                                                   'dircount' => 0,
39765                                                                                   'uncommit' => undef,
39766                                                                                   'error' => undef,
39767                                                                                   'patcount' => 1,
39768                                                                                   'actcount' => 0,
39769                                                                                   'items' => [
39770                                                                                                bless( {
39771                                                                                                         'pattern' => 'REGR_SYY',
39772                                                                                                         'hashname' => '__PATTERN1__',
39773                                                                                                         'description' => '/REGR_SYY/i',
39774                                                                                                         'lookahead' => 0,
39775                                                                                                         'rdelim' => '/',
39776                                                                                                         'line' => 399,
39777                                                                                                         'mod' => 'i',
39778                                                                                                         'ldelim' => '/'
39779                                                                                                       }, 'Parse::RecDescent::Token' )
39780                                                                                              ],
39781                                                                                   'line' => 399
39782                                                                                 }, 'Parse::RecDescent::Production' ),
39783                                                                          bless( {
39784                                                                                   'number' => '68',
39785                                                                                   'strcount' => 0,
39786                                                                                   'dircount' => 0,
39787                                                                                   'uncommit' => undef,
39788                                                                                   'error' => undef,
39789                                                                                   'patcount' => 1,
39790                                                                                   'actcount' => 0,
39791                                                                                   'items' => [
39792                                                                                                bless( {
39793                                                                                                         'pattern' => 'RTRIM',
39794                                                                                                         'hashname' => '__PATTERN1__',
39795                                                                                                         'description' => '/RTRIM/i',
39796                                                                                                         'lookahead' => 0,
39797                                                                                                         'rdelim' => '/',
39798                                                                                                         'line' => 400,
39799                                                                                                         'mod' => 'i',
39800                                                                                                         'ldelim' => '/'
39801                                                                                                       }, 'Parse::RecDescent::Token' )
39802                                                                                              ],
39803                                                                                   'line' => 400
39804                                                                                 }, 'Parse::RecDescent::Production' ),
39805                                                                          bless( {
39806                                                                                   'number' => '69',
39807                                                                                   'strcount' => 0,
39808                                                                                   'dircount' => 0,
39809                                                                                   'uncommit' => undef,
39810                                                                                   'error' => undef,
39811                                                                                   'patcount' => 1,
39812                                                                                   'actcount' => 0,
39813                                                                                   'items' => [
39814                                                                                                bless( {
39815                                                                                                         'pattern' => 'SECOND',
39816                                                                                                         'hashname' => '__PATTERN1__',
39817                                                                                                         'description' => '/SECOND/i',
39818                                                                                                         'lookahead' => 0,
39819                                                                                                         'rdelim' => '/',
39820                                                                                                         'line' => 401,
39821                                                                                                         'mod' => 'i',
39822                                                                                                         'ldelim' => '/'
39823                                                                                                       }, 'Parse::RecDescent::Token' )
39824                                                                                              ],
39825                                                                                   'line' => 401
39826                                                                                 }, 'Parse::RecDescent::Production' ),
39827                                                                          bless( {
39828                                                                                   'number' => '70',
39829                                                                                   'strcount' => 0,
39830                                                                                   'dircount' => 0,
39831                                                                                   'uncommit' => undef,
39832                                                                                   'error' => undef,
39833                                                                                   'patcount' => 1,
39834                                                                                   'actcount' => 0,
39835                                                                                   'items' => [
39836                                                                                                bless( {
39837                                                                                                         'pattern' => 'SMALLINT',
39838                                                                                                         'hashname' => '__PATTERN1__',
39839                                                                                                         'description' => '/SMALLINT/i',
39840                                                                                                         'lookahead' => 0,
39841                                                                                                         'rdelim' => '/',
39842                                                                                                         'line' => 402,
39843                                                                                                         'mod' => 'i',
39844                                                                                                         'ldelim' => '/'
39845                                                                                                       }, 'Parse::RecDescent::Token' )
39846                                                                                              ],
39847                                                                                   'line' => 402
39848                                                                                 }, 'Parse::RecDescent::Production' ),
39849                                                                          bless( {
39850                                                                                   'number' => '71',
39851                                                                                   'strcount' => 0,
39852                                                                                   'dircount' => 0,
39853                                                                                   'uncommit' => undef,
39854                                                                                   'error' => undef,
39855                                                                                   'patcount' => 1,
39856                                                                                   'actcount' => 0,
39857                                                                                   'items' => [
39858                                                                                                bless( {
39859                                                                                                         'pattern' => 'STDDEV',
39860                                                                                                         'hashname' => '__PATTERN1__',
39861                                                                                                         'description' => '/STDDEV/i',
39862                                                                                                         'lookahead' => 0,
39863                                                                                                         'rdelim' => '/',
39864                                                                                                         'line' => 403,
39865                                                                                                         'mod' => 'i',
39866                                                                                                         'ldelim' => '/'
39867                                                                                                       }, 'Parse::RecDescent::Token' )
39868                                                                                              ],
39869                                                                                   'line' => 403
39870                                                                                 }, 'Parse::RecDescent::Production' ),
39871                                                                          bless( {
39872                                                                                   'number' => '72',
39873                                                                                   'strcount' => 0,
39874                                                                                   'dircount' => 0,
39875                                                                                   'uncommit' => undef,
39876                                                                                   'error' => undef,
39877                                                                                   'patcount' => 1,
39878                                                                                   'actcount' => 0,
39879                                                                                   'items' => [
39880                                                                                                bless( {
39881                                                                                                         'pattern' => 'SUBSTR',
39882                                                                                                         'hashname' => '__PATTERN1__',
39883                                                                                                         'description' => '/SUBSTR/i',
39884                                                                                                         'lookahead' => 0,
39885                                                                                                         'rdelim' => '/',
39886                                                                                                         'line' => 404,
39887                                                                                                         'mod' => 'i',
39888                                                                                                         'ldelim' => '/'
39889                                                                                                       }, 'Parse::RecDescent::Token' )
39890                                                                                              ],
39891                                                                                   'line' => 404
39892                                                                                 }, 'Parse::RecDescent::Production' ),
39893                                                                          bless( {
39894                                                                                   'number' => '73',
39895                                                                                   'strcount' => 0,
39896                                                                                   'dircount' => 0,
39897                                                                                   'uncommit' => undef,
39898                                                                                   'error' => undef,
39899                                                                                   'patcount' => 1,
39900                                                                                   'actcount' => 0,
39901                                                                                   'items' => [
39902                                                                                                bless( {
39903                                                                                                         'pattern' => 'SUM',
39904                                                                                                         'hashname' => '__PATTERN1__',
39905                                                                                                         'description' => '/SUM/i',
39906                                                                                                         'lookahead' => 0,
39907                                                                                                         'rdelim' => '/',
39908                                                                                                         'line' => 405,
39909                                                                                                         'mod' => 'i',
39910                                                                                                         'ldelim' => '/'
39911                                                                                                       }, 'Parse::RecDescent::Token' )
39912                                                                                              ],
39913                                                                                   'line' => 405
39914                                                                                 }, 'Parse::RecDescent::Production' ),
39915                                                                          bless( {
39916                                                                                   'number' => '74',
39917                                                                                   'strcount' => 0,
39918                                                                                   'dircount' => 0,
39919                                                                                   'uncommit' => undef,
39920                                                                                   'error' => undef,
39921                                                                                   'patcount' => 1,
39922                                                                                   'actcount' => 0,
39923                                                                                   'items' => [
39924                                                                                                bless( {
39925                                                                                                         'pattern' => 'TABLE_NAME',
39926                                                                                                         'hashname' => '__PATTERN1__',
39927                                                                                                         'description' => '/TABLE_NAME/i',
39928                                                                                                         'lookahead' => 0,
39929                                                                                                         'rdelim' => '/',
39930                                                                                                         'line' => 406,
39931                                                                                                         'mod' => 'i',
39932                                                                                                         'ldelim' => '/'
39933                                                                                                       }, 'Parse::RecDescent::Token' )
39934                                                                                              ],
39935                                                                                   'line' => 406
39936                                                                                 }, 'Parse::RecDescent::Production' ),
39937                                                                          bless( {
39938                                                                                   'number' => '75',
39939                                                                                   'strcount' => 0,
39940                                                                                   'dircount' => 0,
39941                                                                                   'uncommit' => undef,
39942                                                                                   'error' => undef,
39943                                                                                   'patcount' => 1,
39944                                                                                   'actcount' => 0,
39945                                                                                   'items' => [
39946                                                                                                bless( {
39947                                                                                                         'pattern' => 'TABLE_SCHEMA',
39948                                                                                                         'hashname' => '__PATTERN1__',
39949                                                                                                         'description' => '/TABLE_SCHEMA/i',
39950                                                                                                         'lookahead' => 0,
39951                                                                                                         'rdelim' => '/',
39952                                                                                                         'line' => 407,
39953                                                                                                         'mod' => 'i',
39954                                                                                                         'ldelim' => '/'
39955                                                                                                       }, 'Parse::RecDescent::Token' )
39956                                                                                              ],
39957                                                                                   'line' => 407
39958                                                                                 }, 'Parse::RecDescent::Production' ),
39959                                                                          bless( {
39960                                                                                   'number' => '76',
39961                                                                                   'strcount' => 0,
39962                                                                                   'dircount' => 0,
39963                                                                                   'uncommit' => undef,
39964                                                                                   'error' => undef,
39965                                                                                   'patcount' => 1,
39966                                                                                   'actcount' => 0,
39967                                                                                   'items' => [
39968                                                                                                bless( {
39969                                                                                                         'pattern' => 'TIME',
39970                                                                                                         'hashname' => '__PATTERN1__',
39971                                                                                                         'description' => '/TIME/i',
39972                                                                                                         'lookahead' => 0,
39973                                                                                                         'rdelim' => '/',
39974                                                                                                         'line' => 408,
39975                                                                                                         'mod' => 'i',
39976                                                                                                         'ldelim' => '/'
39977                                                                                                       }, 'Parse::RecDescent::Token' )
39978                                                                                              ],
39979                                                                                   'line' => 408
39980                                                                                 }, 'Parse::RecDescent::Production' ),
39981                                                                          bless( {
39982                                                                                   'number' => '77',
39983                                                                                   'strcount' => 0,
39984                                                                                   'dircount' => 0,
39985                                                                                   'uncommit' => undef,
39986                                                                                   'error' => undef,
39987                                                                                   'patcount' => 1,
39988                                                                                   'actcount' => 0,
39989                                                                                   'items' => [
39990                                                                                                bless( {
39991                                                                                                         'pattern' => 'TIMESTAMP',
39992                                                                                                         'hashname' => '__PATTERN1__',
39993                                                                                                         'description' => '/TIMESTAMP/i',
39994                                                                                                         'lookahead' => 0,
39995                                                                                                         'rdelim' => '/',
39996                                                                                                         'line' => 409,
39997                                                                                                         'mod' => 'i',
39998                                                                                                         'ldelim' => '/'
39999                                                                                                       }, 'Parse::RecDescent::Token' )
40000                                                                                              ],
40001                                                                                   'line' => 409
40002                                                                                 }, 'Parse::RecDescent::Production' ),
40003                                                                          bless( {
40004                                                                                   'number' => '78',
40005                                                                                   'strcount' => 0,
40006                                                                                   'dircount' => 0,
40007                                                                                   'uncommit' => undef,
40008                                                                                   'error' => undef,
40009                                                                                   'patcount' => 1,
40010                                                                                   'actcount' => 0,
40011                                                                                   'items' => [
40012                                                                                                bless( {
40013                                                                                                         'pattern' => 'TRANSLATE',
40014                                                                                                         'hashname' => '__PATTERN1__',
40015                                                                                                         'description' => '/TRANSLATE/i',
40016                                                                                                         'lookahead' => 0,
40017                                                                                                         'rdelim' => '/',
40018                                                                                                         'line' => 410,
40019                                                                                                         'mod' => 'i',
40020                                                                                                         'ldelim' => '/'
40021                                                                                                       }, 'Parse::RecDescent::Token' )
40022                                                                                              ],
40023                                                                                   'line' => 410
40024                                                                                 }, 'Parse::RecDescent::Production' ),
40025                                                                          bless( {
40026                                                                                   'number' => '79',
40027                                                                                   'strcount' => 0,
40028                                                                                   'dircount' => 0,
40029                                                                                   'uncommit' => undef,
40030                                                                                   'error' => undef,
40031                                                                                   'patcount' => 1,
40032                                                                                   'actcount' => 0,
40033                                                                                   'items' => [
40034                                                                                                bless( {
40035                                                                                                         'pattern' => 'TYPE_ID',
40036                                                                                                         'hashname' => '__PATTERN1__',
40037                                                                                                         'description' => '/TYPE_ID/i',
40038                                                                                                         'lookahead' => 0,
40039                                                                                                         'rdelim' => '/',
40040                                                                                                         'line' => 411,
40041                                                                                                         'mod' => 'i',
40042                                                                                                         'ldelim' => '/'
40043                                                                                                       }, 'Parse::RecDescent::Token' )
40044                                                                                              ],
40045                                                                                   'line' => 411
40046                                                                                 }, 'Parse::RecDescent::Production' ),
40047                                                                          bless( {
40048                                                                                   'number' => '80',
40049                                                                                   'strcount' => 0,
40050                                                                                   'dircount' => 0,
40051                                                                                   'uncommit' => undef,
40052                                                                                   'error' => undef,
40053                                                                                   'patcount' => 1,
40054                                                                                   'actcount' => 0,
40055                                                                                   'items' => [
40056                                                                                                bless( {
40057                                                                                                         'pattern' => 'TYPE_NAME',
40058                                                                                                         'hashname' => '__PATTERN1__',
40059                                                                                                         'description' => '/TYPE_NAME/i',
40060                                                                                                         'lookahead' => 0,
40061                                                                                                         'rdelim' => '/',
40062                                                                                                         'line' => 412,
40063                                                                                                         'mod' => 'i',
40064                                                                                                         'ldelim' => '/'
40065                                                                                                       }, 'Parse::RecDescent::Token' )
40066                                                                                              ],
40067                                                                                   'line' => 412
40068                                                                                 }, 'Parse::RecDescent::Production' ),
40069                                                                          bless( {
40070                                                                                   'number' => '81',
40071                                                                                   'strcount' => 0,
40072                                                                                   'dircount' => 0,
40073                                                                                   'uncommit' => undef,
40074                                                                                   'error' => undef,
40075                                                                                   'patcount' => 1,
40076                                                                                   'actcount' => 0,
40077                                                                                   'items' => [
40078                                                                                                bless( {
40079                                                                                                         'pattern' => 'TYPE_SCHEMA',
40080                                                                                                         'hashname' => '__PATTERN1__',
40081                                                                                                         'description' => '/TYPE_SCHEMA/i',
40082                                                                                                         'lookahead' => 0,
40083                                                                                                         'rdelim' => '/',
40084                                                                                                         'line' => 413,
40085                                                                                                         'mod' => 'i',
40086                                                                                                         'ldelim' => '/'
40087                                                                                                       }, 'Parse::RecDescent::Token' )
40088                                                                                              ],
40089                                                                                   'line' => 413
40090                                                                                 }, 'Parse::RecDescent::Production' ),
40091                                                                          bless( {
40092                                                                                   'number' => '82',
40093                                                                                   'strcount' => 0,
40094                                                                                   'dircount' => 0,
40095                                                                                   'uncommit' => undef,
40096                                                                                   'error' => undef,
40097                                                                                   'patcount' => 0,
40098                                                                                   'actcount' => 0,
40099                                                                                   'items' => [
40100                                                                                                bless( {
40101                                                                                                         'subrule' => '_alternation_1_of_production_83_of_rule_sysibm_function',
40102                                                                                                         'matchrule' => 0,
40103                                                                                                         'implicit' => '/UCASE/i, or /UPPER/i',
40104                                                                                                         'argcode' => undef,
40105                                                                                                         'lookahead' => 0,
40106                                                                                                         'line' => 414
40107                                                                                                       }, 'Parse::RecDescent::Subrule' )
40108                                                                                              ],
40109                                                                                   'line' => 414
40110                                                                                 }, 'Parse::RecDescent::Production' ),
40111                                                                          bless( {
40112                                                                                   'number' => '83',
40113                                                                                   'strcount' => 0,
40114                                                                                   'dircount' => 0,
40115                                                                                   'uncommit' => undef,
40116                                                                                   'error' => undef,
40117                                                                                   'patcount' => 1,
40118                                                                                   'actcount' => 0,
40119                                                                                   'items' => [
40120                                                                                                bless( {
40121                                                                                                         'pattern' => 'VALUE',
40122                                                                                                         'hashname' => '__PATTERN1__',
40123                                                                                                         'description' => '/VALUE/i',
40124                                                                                                         'lookahead' => 0,
40125                                                                                                         'rdelim' => '/',
40126                                                                                                         'line' => 415,
40127                                                                                                         'mod' => 'i',
40128                                                                                                         'ldelim' => '/'
40129                                                                                                       }, 'Parse::RecDescent::Token' )
40130                                                                                              ],
40131                                                                                   'line' => 415
40132                                                                                 }, 'Parse::RecDescent::Production' ),
40133                                                                          bless( {
40134                                                                                   'number' => '84',
40135                                                                                   'strcount' => 0,
40136                                                                                   'dircount' => 0,
40137                                                                                   'uncommit' => undef,
40138                                                                                   'error' => undef,
40139                                                                                   'patcount' => 1,
40140                                                                                   'actcount' => 0,
40141                                                                                   'items' => [
40142                                                                                                bless( {
40143                                                                                                         'pattern' => 'VARCHAR',
40144                                                                                                         'hashname' => '__PATTERN1__',
40145                                                                                                         'description' => '/VARCHAR/i',
40146                                                                                                         'lookahead' => 0,
40147                                                                                                         'rdelim' => '/',
40148                                                                                                         'line' => 416,
40149                                                                                                         'mod' => 'i',
40150                                                                                                         'ldelim' => '/'
40151                                                                                                       }, 'Parse::RecDescent::Token' )
40152                                                                                              ],
40153                                                                                   'line' => 416
40154                                                                                 }, 'Parse::RecDescent::Production' ),
40155                                                                          bless( {
40156                                                                                   'number' => '85',
40157                                                                                   'strcount' => 0,
40158                                                                                   'dircount' => 0,
40159                                                                                   'uncommit' => undef,
40160                                                                                   'error' => undef,
40161                                                                                   'patcount' => 1,
40162                                                                                   'actcount' => 0,
40163                                                                                   'items' => [
40164                                                                                                bless( {
40165                                                                                                         'pattern' => 'VARGRAPHIC',
40166                                                                                                         'hashname' => '__PATTERN1__',
40167                                                                                                         'description' => '/VARGRAPHIC/i',
40168                                                                                                         'lookahead' => 0,
40169                                                                                                         'rdelim' => '/',
40170                                                                                                         'line' => 417,
40171                                                                                                         'mod' => 'i',
40172                                                                                                         'ldelim' => '/'
40173                                                                                                       }, 'Parse::RecDescent::Token' )
40174                                                                                              ],
40175                                                                                   'line' => 417
40176                                                                                 }, 'Parse::RecDescent::Production' ),
40177                                                                          bless( {
40178                                                                                   'number' => '86',
40179                                                                                   'strcount' => 0,
40180                                                                                   'dircount' => 0,
40181                                                                                   'uncommit' => undef,
40182                                                                                   'error' => undef,
40183                                                                                   'patcount' => 0,
40184                                                                                   'actcount' => 0,
40185                                                                                   'items' => [
40186                                                                                                bless( {
40187                                                                                                         'subrule' => '_alternation_1_of_production_87_of_rule_sysibm_function',
40188                                                                                                         'matchrule' => 0,
40189                                                                                                         'implicit' => '/VARIANCE/i, or /VAR/i',
40190                                                                                                         'argcode' => undef,
40191                                                                                                         'lookahead' => 0,
40192                                                                                                         'line' => 418
40193                                                                                                       }, 'Parse::RecDescent::Subrule' )
40194                                                                                              ],
40195                                                                                   'line' => 418
40196                                                                                 }, 'Parse::RecDescent::Production' ),
40197                                                                          bless( {
40198                                                                                   'number' => '87',
40199                                                                                   'strcount' => 0,
40200                                                                                   'dircount' => 0,
40201                                                                                   'uncommit' => undef,
40202                                                                                   'error' => undef,
40203                                                                                   'patcount' => 1,
40204                                                                                   'actcount' => 0,
40205                                                                                   'items' => [
40206                                                                                                bless( {
40207                                                                                                         'pattern' => 'YEAR',
40208                                                                                                         'hashname' => '__PATTERN1__',
40209                                                                                                         'description' => '/YEAR/i',
40210                                                                                                         'lookahead' => 0,
40211                                                                                                         'rdelim' => '/',
40212                                                                                                         'line' => 419,
40213                                                                                                         'mod' => 'i',
40214                                                                                                         'ldelim' => '/'
40215                                                                                                       }, 'Parse::RecDescent::Token' )
40216                                                                                              ],
40217                                                                                   'line' => 419
40218                                                                                 }, 'Parse::RecDescent::Production' )
40219                                                                        ],
40220                                                             'name' => 'sysibm_function',
40221                                                             'vars' => '',
40222                                                             'line' => 332
40223                                                           }, 'Parse::RecDescent::Rule' ),
40224                               'window_partition_clause' => bless( {
40225                                                                     'impcount' => 0,
40226                                                                     'calls' => [
40227                                                                                  'partitioning_expression'
40228                                                                                ],
40229                                                                     'changed' => 0,
40230                                                                     'opcount' => 0,
40231                                                                     'prods' => [
40232                                                                                  bless( {
40233                                                                                           'number' => '0',
40234                                                                                           'strcount' => 0,
40235                                                                                           'dircount' => 1,
40236                                                                                           'uncommit' => undef,
40237                                                                                           'error' => undef,
40238                                                                                           'patcount' => 2,
40239                                                                                           'actcount' => 0,
40240                                                                                           'op' => [],
40241                                                                                           'items' => [
40242                                                                                                        bless( {
40243                                                                                                                 'pattern' => 'PARTITION\\s+BY',
40244                                                                                                                 'hashname' => '__PATTERN1__',
40245                                                                                                                 'description' => '/PARTITION\\\\s+BY/i',
40246                                                                                                                 'lookahead' => 0,
40247                                                                                                                 'rdelim' => '/',
40248                                                                                                                 'line' => 553,
40249                                                                                                                 'mod' => 'i',
40250                                                                                                                 'ldelim' => '/'
40251                                                                                                               }, 'Parse::RecDescent::Token' ),
40252                                                                                                        bless( {
40253                                                                                                                 'expected' => '<leftop: partitioning_expression /,/ partitioning_expression>',
40254                                                                                                                 'min' => 1,
40255                                                                                                                 'name' => '\'partitioning_expression(s)\'',
40256                                                                                                                 'max' => 100000000,
40257                                                                                                                 'leftarg' => bless( {
40258                                                                                                                                       'subrule' => 'partitioning_expression',
40259                                                                                                                                       'matchrule' => 0,
40260                                                                                                                                       'implicit' => undef,
40261                                                                                                                                       'argcode' => undef,
40262                                                                                                                                       'lookahead' => 0,
40263                                                                                                                                       'line' => 553
40264                                                                                                                                     }, 'Parse::RecDescent::Subrule' ),
40265                                                                                                                 'rightarg' => bless( {
40266                                                                                                                                        'subrule' => 'partitioning_expression',
40267                                                                                                                                        'matchrule' => 0,
40268                                                                                                                                        'implicit' => undef,
40269                                                                                                                                        'argcode' => undef,
40270                                                                                                                                        'lookahead' => 0,
40271                                                                                                                                        'line' => 553
40272                                                                                                                                      }, 'Parse::RecDescent::Subrule' ),
40273                                                                                                                 'hashname' => '__DIRECTIVE1__',
40274                                                                                                                 'type' => 'leftop',
40275                                                                                                                 'op' => bless( {
40276                                                                                                                                  'pattern' => ',',
40277                                                                                                                                  'hashname' => '__PATTERN2__',
40278                                                                                                                                  'description' => '/,/',
40279                                                                                                                                  'lookahead' => 0,
40280                                                                                                                                  'rdelim' => '/',
40281                                                                                                                                  'line' => 553,
40282                                                                                                                                  'mod' => '',
40283                                                                                                                                  'ldelim' => '/'
40284                                                                                                                                }, 'Parse::RecDescent::Token' )
40285                                                                                                               }, 'Parse::RecDescent::Operator' )
40286                                                                                                      ],
40287                                                                                           'line' => undef
40288                                                                                         }, 'Parse::RecDescent::Production' )
40289                                                                                ],
40290                                                                     'name' => 'window_partition_clause',
40291                                                                     'vars' => '',
40292                                                                     'line' => 553
40293                                                                   }, 'Parse::RecDescent::Rule' ),
40294                               'WHERE' => bless( {
40295                                                   'impcount' => 0,
40296                                                   'calls' => [],
40297                                                   'changed' => 0,
40298                                                   'opcount' => 0,
40299                                                   'prods' => [
40300                                                                bless( {
40301                                                                         'number' => '0',
40302                                                                         'strcount' => 0,
40303                                                                         'dircount' => 0,
40304                                                                         'uncommit' => undef,
40305                                                                         'error' => undef,
40306                                                                         'patcount' => 1,
40307                                                                         'actcount' => 0,
40308                                                                         'items' => [
40309                                                                                      bless( {
40310                                                                                               'pattern' => 'where',
40311                                                                                               'hashname' => '__PATTERN1__',
40312                                                                                               'description' => '/where/i',
40313                                                                                               'lookahead' => 0,
40314                                                                                               'rdelim' => '/',
40315                                                                                               'line' => 117,
40316                                                                                               'mod' => 'i',
40317                                                                                               'ldelim' => '/'
40318                                                                                             }, 'Parse::RecDescent::Token' )
40319                                                                                    ],
40320                                                                         'line' => undef
40321                                                                       }, 'Parse::RecDescent::Production' )
40322                                                              ],
40323                                                   'name' => 'WHERE',
40324                                                   'vars' => '',
40325                                                   'line' => 117
40326                                                 }, 'Parse::RecDescent::Rule' ),
40327                               'CREATE' => bless( {
40328                                                    'impcount' => 0,
40329                                                    'calls' => [],
40330                                                    'changed' => 0,
40331                                                    'opcount' => 0,
40332                                                    'prods' => [
40333                                                                 bless( {
40334                                                                          'number' => '0',
40335                                                                          'strcount' => 0,
40336                                                                          'dircount' => 0,
40337                                                                          'uncommit' => undef,
40338                                                                          'error' => undef,
40339                                                                          'patcount' => 1,
40340                                                                          'actcount' => 0,
40341                                                                          'items' => [
40342                                                                                       bless( {
40343                                                                                                'pattern' => 'create',
40344                                                                                                'hashname' => '__PATTERN1__',
40345                                                                                                'description' => '/create/i',
40346                                                                                                'lookahead' => 0,
40347                                                                                                'rdelim' => '/',
40348                                                                                                'line' => 101,
40349                                                                                                'mod' => 'i',
40350                                                                                                'ldelim' => '/'
40351                                                                                              }, 'Parse::RecDescent::Token' )
40352                                                                                     ],
40353                                                                          'line' => undef
40354                                                                        }, 'Parse::RecDescent::Production' )
40355                                                               ],
40356                                                    'name' => 'CREATE',
40357                                                    'vars' => '',
40358                                                    'line' => 101
40359                                                  }, 'Parse::RecDescent::Rule' ),
40360                               '_alternation_1_of_production_1_of_rule_sysfun' => bless( {
40361                                                                                           'impcount' => 0,
40362                                                                                           'calls' => [],
40363                                                                                           'changed' => 0,
40364                                                                                           'opcount' => 0,
40365                                                                                           'prods' => [
40366                                                                                                        bless( {
40367                                                                                                                 'number' => '0',
40368                                                                                                                 'strcount' => 0,
40369                                                                                                                 'dircount' => 0,
40370                                                                                                                 'uncommit' => undef,
40371                                                                                                                 'error' => undef,
40372                                                                                                                 'patcount' => 1,
40373                                                                                                                 'actcount' => 0,
40374                                                                                                                 'items' => [
40375                                                                                                                              bless( {
40376                                                                                                                                       'pattern' => 'ABS',
40377                                                                                                                                       'hashname' => '__PATTERN1__',
40378                                                                                                                                       'description' => '/ABS/i',
40379                                                                                                                                       'lookahead' => 0,
40380                                                                                                                                       'rdelim' => '/',
40381                                                                                                                                       'line' => 628,
40382                                                                                                                                       'mod' => 'i',
40383                                                                                                                                       'ldelim' => '/'
40384                                                                                                                                     }, 'Parse::RecDescent::Token' )
40385                                                                                                                            ],
40386                                                                                                                 'line' => undef
40387                                                                                                               }, 'Parse::RecDescent::Production' ),
40388                                                                                                        bless( {
40389                                                                                                                 'number' => '1',
40390                                                                                                                 'strcount' => 0,
40391                                                                                                                 'dircount' => 0,
40392                                                                                                                 'uncommit' => undef,
40393                                                                                                                 'error' => undef,
40394                                                                                                                 'patcount' => 1,
40395                                                                                                                 'actcount' => 0,
40396                                                                                                                 'items' => [
40397                                                                                                                              bless( {
40398                                                                                                                                       'pattern' => 'ABSVAL',
40399                                                                                                                                       'hashname' => '__PATTERN1__',
40400                                                                                                                                       'description' => '/ABSVAL/i',
40401                                                                                                                                       'lookahead' => 0,
40402                                                                                                                                       'rdelim' => '/',
40403                                                                                                                                       'line' => 628,
40404                                                                                                                                       'mod' => 'i',
40405                                                                                                                                       'ldelim' => '/'
40406                                                                                                                                     }, 'Parse::RecDescent::Token' )
40407                                                                                                                            ],
40408                                                                                                                 'line' => 628
40409                                                                                                               }, 'Parse::RecDescent::Production' )
40410                                                                                                      ],
40411                                                                                           'name' => '_alternation_1_of_production_1_of_rule_sysfun',
40412                                                                                           'vars' => '',
40413                                                                                           'line' => 628
40414                                                                                         }, 'Parse::RecDescent::Rule' ),
40415                               '_alternation_1_of_production_1_of_rule_function' => bless( {
40416                                                                                             'impcount' => 0,
40417                                                                                             'calls' => [
40418                                                                                                          'sysibm_function',
40419                                                                                                          'sysfun_function',
40420                                                                                                          'userdefined_function'
40421                                                                                                        ],
40422                                                                                             'changed' => 0,
40423                                                                                             'opcount' => 0,
40424                                                                                             'prods' => [
40425                                                                                                          bless( {
40426                                                                                                                   'number' => '0',
40427                                                                                                                   'strcount' => 0,
40428                                                                                                                   'dircount' => 0,
40429                                                                                                                   'uncommit' => undef,
40430                                                                                                                   'error' => undef,
40431                                                                                                                   'patcount' => 1,
40432                                                                                                                   'actcount' => 0,
40433                                                                                                                   'items' => [
40434                                                                                                                                bless( {
40435                                                                                                                                         'pattern' => 'SYSIBM\\.|',
40436                                                                                                                                         'hashname' => '__PATTERN1__',
40437                                                                                                                                         'description' => '/SYSIBM\\\\.|/i',
40438                                                                                                                                         'lookahead' => 0,
40439                                                                                                                                         'rdelim' => '/',
40440                                                                                                                                         'line' => 625,
40441                                                                                                                                         'mod' => 'i',
40442                                                                                                                                         'ldelim' => '/'
40443                                                                                                                                       }, 'Parse::RecDescent::Token' ),
40444                                                                                                                                bless( {
40445                                                                                                                                         'subrule' => 'sysibm_function',
40446                                                                                                                                         'matchrule' => 0,
40447                                                                                                                                         'implicit' => undef,
40448                                                                                                                                         'argcode' => undef,
40449                                                                                                                                         'lookahead' => 0,
40450                                                                                                                                         'line' => 625
40451                                                                                                                                       }, 'Parse::RecDescent::Subrule' )
40452                                                                                                                              ],
40453                                                                                                                   'line' => undef
40454                                                                                                                 }, 'Parse::RecDescent::Production' ),
40455                                                                                                          bless( {
40456                                                                                                                   'number' => '1',
40457                                                                                                                   'strcount' => 0,
40458                                                                                                                   'dircount' => 0,
40459                                                                                                                   'uncommit' => undef,
40460                                                                                                                   'error' => undef,
40461                                                                                                                   'patcount' => 1,
40462                                                                                                                   'actcount' => 0,
40463                                                                                                                   'items' => [
40464                                                                                                                                bless( {
40465                                                                                                                                         'pattern' => 'SYSFUN\\.|',
40466                                                                                                                                         'hashname' => '__PATTERN1__',
40467                                                                                                                                         'description' => '/SYSFUN\\\\.|/i',
40468                                                                                                                                         'lookahead' => 0,
40469                                                                                                                                         'rdelim' => '/',
40470                                                                                                                                         'line' => 626,
40471                                                                                                                                         'mod' => 'i',
40472                                                                                                                                         'ldelim' => '/'
40473                                                                                                                                       }, 'Parse::RecDescent::Token' ),
40474                                                                                                                                bless( {
40475                                                                                                                                         'subrule' => 'sysfun_function',
40476                                                                                                                                         'matchrule' => 0,
40477                                                                                                                                         'implicit' => undef,
40478                                                                                                                                         'argcode' => undef,
40479                                                                                                                                         'lookahead' => 0,
40480                                                                                                                                         'line' => 626
40481                                                                                                                                       }, 'Parse::RecDescent::Subrule' )
40482                                                                                                                              ],
40483                                                                                                                   'line' => 626
40484                                                                                                                 }, 'Parse::RecDescent::Production' ),
40485                                                                                                          bless( {
40486                                                                                                                   'number' => '2',
40487                                                                                                                   'strcount' => 0,
40488                                                                                                                   'dircount' => 0,
40489                                                                                                                   'uncommit' => undef,
40490                                                                                                                   'error' => undef,
40491                                                                                                                   'patcount' => 0,
40492                                                                                                                   'actcount' => 0,
40493                                                                                                                   'items' => [
40494                                                                                                                                bless( {
40495                                                                                                                                         'subrule' => 'userdefined_function',
40496                                                                                                                                         'matchrule' => 0,
40497                                                                                                                                         'implicit' => undef,
40498                                                                                                                                         'argcode' => undef,
40499                                                                                                                                         'lookahead' => 0,
40500                                                                                                                                         'line' => 627
40501                                                                                                                                       }, 'Parse::RecDescent::Subrule' )
40502                                                                                                                              ],
40503                                                                                                                   'line' => 627
40504                                                                                                                 }, 'Parse::RecDescent::Production' )
40505                                                                                                        ],
40506                                                                                             'name' => '_alternation_1_of_production_1_of_rule_function',
40507                                                                                             'vars' => '',
40508                                                                                             'line' => 625
40509                                                                                           }, 'Parse::RecDescent::Rule' ),
40510                               'identifier' => bless( {
40511                                                        'impcount' => 0,
40512                                                        'calls' => [
40513                                                                     'NAME'
40514                                                                   ],
40515                                                        'changed' => 0,
40516                                                        'opcount' => 0,
40517                                                        'prods' => [
40518                                                                     bless( {
40519                                                                              'number' => '0',
40520                                                                              'strcount' => 0,
40521                                                                              'dircount' => 0,
40522                                                                              'uncommit' => undef,
40523                                                                              'error' => undef,
40524                                                                              'patcount' => 0,
40525                                                                              'actcount' => 0,
40526                                                                              'items' => [
40527                                                                                           bless( {
40528                                                                                                    'subrule' => 'NAME',
40529                                                                                                    'matchrule' => 0,
40530                                                                                                    'implicit' => undef,
40531                                                                                                    'argcode' => undef,
40532                                                                                                    'lookahead' => 0,
40533                                                                                                    'line' => 136
40534                                                                                                  }, 'Parse::RecDescent::Subrule' )
40535                                                                                         ],
40536                                                                              'line' => undef
40537                                                                            }, 'Parse::RecDescent::Production' )
40538                                                                   ],
40539                                                        'name' => 'identifier',
40540                                                        'vars' => '',
40541                                                        'line' => 136
40542                                                      }, 'Parse::RecDescent::Rule' ),
40543                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause' => bless( {
40544                                                                                                                                               'impcount' => 0,
40545                                                                                                                                               'calls' => [
40546                                                                                                                                                            'asc_option',
40547                                                                                                                                                            'desc_option'
40548                                                                                                                                                          ],
40549                                                                                                                                               'changed' => 0,
40550                                                                                                                                               'opcount' => 0,
40551                                                                                                                                               'prods' => [
40552                                                                                                                                                            bless( {
40553                                                                                                                                                                     'number' => '0',
40554                                                                                                                                                                     'strcount' => 0,
40555                                                                                                                                                                     'dircount' => 0,
40556                                                                                                                                                                     'uncommit' => undef,
40557                                                                                                                                                                     'error' => undef,
40558                                                                                                                                                                     'patcount' => 0,
40559                                                                                                                                                                     'actcount' => 0,
40560                                                                                                                                                                     'items' => [
40561                                                                                                                                                                                  bless( {
40562                                                                                                                                                                                           'subrule' => 'asc_option',
40563                                                                                                                                                                                           'matchrule' => 0,
40564                                                                                                                                                                                           'implicit' => undef,
40565                                                                                                                                                                                           'argcode' => undef,
40566                                                                                                                                                                                           'lookahead' => 0,
40567                                                                                                                                                                                           'line' => 626
40568                                                                                                                                                                                         }, 'Parse::RecDescent::Subrule' )
40569                                                                                                                                                                                ],
40570                                                                                                                                                                     'line' => undef
40571                                                                                                                                                                   }, 'Parse::RecDescent::Production' ),
40572                                                                                                                                                            bless( {
40573                                                                                                                                                                     'number' => '1',
40574                                                                                                                                                                     'strcount' => 0,
40575                                                                                                                                                                     'dircount' => 0,
40576                                                                                                                                                                     'uncommit' => undef,
40577                                                                                                                                                                     'error' => undef,
40578                                                                                                                                                                     'patcount' => 0,
40579                                                                                                                                                                     'actcount' => 0,
40580                                                                                                                                                                     'items' => [
40581                                                                                                                                                                                  bless( {
40582                                                                                                                                                                                           'subrule' => 'desc_option',
40583                                                                                                                                                                                           'matchrule' => 0,
40584                                                                                                                                                                                           'implicit' => undef,
40585                                                                                                                                                                                           'argcode' => undef,
40586                                                                                                                                                                                           'lookahead' => 0,
40587                                                                                                                                                                                           'line' => 627
40588                                                                                                                                                                                         }, 'Parse::RecDescent::Subrule' )
40589                                                                                                                                                                                ],
40590                                                                                                                                                                     'line' => 627
40591                                                                                                                                                                   }, 'Parse::RecDescent::Production' )
40592                                                                                                                                                          ],
40593                                                                                                                                               'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
40594                                                                                                                                               'vars' => '',
40595                                                                                                                                               'line' => 626
40596                                                                                                                                             }, 'Parse::RecDescent::Rule' ),
40597                               'result_expression' => bless( {
40598                                                               'impcount' => 0,
40599                                                               'calls' => [
40600                                                                            'expression'
40601                                                                          ],
40602                                                               'changed' => 0,
40603                                                               'opcount' => 0,
40604                                                               'prods' => [
40605                                                                            bless( {
40606                                                                                     'number' => '0',
40607                                                                                     'strcount' => 0,
40608                                                                                     'dircount' => 0,
40609                                                                                     'uncommit' => undef,
40610                                                                                     'error' => undef,
40611                                                                                     'patcount' => 0,
40612                                                                                     'actcount' => 0,
40613                                                                                     'items' => [
40614                                                                                                  bless( {
40615                                                                                                           'subrule' => 'expression',
40616                                                                                                           'matchrule' => 0,
40617                                                                                                           'implicit' => undef,
40618                                                                                                           'argcode' => undef,
40619                                                                                                           'lookahead' => 0,
40620                                                                                                           'line' => 515
40621                                                                                                         }, 'Parse::RecDescent::Subrule' )
40622                                                                                                ],
40623                                                                                     'line' => undef
40624                                                                                   }, 'Parse::RecDescent::Production' )
40625                                                                          ],
40626                                                               'name' => 'result_expression',
40627                                                               'vars' => '',
40628                                                               'line' => 515
40629                                                             }, 'Parse::RecDescent::Rule' ),
40630                               'scoped_reference_expression' => bless( {
40631                                                                         'impcount' => 0,
40632                                                                         'calls' => [
40633                                                                                      'expression'
40634                                                                                    ],
40635                                                                         'changed' => 0,
40636                                                                         'opcount' => 0,
40637                                                                         'prods' => [
40638                                                                                      bless( {
40639                                                                                               'number' => '0',
40640                                                                                               'strcount' => 0,
40641                                                                                               'dircount' => 0,
40642                                                                                               'uncommit' => undef,
40643                                                                                               'error' => undef,
40644                                                                                               'patcount' => 0,
40645                                                                                               'actcount' => 1,
40646                                                                                               'items' => [
40647                                                                                                            bless( {
40648                                                                                                                     'subrule' => 'expression',
40649                                                                                                                     'matchrule' => 0,
40650                                                                                                                     'implicit' => undef,
40651                                                                                                                     'argcode' => undef,
40652                                                                                                                     'lookahead' => 0,
40653                                                                                                                     'line' => 532
40654                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
40655                                                                                                            bless( {
40656                                                                                                                     'hashname' => '__ACTION1__',
40657                                                                                                                     'lookahead' => 0,
40658                                                                                                                     'line' => 533,
40659                                                                                                                     'code' => '{ # scoped, reference
40660 }'
40661                                                                                                                   }, 'Parse::RecDescent::Action' )
40662                                                                                                          ],
40663                                                                                               'line' => undef
40664                                                                                             }, 'Parse::RecDescent::Production' )
40665                                                                                    ],
40666                                                                         'name' => 'scoped_reference_expression',
40667                                                                         'vars' => '',
40668                                                                         'line' => 528
40669                                                                       }, 'Parse::RecDescent::Rule' ),
40670                               '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification' => bless( {
40671                                                                                                                                              'impcount' => 0,
40672                                                                                                                                              'calls' => [
40673                                                                                                                                                           'typed_table_name',
40674                                                                                                                                                           'typed_view_name'
40675                                                                                                                                                         ],
40676                                                                                                                                              'changed' => 0,
40677                                                                                                                                              'opcount' => 0,
40678                                                                                                                                              'prods' => [
40679                                                                                                                                                           bless( {
40680                                                                                                                                                                    'number' => '0',
40681                                                                                                                                                                    'strcount' => 0,
40682                                                                                                                                                                    'dircount' => 0,
40683                                                                                                                                                                    'uncommit' => undef,
40684                                                                                                                                                                    'error' => undef,
40685                                                                                                                                                                    'patcount' => 0,
40686                                                                                                                                                                    'actcount' => 0,
40687                                                                                                                                                                    'items' => [
40688                                                                                                                                                                                 bless( {
40689                                                                                                                                                                                          'subrule' => 'typed_table_name',
40690                                                                                                                                                                                          'matchrule' => 0,
40691                                                                                                                                                                                          'implicit' => undef,
40692                                                                                                                                                                                          'argcode' => undef,
40693                                                                                                                                                                                          'lookahead' => 0,
40694                                                                                                                                                                                          'line' => 626
40695                                                                                                                                                                                        }, 'Parse::RecDescent::Subrule' )
40696                                                                                                                                                                               ],
40697                                                                                                                                                                    'line' => undef
40698                                                                                                                                                                  }, 'Parse::RecDescent::Production' ),
40699                                                                                                                                                           bless( {
40700                                                                                                                                                                    'number' => '1',
40701                                                                                                                                                                    'strcount' => 0,
40702                                                                                                                                                                    'dircount' => 0,
40703                                                                                                                                                                    'uncommit' => undef,
40704                                                                                                                                                                    'error' => undef,
40705                                                                                                                                                                    'patcount' => 0,
40706                                                                                                                                                                    'actcount' => 0,
40707                                                                                                                                                                    'items' => [
40708                                                                                                                                                                                 bless( {
40709                                                                                                                                                                                          'subrule' => 'typed_view_name',
40710                                                                                                                                                                                          'matchrule' => 0,
40711                                                                                                                                                                                          'implicit' => undef,
40712                                                                                                                                                                                          'argcode' => undef,
40713                                                                                                                                                                                          'lookahead' => 0,
40714                                                                                                                                                                                          'line' => 627
40715                                                                                                                                                                                        }, 'Parse::RecDescent::Subrule' )
40716                                                                                                                                                                               ],
40717                                                                                                                                                                    'line' => 627
40718                                                                                                                                                                  }, 'Parse::RecDescent::Production' )
40719                                                                                                                                                         ],
40720                                                                                                                                              'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cast_specification',
40721                                                                                                                                              'vars' => '',
40722                                                                                                                                              'line' => 626
40723                                                                                                                                            }, 'Parse::RecDescent::Rule' ),
40724                               'when_clause' => bless( {
40725                                                         'impcount' => 0,
40726                                                         'calls' => [
40727                                                                      'search_condition'
40728                                                                    ],
40729                                                         'changed' => 0,
40730                                                         'opcount' => 0,
40731                                                         'prods' => [
40732                                                                      bless( {
40733                                                                               'number' => '0',
40734                                                                               'strcount' => 2,
40735                                                                               'dircount' => 0,
40736                                                                               'uncommit' => undef,
40737                                                                               'error' => undef,
40738                                                                               'patcount' => 1,
40739                                                                               'actcount' => 1,
40740                                                                               'items' => [
40741                                                                                            bless( {
40742                                                                                                     'pattern' => 'WHEN',
40743                                                                                                     'hashname' => '__PATTERN1__',
40744                                                                                                     'description' => '/WHEN/i',
40745                                                                                                     'lookahead' => 0,
40746                                                                                                     'rdelim' => '/',
40747                                                                                                     'line' => 261,
40748                                                                                                     'mod' => 'i',
40749                                                                                                     'ldelim' => '/'
40750                                                                                                   }, 'Parse::RecDescent::Token' ),
40751                                                                                            bless( {
40752                                                                                                     'pattern' => '(',
40753                                                                                                     'hashname' => '__STRING1__',
40754                                                                                                     'description' => '\'(\'',
40755                                                                                                     'lookahead' => 0,
40756                                                                                                     'line' => 261
40757                                                                                                   }, 'Parse::RecDescent::Literal' ),
40758                                                                                            bless( {
40759                                                                                                     'subrule' => 'search_condition',
40760                                                                                                     'matchrule' => 0,
40761                                                                                                     'implicit' => undef,
40762                                                                                                     'argcode' => undef,
40763                                                                                                     'lookahead' => 0,
40764                                                                                                     'line' => 261
40765                                                                                                   }, 'Parse::RecDescent::Subrule' ),
40766                                                                                            bless( {
40767                                                                                                     'pattern' => ')',
40768                                                                                                     'hashname' => '__STRING2__',
40769                                                                                                     'description' => '\')\'',
40770                                                                                                     'lookahead' => 0,
40771                                                                                                     'line' => 261
40772                                                                                                   }, 'Parse::RecDescent::Literal' ),
40773                                                                                            bless( {
40774                                                                                                     'hashname' => '__ACTION1__',
40775                                                                                                     'lookahead' => 0,
40776                                                                                                     'line' => 261,
40777                                                                                                     'code' => '{$return = $item[3]}'
40778                                                                                                   }, 'Parse::RecDescent::Action' )
40779                                                                                          ],
40780                                                                               'line' => undef
40781                                                                             }, 'Parse::RecDescent::Production' )
40782                                                                    ],
40783                                                         'name' => 'when_clause',
40784                                                         'vars' => '',
40785                                                         'line' => 259
40786                                                       }, 'Parse::RecDescent::Rule' ),
40787                               '_alternation_1_of_production_1_of_rule_asc_option' => bless( {
40788                                                                                               'impcount' => 0,
40789                                                                                               'calls' => [],
40790                                                                                               'changed' => 0,
40791                                                                                               'opcount' => 0,
40792                                                                                               'prods' => [
40793                                                                                                            bless( {
40794                                                                                                                     'number' => '0',
40795                                                                                                                     'strcount' => 0,
40796                                                                                                                     'dircount' => 0,
40797                                                                                                                     'uncommit' => undef,
40798                                                                                                                     'error' => undef,
40799                                                                                                                     'patcount' => 1,
40800                                                                                                                     'actcount' => 0,
40801                                                                                                                     'items' => [
40802                                                                                                                                  bless( {
40803                                                                                                                                           'pattern' => 'NULLS\\s+FIRST',
40804                                                                                                                                           'hashname' => '__PATTERN1__',
40805                                                                                                                                           'description' => '/NULLS\\\\s+FIRST/i',
40806                                                                                                                                           'lookahead' => 0,
40807                                                                                                                                           'rdelim' => '/',
40808                                                                                                                                           'line' => 628,
40809                                                                                                                                           'mod' => 'i',
40810                                                                                                                                           'ldelim' => '/'
40811                                                                                                                                         }, 'Parse::RecDescent::Token' )
40812                                                                                                                                ],
40813                                                                                                                     'line' => undef
40814                                                                                                                   }, 'Parse::RecDescent::Production' ),
40815                                                                                                            bless( {
40816                                                                                                                     'number' => '1',
40817                                                                                                                     'strcount' => 0,
40818                                                                                                                     'dircount' => 0,
40819                                                                                                                     'uncommit' => undef,
40820                                                                                                                     'error' => undef,
40821                                                                                                                     'patcount' => 1,
40822                                                                                                                     'actcount' => 0,
40823                                                                                                                     'items' => [
40824                                                                                                                                  bless( {
40825                                                                                                                                           'pattern' => 'NULLS\\s+LAST',
40826                                                                                                                                           'hashname' => '__PATTERN1__',
40827                                                                                                                                           'description' => '/NULLS\\\\s+LAST/i',
40828                                                                                                                                           'lookahead' => 0,
40829                                                                                                                                           'rdelim' => '/',
40830                                                                                                                                           'line' => 628,
40831                                                                                                                                           'mod' => 'i',
40832                                                                                                                                           'ldelim' => '/'
40833                                                                                                                                         }, 'Parse::RecDescent::Token' )
40834                                                                                                                                ],
40835                                                                                                                     'line' => 628
40836                                                                                                                   }, 'Parse::RecDescent::Production' )
40837                                                                                                          ],
40838                                                                                               'name' => '_alternation_1_of_production_1_of_rule_asc_option',
40839                                                                                               'vars' => '',
40840                                                                                               'line' => 628
40841                                                                                             }, 'Parse::RecDescent::Rule' ),
40842                               'sequence_name' => bless( {
40843                                                           'impcount' => 0,
40844                                                           'calls' => [
40845                                                                        'NAME'
40846                                                                      ],
40847                                                           'changed' => 0,
40848                                                           'opcount' => 0,
40849                                                           'prods' => [
40850                                                                        bless( {
40851                                                                                 'number' => '0',
40852                                                                                 'strcount' => 0,
40853                                                                                 'dircount' => 0,
40854                                                                                 'uncommit' => undef,
40855                                                                                 'error' => undef,
40856                                                                                 'patcount' => 0,
40857                                                                                 'actcount' => 0,
40858                                                                                 'items' => [
40859                                                                                              bless( {
40860                                                                                                       'subrule' => 'NAME',
40861                                                                                                       'matchrule' => 0,
40862                                                                                                       'implicit' => undef,
40863                                                                                                       'argcode' => undef,
40864                                                                                                       'lookahead' => 0,
40865                                                                                                       'line' => 615
40866                                                                                                     }, 'Parse::RecDescent::Subrule' )
40867                                                                                            ],
40868                                                                                 'line' => undef
40869                                                                               }, 'Parse::RecDescent::Production' )
40870                                                                      ],
40871                                                           'name' => 'sequence_name',
40872                                                           'vars' => '',
40873                                                           'line' => 615
40874                                                         }, 'Parse::RecDescent::Rule' ),
40875                               'ld_duration' => bless( {
40876                                                         'impcount' => 0,
40877                                                         'calls' => [],
40878                                                         'changed' => 0,
40879                                                         'opcount' => 0,
40880                                                         'prods' => [
40881                                                                      bless( {
40882                                                                               'number' => '0',
40883                                                                               'strcount' => 0,
40884                                                                               'dircount' => 0,
40885                                                                               'uncommit' => undef,
40886                                                                               'error' => undef,
40887                                                                               'patcount' => 1,
40888                                                                               'actcount' => 0,
40889                                                                               'items' => [
40890                                                                                            bless( {
40891                                                                                                     'pattern' => 'YEARS?',
40892                                                                                                     'hashname' => '__PATTERN1__',
40893                                                                                                     'description' => '/YEARS?/i',
40894                                                                                                     'lookahead' => 0,
40895                                                                                                     'rdelim' => '/',
40896                                                                                                     'line' => 488,
40897                                                                                                     'mod' => 'i',
40898                                                                                                     'ldelim' => '/'
40899                                                                                                   }, 'Parse::RecDescent::Token' )
40900                                                                                          ],
40901                                                                               'line' => undef
40902                                                                             }, 'Parse::RecDescent::Production' ),
40903                                                                      bless( {
40904                                                                               'number' => '1',
40905                                                                               'strcount' => 0,
40906                                                                               'dircount' => 0,
40907                                                                               'uncommit' => undef,
40908                                                                               'error' => undef,
40909                                                                               'patcount' => 1,
40910                                                                               'actcount' => 0,
40911                                                                               'items' => [
40912                                                                                            bless( {
40913                                                                                                     'pattern' => 'MONTHS?',
40914                                                                                                     'hashname' => '__PATTERN1__',
40915                                                                                                     'description' => '/MONTHS?/i',
40916                                                                                                     'lookahead' => 0,
40917                                                                                                     'rdelim' => '/',
40918                                                                                                     'line' => 489,
40919                                                                                                     'mod' => 'i',
40920                                                                                                     'ldelim' => '/'
40921                                                                                                   }, 'Parse::RecDescent::Token' )
40922                                                                                          ],
40923                                                                               'line' => 489
40924                                                                             }, 'Parse::RecDescent::Production' ),
40925                                                                      bless( {
40926                                                                               'number' => '2',
40927                                                                               'strcount' => 0,
40928                                                                               'dircount' => 0,
40929                                                                               'uncommit' => undef,
40930                                                                               'error' => undef,
40931                                                                               'patcount' => 1,
40932                                                                               'actcount' => 0,
40933                                                                               'items' => [
40934                                                                                            bless( {
40935                                                                                                     'pattern' => 'DAYS?',
40936                                                                                                     'hashname' => '__PATTERN1__',
40937                                                                                                     'description' => '/DAYS?/i',
40938                                                                                                     'lookahead' => 0,
40939                                                                                                     'rdelim' => '/',
40940                                                                                                     'line' => 490,
40941                                                                                                     'mod' => 'i',
40942                                                                                                     'ldelim' => '/'
40943                                                                                                   }, 'Parse::RecDescent::Token' )
40944                                                                                          ],
40945                                                                               'line' => 490
40946                                                                             }, 'Parse::RecDescent::Production' ),
40947                                                                      bless( {
40948                                                                               'number' => '3',
40949                                                                               'strcount' => 0,
40950                                                                               'dircount' => 0,
40951                                                                               'uncommit' => undef,
40952                                                                               'error' => undef,
40953                                                                               'patcount' => 1,
40954                                                                               'actcount' => 0,
40955                                                                               'items' => [
40956                                                                                            bless( {
40957                                                                                                     'pattern' => 'HOURS?',
40958                                                                                                     'hashname' => '__PATTERN1__',
40959                                                                                                     'description' => '/HOURS?/i',
40960                                                                                                     'lookahead' => 0,
40961                                                                                                     'rdelim' => '/',
40962                                                                                                     'line' => 491,
40963                                                                                                     'mod' => 'i',
40964                                                                                                     'ldelim' => '/'
40965                                                                                                   }, 'Parse::RecDescent::Token' )
40966                                                                                          ],
40967                                                                               'line' => 491
40968                                                                             }, 'Parse::RecDescent::Production' ),
40969                                                                      bless( {
40970                                                                               'number' => '4',
40971                                                                               'strcount' => 0,
40972                                                                               'dircount' => 0,
40973                                                                               'uncommit' => undef,
40974                                                                               'error' => undef,
40975                                                                               'patcount' => 1,
40976                                                                               'actcount' => 0,
40977                                                                               'items' => [
40978                                                                                            bless( {
40979                                                                                                     'pattern' => 'MINUTES?',
40980                                                                                                     'hashname' => '__PATTERN1__',
40981                                                                                                     'description' => '/MINUTES?/i',
40982                                                                                                     'lookahead' => 0,
40983                                                                                                     'rdelim' => '/',
40984                                                                                                     'line' => 492,
40985                                                                                                     'mod' => 'i',
40986                                                                                                     'ldelim' => '/'
40987                                                                                                   }, 'Parse::RecDescent::Token' )
40988                                                                                          ],
40989                                                                               'line' => 492
40990                                                                             }, 'Parse::RecDescent::Production' ),
40991                                                                      bless( {
40992                                                                               'number' => '5',
40993                                                                               'strcount' => 0,
40994                                                                               'dircount' => 0,
40995                                                                               'uncommit' => undef,
40996                                                                               'error' => undef,
40997                                                                               'patcount' => 1,
40998                                                                               'actcount' => 0,
40999                                                                               'items' => [
41000                                                                                            bless( {
41001                                                                                                     'pattern' => 'SECONDS?',
41002                                                                                                     'hashname' => '__PATTERN1__',
41003                                                                                                     'description' => '/SECONDS?/i',
41004                                                                                                     'lookahead' => 0,
41005                                                                                                     'rdelim' => '/',
41006                                                                                                     'line' => 493,
41007                                                                                                     'mod' => 'i',
41008                                                                                                     'ldelim' => '/'
41009                                                                                                   }, 'Parse::RecDescent::Token' )
41010                                                                                          ],
41011                                                                               'line' => 493
41012                                                                             }, 'Parse::RecDescent::Production' ),
41013                                                                      bless( {
41014                                                                               'number' => '6',
41015                                                                               'strcount' => 0,
41016                                                                               'dircount' => 0,
41017                                                                               'uncommit' => undef,
41018                                                                               'error' => undef,
41019                                                                               'patcount' => 1,
41020                                                                               'actcount' => 0,
41021                                                                               'items' => [
41022                                                                                            bless( {
41023                                                                                                     'pattern' => 'MICROSECONDS?',
41024                                                                                                     'hashname' => '__PATTERN1__',
41025                                                                                                     'description' => '/MICROSECONDS?/i',
41026                                                                                                     'lookahead' => 0,
41027                                                                                                     'rdelim' => '/',
41028                                                                                                     'line' => 494,
41029                                                                                                     'mod' => 'i',
41030                                                                                                     'ldelim' => '/'
41031                                                                                                   }, 'Parse::RecDescent::Token' )
41032                                                                                          ],
41033                                                                               'line' => 494
41034                                                                             }, 'Parse::RecDescent::Production' )
41035                                                                    ],
41036                                                         'name' => 'ld_duration',
41037                                                         'vars' => '',
41038                                                         'line' => 488
41039                                                       }, 'Parse::RecDescent::Rule' ),
41040                               'reference_a' => bless( {
41041                                                         'impcount' => 0,
41042                                                         'calls' => [
41043                                                                      'old_new_corr',
41044                                                                      'old_new_table'
41045                                                                    ],
41046                                                         'changed' => 0,
41047                                                         'opcount' => 0,
41048                                                         'prods' => [
41049                                                                      bless( {
41050                                                                               'number' => '0',
41051                                                                               'strcount' => 0,
41052                                                                               'dircount' => 0,
41053                                                                               'uncommit' => undef,
41054                                                                               'error' => undef,
41055                                                                               'patcount' => 1,
41056                                                                               'actcount' => 1,
41057                                                                               'items' => [
41058                                                                                            bless( {
41059                                                                                                     'pattern' => 'REFERENCING',
41060                                                                                                     'hashname' => '__PATTERN1__',
41061                                                                                                     'description' => '/REFERENCING/i',
41062                                                                                                     'lookahead' => 0,
41063                                                                                                     'rdelim' => '/',
41064                                                                                                     'line' => 283,
41065                                                                                                     'mod' => 'i',
41066                                                                                                     'ldelim' => '/'
41067                                                                                                   }, 'Parse::RecDescent::Token' ),
41068                                                                                            bless( {
41069                                                                                                     'subrule' => 'old_new_corr',
41070                                                                                                     'expected' => undef,
41071                                                                                                     'min' => 0,
41072                                                                                                     'argcode' => undef,
41073                                                                                                     'max' => 2,
41074                                                                                                     'matchrule' => 0,
41075                                                                                                     'repspec' => '0..2',
41076                                                                                                     'lookahead' => 0,
41077                                                                                                     'line' => 283
41078                                                                                                   }, 'Parse::RecDescent::Repetition' ),
41079                                                                                            bless( {
41080                                                                                                     'subrule' => 'old_new_table',
41081                                                                                                     'expected' => undef,
41082                                                                                                     'min' => 0,
41083                                                                                                     'argcode' => undef,
41084                                                                                                     'max' => 2,
41085                                                                                                     'matchrule' => 0,
41086                                                                                                     'repspec' => '0..2',
41087                                                                                                     'lookahead' => 0,
41088                                                                                                     'line' => 283
41089                                                                                                   }, 'Parse::RecDescent::Repetition' ),
41090                                                                                            bless( {
41091                                                                                                     'hashname' => '__ACTION1__',
41092                                                                                                     'lookahead' => 0,
41093                                                                                                     'line' => 284,
41094                                                                                                     'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}), join(\' \', @{$item[3]})  ) }'
41095                                                                                                   }, 'Parse::RecDescent::Action' )
41096                                                                                          ],
41097                                                                               'line' => undef
41098                                                                             }, 'Parse::RecDescent::Production' )
41099                                                                    ],
41100                                                         'name' => 'reference_a',
41101                                                         'vars' => '',
41102                                                         'line' => 283
41103                                                       }, 'Parse::RecDescent::Rule' ),
41104                               'cast_specification' => bless( {
41105                                                                'impcount' => 2,
41106                                                                'calls' => [
41107                                                                             '_alternation_1_of_production_1_of_rule_cast_specification',
41108                                                                             'data_type',
41109                                                                             '_alternation_2_of_production_1_of_rule_cast_specification'
41110                                                                           ],
41111                                                                'changed' => 0,
41112                                                                'opcount' => 0,
41113                                                                'prods' => [
41114                                                                             bless( {
41115                                                                                      'number' => '0',
41116                                                                                      'strcount' => 2,
41117                                                                                      'dircount' => 0,
41118                                                                                      'uncommit' => undef,
41119                                                                                      'error' => undef,
41120                                                                                      'patcount' => 2,
41121                                                                                      'actcount' => 0,
41122                                                                                      'items' => [
41123                                                                                                   bless( {
41124                                                                                                            'pattern' => 'CAST',
41125                                                                                                            'hashname' => '__PATTERN1__',
41126                                                                                                            'description' => '/CAST/i',
41127                                                                                                            'lookahead' => 0,
41128                                                                                                            'rdelim' => '/',
41129                                                                                                            'line' => 517,
41130                                                                                                            'mod' => 'i',
41131                                                                                                            'ldelim' => '/'
41132                                                                                                          }, 'Parse::RecDescent::Token' ),
41133                                                                                                   bless( {
41134                                                                                                            'pattern' => '(',
41135                                                                                                            'hashname' => '__STRING1__',
41136                                                                                                            'description' => '\'(\'',
41137                                                                                                            'lookahead' => 0,
41138                                                                                                            'line' => 517
41139                                                                                                          }, 'Parse::RecDescent::Literal' ),
41140                                                                                                   bless( {
41141                                                                                                            'subrule' => '_alternation_1_of_production_1_of_rule_cast_specification',
41142                                                                                                            'matchrule' => 0,
41143                                                                                                            'implicit' => 'expression, or /NULL/i, or parameter_marker',
41144                                                                                                            'argcode' => undef,
41145                                                                                                            'lookahead' => 0,
41146                                                                                                            'line' => 520
41147                                                                                                          }, 'Parse::RecDescent::Subrule' ),
41148                                                                                                   bless( {
41149                                                                                                            'pattern' => 'AS',
41150                                                                                                            'hashname' => '__PATTERN2__',
41151                                                                                                            'description' => '/AS/i',
41152                                                                                                            'lookahead' => 0,
41153                                                                                                            'rdelim' => '/',
41154                                                                                                            'line' => 520,
41155                                                                                                            'mod' => 'i',
41156                                                                                                            'ldelim' => '/'
41157                                                                                                          }, 'Parse::RecDescent::Token' ),
41158                                                                                                   bless( {
41159                                                                                                            'subrule' => 'data_type',
41160                                                                                                            'matchrule' => 0,
41161                                                                                                            'implicit' => undef,
41162                                                                                                            'argcode' => undef,
41163                                                                                                            'lookahead' => 0,
41164                                                                                                            'line' => 520
41165                                                                                                          }, 'Parse::RecDescent::Subrule' ),
41166                                                                                                   bless( {
41167                                                                                                            'subrule' => '_alternation_2_of_production_1_of_rule_cast_specification',
41168                                                                                                            'expected' => '/SCOPE/',
41169                                                                                                            'min' => 0,
41170                                                                                                            'argcode' => undef,
41171                                                                                                            'max' => 1,
41172                                                                                                            'matchrule' => 0,
41173                                                                                                            'repspec' => '?',
41174                                                                                                            'lookahead' => 0,
41175                                                                                                            'line' => 524
41176                                                                                                          }, 'Parse::RecDescent::Repetition' ),
41177                                                                                                   bless( {
41178                                                                                                            'pattern' => ')',
41179                                                                                                            'hashname' => '__STRING2__',
41180                                                                                                            'description' => '\')\'',
41181                                                                                                            'lookahead' => 0,
41182                                                                                                            'line' => 524
41183                                                                                                          }, 'Parse::RecDescent::Literal' )
41184                                                                                                 ],
41185                                                                                      'line' => undef
41186                                                                                    }, 'Parse::RecDescent::Production' )
41187                                                                           ],
41188                                                                'name' => 'cast_specification',
41189                                                                'vars' => '',
41190                                                                'line' => 517
41191                                                              }, 'Parse::RecDescent::Rule' ),
41192                               'type' => bless( {
41193                                                  'impcount' => 1,
41194                                                  'calls' => [
41195                                                               'column_name',
41196                                                               '_alternation_1_of_production_2_of_rule_type'
41197                                                             ],
41198                                                  'changed' => 0,
41199                                                  'opcount' => 0,
41200                                                  'prods' => [
41201                                                               bless( {
41202                                                                        'number' => '0',
41203                                                                        'strcount' => 0,
41204                                                                        'dircount' => 1,
41205                                                                        'uncommit' => undef,
41206                                                                        'error' => undef,
41207                                                                        'patcount' => 3,
41208                                                                        'actcount' => 1,
41209                                                                        'op' => [],
41210                                                                        'items' => [
41211                                                                                     bless( {
41212                                                                                              'pattern' => 'UPDATE',
41213                                                                                              'hashname' => '__PATTERN1__',
41214                                                                                              'description' => '/UPDATE/i',
41215                                                                                              'lookahead' => 0,
41216                                                                                              'rdelim' => '/',
41217                                                                                              'line' => 272,
41218                                                                                              'mod' => 'i',
41219                                                                                              'ldelim' => '/'
41220                                                                                            }, 'Parse::RecDescent::Token' ),
41221                                                                                     bless( {
41222                                                                                              'pattern' => 'OF',
41223                                                                                              'hashname' => '__PATTERN2__',
41224                                                                                              'description' => '/OF/i',
41225                                                                                              'lookahead' => 0,
41226                                                                                              'rdelim' => '/',
41227                                                                                              'line' => 272,
41228                                                                                              'mod' => 'i',
41229                                                                                              'ldelim' => '/'
41230                                                                                            }, 'Parse::RecDescent::Token' ),
41231                                                                                     bless( {
41232                                                                                              'expected' => '<leftop: column_name /,/ column_name>',
41233                                                                                              'min' => 1,
41234                                                                                              'name' => '\'column_name(s)\'',
41235                                                                                              'max' => 100000000,
41236                                                                                              'leftarg' => bless( {
41237                                                                                                                    'subrule' => 'column_name',
41238                                                                                                                    'matchrule' => 0,
41239                                                                                                                    'implicit' => undef,
41240                                                                                                                    'argcode' => undef,
41241                                                                                                                    'lookahead' => 0,
41242                                                                                                                    'line' => 272
41243                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
41244                                                                                              'rightarg' => bless( {
41245                                                                                                                     'subrule' => 'column_name',
41246                                                                                                                     'matchrule' => 0,
41247                                                                                                                     'implicit' => undef,
41248                                                                                                                     'argcode' => undef,
41249                                                                                                                     'lookahead' => 0,
41250                                                                                                                     'line' => 272
41251                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
41252                                                                                              'hashname' => '__DIRECTIVE1__',
41253                                                                                              'type' => 'leftop',
41254                                                                                              'op' => bless( {
41255                                                                                                               'pattern' => ',',
41256                                                                                                               'hashname' => '__PATTERN3__',
41257                                                                                                               'description' => '/,/',
41258                                                                                                               'lookahead' => 0,
41259                                                                                                               'rdelim' => '/',
41260                                                                                                               'line' => 272,
41261                                                                                                               'mod' => '',
41262                                                                                                               'ldelim' => '/'
41263                                                                                                             }, 'Parse::RecDescent::Token' )
41264                                                                                            }, 'Parse::RecDescent::Operator' ),
41265                                                                                     bless( {
41266                                                                                              'hashname' => '__ACTION1__',
41267                                                                                              'lookahead' => 0,
41268                                                                                              'line' => 273,
41269                                                                                              'code' => '{ $return = { event  => \'update_on\',
41270               fields => $item[3] }
41271 }'
41272                                                                                            }, 'Parse::RecDescent::Action' )
41273                                                                                   ],
41274                                                                        'line' => undef
41275                                                                      }, 'Parse::RecDescent::Production' ),
41276                                                               bless( {
41277                                                                        'number' => '1',
41278                                                                        'strcount' => 0,
41279                                                                        'dircount' => 0,
41280                                                                        'uncommit' => undef,
41281                                                                        'error' => undef,
41282                                                                        'patcount' => 0,
41283                                                                        'actcount' => 1,
41284                                                                        'items' => [
41285                                                                                     bless( {
41286                                                                                              'subrule' => '_alternation_1_of_production_2_of_rule_type',
41287                                                                                              'matchrule' => 0,
41288                                                                                              'implicit' => '/INSERT/i, or /DELETE/i, or /UPDATE/i',
41289                                                                                              'argcode' => undef,
41290                                                                                              'lookahead' => 0,
41291                                                                                              'line' => 277
41292                                                                                            }, 'Parse::RecDescent::Subrule' ),
41293                                                                                     bless( {
41294                                                                                              'hashname' => '__ACTION1__',
41295                                                                                              'lookahead' => 0,
41296                                                                                              'line' => 278,
41297                                                                                              'code' => '{ $return = { event => $item[1] } }'
41298                                                                                            }, 'Parse::RecDescent::Action' )
41299                                                                                   ],
41300                                                                        'line' => undef
41301                                                                      }, 'Parse::RecDescent::Production' )
41302                                                             ],
41303                                                  'name' => 'type',
41304                                                  'vars' => '',
41305                                                  'line' => 272
41306                                                }, 'Parse::RecDescent::Rule' ),
41307                               '_alternation_1_of_production_12_of_rule_sysibm_function' => bless( {
41308                                                                                                     'impcount' => 0,
41309                                                                                                     'calls' => [],
41310                                                                                                     'changed' => 0,
41311                                                                                                     'opcount' => 0,
41312                                                                                                     'prods' => [
41313                                                                                                                  bless( {
41314                                                                                                                           'number' => '0',
41315                                                                                                                           'strcount' => 0,
41316                                                                                                                           'dircount' => 0,
41317                                                                                                                           'uncommit' => undef,
41318                                                                                                                           'error' => undef,
41319                                                                                                                           'patcount' => 1,
41320                                                                                                                           'actcount' => 0,
41321                                                                                                                           'items' => [
41322                                                                                                                                        bless( {
41323                                                                                                                                                 'pattern' => 'COVARIANCE',
41324                                                                                                                                                 'hashname' => '__PATTERN1__',
41325                                                                                                                                                 'description' => '/COVARIANCE/i',
41326                                                                                                                                                 'lookahead' => 0,
41327                                                                                                                                                 'rdelim' => '/',
41328                                                                                                                                                 'line' => 628,
41329                                                                                                                                                 'mod' => 'i',
41330                                                                                                                                                 'ldelim' => '/'
41331                                                                                                                                               }, 'Parse::RecDescent::Token' )
41332                                                                                                                                      ],
41333                                                                                                                           'line' => undef
41334                                                                                                                         }, 'Parse::RecDescent::Production' ),
41335                                                                                                                  bless( {
41336                                                                                                                           'number' => '1',
41337                                                                                                                           'strcount' => 0,
41338                                                                                                                           'dircount' => 0,
41339                                                                                                                           'uncommit' => undef,
41340                                                                                                                           'error' => undef,
41341                                                                                                                           'patcount' => 1,
41342                                                                                                                           'actcount' => 0,
41343                                                                                                                           'items' => [
41344                                                                                                                                        bless( {
41345                                                                                                                                                 'pattern' => 'COVAR',
41346                                                                                                                                                 'hashname' => '__PATTERN1__',
41347                                                                                                                                                 'description' => '/COVAR/i',
41348                                                                                                                                                 'lookahead' => 0,
41349                                                                                                                                                 'rdelim' => '/',
41350                                                                                                                                                 'line' => 628,
41351                                                                                                                                                 'mod' => 'i',
41352                                                                                                                                                 'ldelim' => '/'
41353                                                                                                                                               }, 'Parse::RecDescent::Token' )
41354                                                                                                                                      ],
41355                                                                                                                           'line' => 628
41356                                                                                                                         }, 'Parse::RecDescent::Production' )
41357                                                                                                                ],
41358                                                                                                     'name' => '_alternation_1_of_production_12_of_rule_sysibm_function',
41359                                                                                                     'vars' => '',
41360                                                                                                     'line' => 628
41361                                                                                                   }, 'Parse::RecDescent::Rule' ),
41362                               'scalar_fullselect' => bless( {
41363                                                               'impcount' => 0,
41364                                                               'calls' => [
41365                                                                            'fullselect'
41366                                                                          ],
41367                                                               'changed' => 0,
41368                                                               'opcount' => 0,
41369                                                               'prods' => [
41370                                                                            bless( {
41371                                                                                     'number' => '0',
41372                                                                                     'strcount' => 2,
41373                                                                                     'dircount' => 0,
41374                                                                                     'uncommit' => undef,
41375                                                                                     'error' => undef,
41376                                                                                     'patcount' => 0,
41377                                                                                     'actcount' => 0,
41378                                                                                     'items' => [
41379                                                                                                  bless( {
41380                                                                                                           'pattern' => '(',
41381                                                                                                           'hashname' => '__STRING1__',
41382                                                                                                           'description' => '\'(\'',
41383                                                                                                           'lookahead' => 0,
41384                                                                                                           'line' => 478
41385                                                                                                         }, 'Parse::RecDescent::Literal' ),
41386                                                                                                  bless( {
41387                                                                                                           'subrule' => 'fullselect',
41388                                                                                                           'matchrule' => 0,
41389                                                                                                           'implicit' => undef,
41390                                                                                                           'argcode' => undef,
41391                                                                                                           'lookahead' => 0,
41392                                                                                                           'line' => 478
41393                                                                                                         }, 'Parse::RecDescent::Subrule' ),
41394                                                                                                  bless( {
41395                                                                                                           'pattern' => ')',
41396                                                                                                           'hashname' => '__STRING2__',
41397                                                                                                           'description' => '\')\'',
41398                                                                                                           'lookahead' => 0,
41399                                                                                                           'line' => 478
41400                                                                                                         }, 'Parse::RecDescent::Literal' )
41401                                                                                                ],
41402                                                                                     'line' => undef
41403                                                                                   }, 'Parse::RecDescent::Production' )
41404                                                                          ],
41405                                                               'name' => 'scalar_fullselect',
41406                                                               'vars' => '',
41407                                                               'line' => 478
41408                                                             }, 'Parse::RecDescent::Rule' ),
41409                               '_alternation_1_of_production_1_of_rule_options' => bless( {
41410                                                                                            'impcount' => 0,
41411                                                                                            'calls' => [],
41412                                                                                            'changed' => 0,
41413                                                                                            'opcount' => 0,
41414                                                                                            'prods' => [
41415                                                                                                         bless( {
41416                                                                                                                  'number' => '0',
41417                                                                                                                  'strcount' => 0,
41418                                                                                                                  'dircount' => 0,
41419                                                                                                                  'uncommit' => undef,
41420                                                                                                                  'error' => undef,
41421                                                                                                                  'patcount' => 1,
41422                                                                                                                  'actcount' => 0,
41423                                                                                                                  'items' => [
41424                                                                                                                               bless( {
41425                                                                                                                                        'pattern' => 'CASCADED',
41426                                                                                                                                        'hashname' => '__PATTERN1__',
41427                                                                                                                                        'description' => '/CASCADED/i',
41428                                                                                                                                        'lookahead' => 0,
41429                                                                                                                                        'rdelim' => '/',
41430                                                                                                                                        'line' => 628,
41431                                                                                                                                        'mod' => 'i',
41432                                                                                                                                        'ldelim' => '/'
41433                                                                                                                                      }, 'Parse::RecDescent::Token' )
41434                                                                                                                             ],
41435                                                                                                                  'line' => undef
41436                                                                                                                }, 'Parse::RecDescent::Production' ),
41437                                                                                                         bless( {
41438                                                                                                                  'number' => '1',
41439                                                                                                                  'strcount' => 0,
41440                                                                                                                  'dircount' => 0,
41441                                                                                                                  'uncommit' => undef,
41442                                                                                                                  'error' => undef,
41443                                                                                                                  'patcount' => 1,
41444                                                                                                                  'actcount' => 0,
41445                                                                                                                  'items' => [
41446                                                                                                                               bless( {
41447                                                                                                                                        'pattern' => 'LOCAL',
41448                                                                                                                                        'hashname' => '__PATTERN1__',
41449                                                                                                                                        'description' => '/LOCAL/i',
41450                                                                                                                                        'lookahead' => 0,
41451                                                                                                                                        'rdelim' => '/',
41452                                                                                                                                        'line' => 628,
41453                                                                                                                                        'mod' => 'i',
41454                                                                                                                                        'ldelim' => '/'
41455                                                                                                                                      }, 'Parse::RecDescent::Token' )
41456                                                                                                                             ],
41457                                                                                                                  'line' => 628
41458                                                                                                                }, 'Parse::RecDescent::Production' )
41459                                                                                                       ],
41460                                                                                            'name' => '_alternation_1_of_production_1_of_rule_options',
41461                                                                                            'vars' => '',
41462                                                                                            'line' => 628
41463                                                                                          }, 'Parse::RecDescent::Rule' ),
41464                               'func_args' => bless( {
41465                                                       'impcount' => 0,
41466                                                       'calls' => [
41467                                                                    'expression'
41468                                                                  ],
41469                                                       'changed' => 0,
41470                                                       'opcount' => 0,
41471                                                       'prods' => [
41472                                                                    bless( {
41473                                                                             'number' => '0',
41474                                                                             'strcount' => 0,
41475                                                                             'dircount' => 0,
41476                                                                             'uncommit' => undef,
41477                                                                             'error' => undef,
41478                                                                             'patcount' => 0,
41479                                                                             'actcount' => 0,
41480                                                                             'items' => [
41481                                                                                          bless( {
41482                                                                                                   'subrule' => 'expression',
41483                                                                                                   'matchrule' => 0,
41484                                                                                                   'implicit' => undef,
41485                                                                                                   'argcode' => undef,
41486                                                                                                   'lookahead' => 0,
41487                                                                                                   'line' => 330
41488                                                                                                 }, 'Parse::RecDescent::Subrule' )
41489                                                                                        ],
41490                                                                             'line' => undef
41491                                                                           }, 'Parse::RecDescent::Production' )
41492                                                                  ],
41493                                                       'name' => 'func_args',
41494                                                       'vars' => '',
41495                                                       'line' => 330
41496                                                     }, 'Parse::RecDescent::Rule' ),
41497                               'trigger_name' => bless( {
41498                                                          'impcount' => 0,
41499                                                          'calls' => [
41500                                                                       'SCHEMA',
41501                                                                       'NAME'
41502                                                                     ],
41503                                                          'changed' => 0,
41504                                                          'opcount' => 0,
41505                                                          'prods' => [
41506                                                                       bless( {
41507                                                                                'number' => '0',
41508                                                                                'strcount' => 1,
41509                                                                                'dircount' => 0,
41510                                                                                'uncommit' => undef,
41511                                                                                'error' => undef,
41512                                                                                'patcount' => 0,
41513                                                                                'actcount' => 1,
41514                                                                                'items' => [
41515                                                                                             bless( {
41516                                                                                                      'subrule' => 'SCHEMA',
41517                                                                                                      'matchrule' => 0,
41518                                                                                                      'implicit' => undef,
41519                                                                                                      'argcode' => undef,
41520                                                                                                      'lookahead' => 0,
41521                                                                                                      'line' => 119
41522                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41523                                                                                             bless( {
41524                                                                                                      'pattern' => '.',
41525                                                                                                      'hashname' => '__STRING1__',
41526                                                                                                      'description' => '\'.\'',
41527                                                                                                      'lookahead' => 0,
41528                                                                                                      'line' => 119
41529                                                                                                    }, 'Parse::RecDescent::Literal' ),
41530                                                                                             bless( {
41531                                                                                                      'subrule' => 'NAME',
41532                                                                                                      'matchrule' => 0,
41533                                                                                                      'implicit' => undef,
41534                                                                                                      'argcode' => undef,
41535                                                                                                      'lookahead' => 0,
41536                                                                                                      'line' => 119
41537                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41538                                                                                             bless( {
41539                                                                                                      'hashname' => '__ACTION1__',
41540                                                                                                      'lookahead' => 0,
41541                                                                                                      'line' => 120,
41542                                                                                                      'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
41543                                                                                                    }, 'Parse::RecDescent::Action' )
41544                                                                                           ],
41545                                                                                'line' => undef
41546                                                                              }, 'Parse::RecDescent::Production' ),
41547                                                                       bless( {
41548                                                                                'number' => '1',
41549                                                                                'strcount' => 0,
41550                                                                                'dircount' => 0,
41551                                                                                'uncommit' => undef,
41552                                                                                'error' => undef,
41553                                                                                'patcount' => 0,
41554                                                                                'actcount' => 1,
41555                                                                                'items' => [
41556                                                                                             bless( {
41557                                                                                                      'subrule' => 'NAME',
41558                                                                                                      'matchrule' => 0,
41559                                                                                                      'implicit' => undef,
41560                                                                                                      'argcode' => undef,
41561                                                                                                      'lookahead' => 0,
41562                                                                                                      'line' => 121
41563                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41564                                                                                             bless( {
41565                                                                                                      'hashname' => '__ACTION1__',
41566                                                                                                      'lookahead' => 0,
41567                                                                                                      'line' => 122,
41568                                                                                                      'code' => '{ $return = { name => $item[1] } }'
41569                                                                                                    }, 'Parse::RecDescent::Action' )
41570                                                                                           ],
41571                                                                                'line' => 121
41572                                                                              }, 'Parse::RecDescent::Production' )
41573                                                                     ],
41574                                                          'name' => 'trigger_name',
41575                                                          'vars' => '',
41576                                                          'line' => 119
41577                                                        }, 'Parse::RecDescent::Rule' ),
41578                               '_alternation_2_of_production_1_of_rule_numbering_function' => bless( {
41579                                                                                                       'impcount' => 0,
41580                                                                                                       'calls' => [
41581                                                                                                                    'window_aggregation_group_clause'
41582                                                                                                                  ],
41583                                                                                                       'changed' => 0,
41584                                                                                                       'opcount' => 0,
41585                                                                                                       'prods' => [
41586                                                                                                                    bless( {
41587                                                                                                                             'number' => '0',
41588                                                                                                                             'strcount' => 0,
41589                                                                                                                             'dircount' => 0,
41590                                                                                                                             'uncommit' => undef,
41591                                                                                                                             'error' => undef,
41592                                                                                                                             'patcount' => 1,
41593                                                                                                                             'actcount' => 0,
41594                                                                                                                             'items' => [
41595                                                                                                                                          bless( {
41596                                                                                                                                                   'pattern' => 'RANGE\\s+BETWEEN\\s+UNBOUNDED\\s+PRECEDING\\s+AND\\s+UNBBOUNDED\\s+FOLLOWING',
41597                                                                                                                                                   'hashname' => '__PATTERN1__',
41598                                                                                                                                                   'description' => '/RANGE\\\\s+BETWEEN\\\\s+UNBOUNDED\\\\s+PRECEDING\\\\s+AND\\\\s+UNBBOUNDED\\\\s+FOLLOWING/i',
41599                                                                                                                                                   'lookahead' => 0,
41600                                                                                                                                                   'rdelim' => '/',
41601                                                                                                                                                   'line' => 626,
41602                                                                                                                                                   'mod' => 'i',
41603                                                                                                                                                   'ldelim' => '/'
41604                                                                                                                                                 }, 'Parse::RecDescent::Token' )
41605                                                                                                                                        ],
41606                                                                                                                             'line' => undef
41607                                                                                                                           }, 'Parse::RecDescent::Production' ),
41608                                                                                                                    bless( {
41609                                                                                                                             'number' => '1',
41610                                                                                                                             'strcount' => 0,
41611                                                                                                                             'dircount' => 0,
41612                                                                                                                             'uncommit' => undef,
41613                                                                                                                             'error' => undef,
41614                                                                                                                             'patcount' => 0,
41615                                                                                                                             'actcount' => 0,
41616                                                                                                                             'items' => [
41617                                                                                                                                          bless( {
41618                                                                                                                                                   'subrule' => 'window_aggregation_group_clause',
41619                                                                                                                                                   'matchrule' => 0,
41620                                                                                                                                                   'implicit' => undef,
41621                                                                                                                                                   'argcode' => undef,
41622                                                                                                                                                   'lookahead' => 0,
41623                                                                                                                                                   'line' => 627
41624                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
41625                                                                                                                                        ],
41626                                                                                                                             'line' => 627
41627                                                                                                                           }, 'Parse::RecDescent::Production' )
41628                                                                                                                  ],
41629                                                                                                       'name' => '_alternation_2_of_production_1_of_rule_numbering_function',
41630                                                                                                       'vars' => '',
41631                                                                                                       'line' => 626
41632                                                                                                     }, 'Parse::RecDescent::Rule' ),
41633                               'method_name' => bless( {
41634                                                         'impcount' => 0,
41635                                                         'calls' => [
41636                                                                      'NAME'
41637                                                                    ],
41638                                                         'changed' => 0,
41639                                                         'opcount' => 0,
41640                                                         'prods' => [
41641                                                                      bless( {
41642                                                                               'number' => '0',
41643                                                                               'strcount' => 0,
41644                                                                               'dircount' => 0,
41645                                                                               'uncommit' => undef,
41646                                                                               'error' => undef,
41647                                                                               'patcount' => 0,
41648                                                                               'actcount' => 1,
41649                                                                               'items' => [
41650                                                                                            bless( {
41651                                                                                                     'subrule' => 'NAME',
41652                                                                                                     'matchrule' => 0,
41653                                                                                                     'implicit' => undef,
41654                                                                                                     'argcode' => undef,
41655                                                                                                     'lookahead' => 0,
41656                                                                                                     'line' => 602
41657                                                                                                   }, 'Parse::RecDescent::Subrule' ),
41658                                                                                            bless( {
41659                                                                                                     'hashname' => '__ACTION1__',
41660                                                                                                     'lookahead' => 0,
41661                                                                                                     'line' => 603,
41662                                                                                                     'code' => '{ # must be a method of subject_expression
41663 }'
41664                                                                                                   }, 'Parse::RecDescent::Action' )
41665                                                                                          ],
41666                                                                               'line' => undef
41667                                                                             }, 'Parse::RecDescent::Production' )
41668                                                                    ],
41669                                                         'name' => 'method_name',
41670                                                         'vars' => '',
41671                                                         'line' => 602
41672                                                       }, 'Parse::RecDescent::Rule' ),
41673                               'quantified_p' => bless( {
41674                                                          'impcount' => 0,
41675                                                          'calls' => [
41676                                                                       'expression1',
41677                                                                       'fullselect'
41678                                                                     ],
41679                                                          'changed' => 0,
41680                                                          'opcount' => 0,
41681                                                          'prods' => [
41682                                                                       bless( {
41683                                                                                'number' => '0',
41684                                                                                'strcount' => 2,
41685                                                                                'dircount' => 0,
41686                                                                                'uncommit' => undef,
41687                                                                                'error' => undef,
41688                                                                                'patcount' => 2,
41689                                                                                'actcount' => 0,
41690                                                                                'items' => [
41691                                                                                             bless( {
41692                                                                                                      'subrule' => 'expression1',
41693                                                                                                      'matchrule' => 0,
41694                                                                                                      'implicit' => undef,
41695                                                                                                      'argcode' => undef,
41696                                                                                                      'lookahead' => 0,
41697                                                                                                      'line' => 626
41698                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41699                                                                                             bless( {
41700                                                                                                      'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
41701                                                                                                      'hashname' => '__PATTERN1__',
41702                                                                                                      'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
41703                                                                                                      'lookahead' => 0,
41704                                                                                                      'rdelim' => '/',
41705                                                                                                      'line' => 626,
41706                                                                                                      'mod' => '',
41707                                                                                                      'ldelim' => '/'
41708                                                                                                    }, 'Parse::RecDescent::Token' ),
41709                                                                                             bless( {
41710                                                                                                      'pattern' => 'SOME|ANY|ALL',
41711                                                                                                      'hashname' => '__PATTERN2__',
41712                                                                                                      'description' => '/SOME|ANY|ALL/i',
41713                                                                                                      'lookahead' => 0,
41714                                                                                                      'rdelim' => '/',
41715                                                                                                      'line' => 626,
41716                                                                                                      'mod' => 'i',
41717                                                                                                      'ldelim' => '/'
41718                                                                                                    }, 'Parse::RecDescent::Token' ),
41719                                                                                             bless( {
41720                                                                                                      'pattern' => '(',
41721                                                                                                      'hashname' => '__STRING1__',
41722                                                                                                      'description' => '\'(\'',
41723                                                                                                      'lookahead' => 0,
41724                                                                                                      'line' => 626
41725                                                                                                    }, 'Parse::RecDescent::Literal' ),
41726                                                                                             bless( {
41727                                                                                                      'subrule' => 'fullselect',
41728                                                                                                      'matchrule' => 0,
41729                                                                                                      'implicit' => undef,
41730                                                                                                      'argcode' => undef,
41731                                                                                                      'lookahead' => 0,
41732                                                                                                      'line' => 626
41733                                                                                                    }, 'Parse::RecDescent::Subrule' ),
41734                                                                                             bless( {
41735                                                                                                      'pattern' => ')',
41736                                                                                                      'hashname' => '__STRING2__',
41737                                                                                                      'description' => '\')\'',
41738                                                                                                      'lookahead' => 0,
41739                                                                                                      'line' => 626
41740                                                                                                    }, 'Parse::RecDescent::Literal' )
41741                                                                                           ],
41742                                                                                'line' => undef
41743                                                                              }, 'Parse::RecDescent::Production' )
41744                                                                     ],
41745                                                          'name' => 'quantified_p',
41746                                                          'vars' => '',
41747                                                          'line' => 626
41748                                                        }, 'Parse::RecDescent::Rule' ),
41749                               'common_table_expression' => bless( {
41750                                                                     'impcount' => 0,
41751                                                                     'calls' => [
41752                                                                                  'table_name',
41753                                                                                  'column_list',
41754                                                                                  'get_bracketed',
41755                                                                                  'fullselect'
41756                                                                                ],
41757                                                                     'changed' => 0,
41758                                                                     'opcount' => 0,
41759                                                                     'prods' => [
41760                                                                                  bless( {
41761                                                                                           'number' => '0',
41762                                                                                           'strcount' => 0,
41763                                                                                           'dircount' => 0,
41764                                                                                           'uncommit' => undef,
41765                                                                                           'error' => undef,
41766                                                                                           'patcount' => 1,
41767                                                                                           'actcount' => 1,
41768                                                                                           'items' => [
41769                                                                                                        bless( {
41770                                                                                                                 'subrule' => 'table_name',
41771                                                                                                                 'matchrule' => 0,
41772                                                                                                                 'implicit' => undef,
41773                                                                                                                 'argcode' => undef,
41774                                                                                                                 'lookahead' => 0,
41775                                                                                                                 'line' => 162
41776                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41777                                                                                                        bless( {
41778                                                                                                                 'subrule' => 'column_list',
41779                                                                                                                 'matchrule' => 0,
41780                                                                                                                 'implicit' => undef,
41781                                                                                                                 'argcode' => undef,
41782                                                                                                                 'lookahead' => 0,
41783                                                                                                                 'line' => 162
41784                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41785                                                                                                        bless( {
41786                                                                                                                 'pattern' => 'AS',
41787                                                                                                                 'hashname' => '__PATTERN1__',
41788                                                                                                                 'description' => '/AS/i',
41789                                                                                                                 'lookahead' => 0,
41790                                                                                                                 'rdelim' => '/',
41791                                                                                                                 'line' => 162,
41792                                                                                                                 'mod' => 'i',
41793                                                                                                                 'ldelim' => '/'
41794                                                                                                               }, 'Parse::RecDescent::Token' ),
41795                                                                                                        bless( {
41796                                                                                                                 'subrule' => 'get_bracketed',
41797                                                                                                                 'matchrule' => 0,
41798                                                                                                                 'implicit' => undef,
41799                                                                                                                 'argcode' => undef,
41800                                                                                                                 'lookahead' => 0,
41801                                                                                                                 'line' => 162
41802                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41803                                                                                                        bless( {
41804                                                                                                                 'hashname' => '__ACTION1__',
41805                                                                                                                 'lookahead' => 0,
41806                                                                                                                 'line' => 163,
41807                                                                                                                 'code' => '{
41808     $return = { name  => $item{table_name}{name},
41809                 query => $item[4]
41810                 };
41811 }'
41812                                                                                                               }, 'Parse::RecDescent::Action' )
41813                                                                                                      ],
41814                                                                                           'line' => undef
41815                                                                                         }, 'Parse::RecDescent::Production' ),
41816                                                                                  bless( {
41817                                                                                           'number' => '1',
41818                                                                                           'strcount' => 2,
41819                                                                                           'dircount' => 0,
41820                                                                                           'uncommit' => undef,
41821                                                                                           'error' => undef,
41822                                                                                           'patcount' => 1,
41823                                                                                           'actcount' => 0,
41824                                                                                           'items' => [
41825                                                                                                        bless( {
41826                                                                                                                 'subrule' => 'table_name',
41827                                                                                                                 'matchrule' => 0,
41828                                                                                                                 'implicit' => undef,
41829                                                                                                                 'argcode' => undef,
41830                                                                                                                 'lookahead' => 0,
41831                                                                                                                 'line' => 174
41832                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41833                                                                                                        bless( {
41834                                                                                                                 'subrule' => 'column_list',
41835                                                                                                                 'matchrule' => 0,
41836                                                                                                                 'implicit' => undef,
41837                                                                                                                 'argcode' => undef,
41838                                                                                                                 'lookahead' => 0,
41839                                                                                                                 'line' => 174
41840                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41841                                                                                                        bless( {
41842                                                                                                                 'pattern' => 'AS',
41843                                                                                                                 'hashname' => '__PATTERN1__',
41844                                                                                                                 'description' => '/AS/i',
41845                                                                                                                 'lookahead' => 0,
41846                                                                                                                 'rdelim' => '/',
41847                                                                                                                 'line' => 174,
41848                                                                                                                 'mod' => 'i',
41849                                                                                                                 'ldelim' => '/'
41850                                                                                                               }, 'Parse::RecDescent::Token' ),
41851                                                                                                        bless( {
41852                                                                                                                 'pattern' => '(',
41853                                                                                                                 'hashname' => '__STRING1__',
41854                                                                                                                 'description' => '\'(\'',
41855                                                                                                                 'lookahead' => 0,
41856                                                                                                                 'line' => 174
41857                                                                                                               }, 'Parse::RecDescent::Literal' ),
41858                                                                                                        bless( {
41859                                                                                                                 'subrule' => 'fullselect',
41860                                                                                                                 'matchrule' => 0,
41861                                                                                                                 'implicit' => undef,
41862                                                                                                                 'argcode' => undef,
41863                                                                                                                 'lookahead' => 0,
41864                                                                                                                 'line' => 174
41865                                                                                                               }, 'Parse::RecDescent::Subrule' ),
41866                                                                                                        bless( {
41867                                                                                                                 'pattern' => ')',
41868                                                                                                                 'hashname' => '__STRING2__',
41869                                                                                                                 'description' => '\')\'',
41870                                                                                                                 'lookahead' => 0,
41871                                                                                                                 'line' => 174
41872                                                                                                               }, 'Parse::RecDescent::Literal' )
41873                                                                                                      ],
41874                                                                                           'line' => undef
41875                                                                                         }, 'Parse::RecDescent::Production' )
41876                                                                                ],
41877                                                                     'name' => 'common_table_expression',
41878                                                                     'vars' => '',
41879                                                                     'line' => 160
41880                                                                   }, 'Parse::RecDescent::Rule' ),
41881                               'after' => bless( {
41882                                                   'impcount' => 0,
41883                                                   'calls' => [],
41884                                                   'changed' => 0,
41885                                                   'opcount' => 0,
41886                                                   'prods' => [
41887                                                                bless( {
41888                                                                         'number' => '0',
41889                                                                         'strcount' => 0,
41890                                                                         'dircount' => 0,
41891                                                                         'uncommit' => undef,
41892                                                                         'error' => undef,
41893                                                                         'patcount' => 1,
41894                                                                         'actcount' => 0,
41895                                                                         'items' => [
41896                                                                                      bless( {
41897                                                                                               'pattern' => 'AFTER',
41898                                                                                               'hashname' => '__PATTERN1__',
41899                                                                                               'description' => '/AFTER/i',
41900                                                                                               'lookahead' => 0,
41901                                                                                               'rdelim' => '/',
41902                                                                                               'line' => 270,
41903                                                                                               'mod' => 'i',
41904                                                                                               'ldelim' => '/'
41905                                                                                             }, 'Parse::RecDescent::Token' )
41906                                                                                    ],
41907                                                                         'line' => undef
41908                                                                       }, 'Parse::RecDescent::Production' )
41909                                                              ],
41910                                                   'name' => 'after',
41911                                                   'vars' => '',
41912                                                   'line' => 270
41913                                                 }, 'Parse::RecDescent::Rule' ),
41914                               'predicate' => bless( {
41915                                                       'impcount' => 0,
41916                                                       'calls' => [
41917                                                                    'basic_p',
41918                                                                    'quantified_p',
41919                                                                    'between_p',
41920                                                                    'exists_p',
41921                                                                    'in_p',
41922                                                                    'like_p',
41923                                                                    'null_p',
41924                                                                    'type_p'
41925                                                                  ],
41926                                                       'changed' => 0,
41927                                                       'opcount' => 0,
41928                                                       'prods' => [
41929                                                                    bless( {
41930                                                                             'number' => '0',
41931                                                                             'strcount' => 0,
41932                                                                             'dircount' => 0,
41933                                                                             'uncommit' => undef,
41934                                                                             'error' => undef,
41935                                                                             'patcount' => 0,
41936                                                                             'actcount' => 0,
41937                                                                             'items' => [
41938                                                                                          bless( {
41939                                                                                                   'subrule' => 'basic_p',
41940                                                                                                   'matchrule' => 0,
41941                                                                                                   'implicit' => undef,
41942                                                                                                   'argcode' => undef,
41943                                                                                                   'lookahead' => 0,
41944                                                                                                   'line' => 622
41945                                                                                                 }, 'Parse::RecDescent::Subrule' )
41946                                                                                        ],
41947                                                                             'line' => undef
41948                                                                           }, 'Parse::RecDescent::Production' ),
41949                                                                    bless( {
41950                                                                             'number' => '1',
41951                                                                             'strcount' => 0,
41952                                                                             'dircount' => 0,
41953                                                                             'uncommit' => undef,
41954                                                                             'error' => undef,
41955                                                                             'patcount' => 0,
41956                                                                             'actcount' => 0,
41957                                                                             'items' => [
41958                                                                                          bless( {
41959                                                                                                   'subrule' => 'quantified_p',
41960                                                                                                   'matchrule' => 0,
41961                                                                                                   'implicit' => undef,
41962                                                                                                   'argcode' => undef,
41963                                                                                                   'lookahead' => 0,
41964                                                                                                   'line' => 622
41965                                                                                                 }, 'Parse::RecDescent::Subrule' )
41966                                                                                        ],
41967                                                                             'line' => 622
41968                                                                           }, 'Parse::RecDescent::Production' ),
41969                                                                    bless( {
41970                                                                             'number' => '2',
41971                                                                             'strcount' => 0,
41972                                                                             'dircount' => 0,
41973                                                                             'uncommit' => undef,
41974                                                                             'error' => undef,
41975                                                                             'patcount' => 0,
41976                                                                             'actcount' => 0,
41977                                                                             'items' => [
41978                                                                                          bless( {
41979                                                                                                   'subrule' => 'between_p',
41980                                                                                                   'matchrule' => 0,
41981                                                                                                   'implicit' => undef,
41982                                                                                                   'argcode' => undef,
41983                                                                                                   'lookahead' => 0,
41984                                                                                                   'line' => 622
41985                                                                                                 }, 'Parse::RecDescent::Subrule' )
41986                                                                                        ],
41987                                                                             'line' => 622
41988                                                                           }, 'Parse::RecDescent::Production' ),
41989                                                                    bless( {
41990                                                                             'number' => '3',
41991                                                                             'strcount' => 0,
41992                                                                             'dircount' => 0,
41993                                                                             'uncommit' => undef,
41994                                                                             'error' => undef,
41995                                                                             'patcount' => 0,
41996                                                                             'actcount' => 0,
41997                                                                             'items' => [
41998                                                                                          bless( {
41999                                                                                                   'subrule' => 'exists_p',
42000                                                                                                   'matchrule' => 0,
42001                                                                                                   'implicit' => undef,
42002                                                                                                   'argcode' => undef,
42003                                                                                                   'lookahead' => 0,
42004                                                                                                   'line' => 622
42005                                                                                                 }, 'Parse::RecDescent::Subrule' )
42006                                                                                        ],
42007                                                                             'line' => 622
42008                                                                           }, 'Parse::RecDescent::Production' ),
42009                                                                    bless( {
42010                                                                             'number' => '4',
42011                                                                             'strcount' => 0,
42012                                                                             'dircount' => 0,
42013                                                                             'uncommit' => undef,
42014                                                                             'error' => undef,
42015                                                                             'patcount' => 0,
42016                                                                             'actcount' => 0,
42017                                                                             'items' => [
42018                                                                                          bless( {
42019                                                                                                   'subrule' => 'in_p',
42020                                                                                                   'matchrule' => 0,
42021                                                                                                   'implicit' => undef,
42022                                                                                                   'argcode' => undef,
42023                                                                                                   'lookahead' => 0,
42024                                                                                                   'line' => 622
42025                                                                                                 }, 'Parse::RecDescent::Subrule' )
42026                                                                                        ],
42027                                                                             'line' => 622
42028                                                                           }, 'Parse::RecDescent::Production' ),
42029                                                                    bless( {
42030                                                                             'number' => '5',
42031                                                                             'strcount' => 0,
42032                                                                             'dircount' => 0,
42033                                                                             'uncommit' => undef,
42034                                                                             'error' => undef,
42035                                                                             'patcount' => 0,
42036                                                                             'actcount' => 0,
42037                                                                             'items' => [
42038                                                                                          bless( {
42039                                                                                                   'subrule' => 'like_p',
42040                                                                                                   'matchrule' => 0,
42041                                                                                                   'implicit' => undef,
42042                                                                                                   'argcode' => undef,
42043                                                                                                   'lookahead' => 0,
42044                                                                                                   'line' => 622
42045                                                                                                 }, 'Parse::RecDescent::Subrule' )
42046                                                                                        ],
42047                                                                             'line' => 622
42048                                                                           }, 'Parse::RecDescent::Production' ),
42049                                                                    bless( {
42050                                                                             'number' => '6',
42051                                                                             'strcount' => 0,
42052                                                                             'dircount' => 0,
42053                                                                             'uncommit' => undef,
42054                                                                             'error' => undef,
42055                                                                             'patcount' => 0,
42056                                                                             'actcount' => 0,
42057                                                                             'items' => [
42058                                                                                          bless( {
42059                                                                                                   'subrule' => 'null_p',
42060                                                                                                   'matchrule' => 0,
42061                                                                                                   'implicit' => undef,
42062                                                                                                   'argcode' => undef,
42063                                                                                                   'lookahead' => 0,
42064                                                                                                   'line' => 622
42065                                                                                                 }, 'Parse::RecDescent::Subrule' )
42066                                                                                        ],
42067                                                                             'line' => 622
42068                                                                           }, 'Parse::RecDescent::Production' ),
42069                                                                    bless( {
42070                                                                             'number' => '7',
42071                                                                             'strcount' => 0,
42072                                                                             'dircount' => 0,
42073                                                                             'uncommit' => undef,
42074                                                                             'error' => undef,
42075                                                                             'patcount' => 0,
42076                                                                             'actcount' => 0,
42077                                                                             'items' => [
42078                                                                                          bless( {
42079                                                                                                   'subrule' => 'type_p',
42080                                                                                                   'matchrule' => 0,
42081                                                                                                   'implicit' => undef,
42082                                                                                                   'argcode' => undef,
42083                                                                                                   'lookahead' => 0,
42084                                                                                                   'line' => 622
42085                                                                                                 }, 'Parse::RecDescent::Subrule' )
42086                                                                                        ],
42087                                                                             'line' => 622
42088                                                                           }, 'Parse::RecDescent::Production' )
42089                                                                  ],
42090                                                       'name' => 'predicate',
42091                                                       'vars' => '',
42092                                                       'line' => 622
42093                                                     }, 'Parse::RecDescent::Rule' ),
42094                               'column_name' => bless( {
42095                                                         'impcount' => 0,
42096                                                         'calls' => [
42097                                                                      'NAME'
42098                                                                    ],
42099                                                         'changed' => 0,
42100                                                         'opcount' => 0,
42101                                                         'prods' => [
42102                                                                      bless( {
42103                                                                               'number' => '0',
42104                                                                               'strcount' => 0,
42105                                                                               'dircount' => 0,
42106                                                                               'uncommit' => undef,
42107                                                                               'error' => undef,
42108                                                                               'patcount' => 0,
42109                                                                               'actcount' => 0,
42110                                                                               'items' => [
42111                                                                                            bless( {
42112                                                                                                     'subrule' => 'NAME',
42113                                                                                                     'matchrule' => 0,
42114                                                                                                     'implicit' => undef,
42115                                                                                                     'argcode' => undef,
42116                                                                                                     'lookahead' => 0,
42117                                                                                                     'line' => 134
42118                                                                                                   }, 'Parse::RecDescent::Subrule' )
42119                                                                                          ],
42120                                                                               'line' => undef
42121                                                                             }, 'Parse::RecDescent::Production' )
42122                                                                    ],
42123                                                         'name' => 'column_name',
42124                                                         'vars' => '',
42125                                                         'line' => 134
42126                                                       }, 'Parse::RecDescent::Rule' ),
42127                               'method_invocation' => bless( {
42128                                                               'impcount' => 1,
42129                                                               'calls' => [
42130                                                                            'subject_expression',
42131                                                                            'method_name',
42132                                                                            '_alternation_1_of_production_1_of_rule_method_invocation'
42133                                                                          ],
42134                                                               'changed' => 0,
42135                                                               'opcount' => 0,
42136                                                               'prods' => [
42137                                                                            bless( {
42138                                                                                     'number' => '0',
42139                                                                                     'strcount' => 1,
42140                                                                                     'dircount' => 0,
42141                                                                                     'uncommit' => undef,
42142                                                                                     'error' => undef,
42143                                                                                     'patcount' => 0,
42144                                                                                     'actcount' => 0,
42145                                                                                     'items' => [
42146                                                                                                  bless( {
42147                                                                                                           'subrule' => 'subject_expression',
42148                                                                                                           'matchrule' => 0,
42149                                                                                                           'implicit' => undef,
42150                                                                                                           'argcode' => undef,
42151                                                                                                           'lookahead' => 0,
42152                                                                                                           'line' => 593
42153                                                                                                         }, 'Parse::RecDescent::Subrule' ),
42154                                                                                                  bless( {
42155                                                                                                           'pattern' => '..',
42156                                                                                                           'hashname' => '__STRING1__',
42157                                                                                                           'description' => '\'..\'',
42158                                                                                                           'lookahead' => 0,
42159                                                                                                           'line' => 593
42160                                                                                                         }, 'Parse::RecDescent::Literal' ),
42161                                                                                                  bless( {
42162                                                                                                           'subrule' => 'method_name',
42163                                                                                                           'matchrule' => 0,
42164                                                                                                           'implicit' => undef,
42165                                                                                                           'argcode' => undef,
42166                                                                                                           'lookahead' => 0,
42167                                                                                                           'line' => 593
42168                                                                                                         }, 'Parse::RecDescent::Subrule' ),
42169                                                                                                  bless( {
42170                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule_method_invocation',
42171                                                                                                           'expected' => '\'(\'',
42172                                                                                                           'min' => 0,
42173                                                                                                           'argcode' => undef,
42174                                                                                                           'max' => 1,
42175                                                                                                           'matchrule' => 0,
42176                                                                                                           'repspec' => '?',
42177                                                                                                           'lookahead' => 0,
42178                                                                                                           'line' => 596
42179                                                                                                         }, 'Parse::RecDescent::Repetition' )
42180                                                                                                ],
42181                                                                                     'line' => undef
42182                                                                                   }, 'Parse::RecDescent::Production' )
42183                                                                          ],
42184                                                               'name' => 'method_invocation',
42185                                                               'vars' => '',
42186                                                               'line' => 593
42187                                                             }, 'Parse::RecDescent::Rule' ),
42188                               '_alternation_1_of_production_1_of_rule_dereference_operation' => bless( {
42189                                                                                                          'impcount' => 0,
42190                                                                                                          'calls' => [
42191                                                                                                                       'expression'
42192                                                                                                                     ],
42193                                                                                                          'changed' => 0,
42194                                                                                                          'opcount' => 0,
42195                                                                                                          'prods' => [
42196                                                                                                                       bless( {
42197                                                                                                                                'number' => '0',
42198                                                                                                                                'strcount' => 2,
42199                                                                                                                                'dircount' => 0,
42200                                                                                                                                'uncommit' => undef,
42201                                                                                                                                'error' => undef,
42202                                                                                                                                'patcount' => 0,
42203                                                                                                                                'actcount' => 0,
42204                                                                                                                                'items' => [
42205                                                                                                                                             bless( {
42206                                                                                                                                                      'pattern' => '(',
42207                                                                                                                                                      'hashname' => '__STRING1__',
42208                                                                                                                                                      'description' => '\'(\'',
42209                                                                                                                                                      'lookahead' => 0,
42210                                                                                                                                                      'line' => 628
42211                                                                                                                                                    }, 'Parse::RecDescent::Literal' ),
42212                                                                                                                                             bless( {
42213                                                                                                                                                      'subrule' => 'expression',
42214                                                                                                                                                      'expected' => undef,
42215                                                                                                                                                      'min' => 1,
42216                                                                                                                                                      'argcode' => undef,
42217                                                                                                                                                      'max' => 100000000,
42218                                                                                                                                                      'matchrule' => 0,
42219                                                                                                                                                      'repspec' => 's',
42220                                                                                                                                                      'lookahead' => 0,
42221                                                                                                                                                      'line' => 628
42222                                                                                                                                                    }, 'Parse::RecDescent::Repetition' ),
42223                                                                                                                                             bless( {
42224                                                                                                                                                      'pattern' => ')',
42225                                                                                                                                                      'hashname' => '__STRING2__',
42226                                                                                                                                                      'description' => '\')\'',
42227                                                                                                                                                      'lookahead' => 0,
42228                                                                                                                                                      'line' => 628
42229                                                                                                                                                    }, 'Parse::RecDescent::Literal' )
42230                                                                                                                                           ],
42231                                                                                                                                'line' => undef
42232                                                                                                                              }, 'Parse::RecDescent::Production' )
42233                                                                                                                     ],
42234                                                                                                          'name' => '_alternation_1_of_production_1_of_rule_dereference_operation',
42235                                                                                                          'vars' => '',
42236                                                                                                          'line' => 628
42237                                                                                                        }, 'Parse::RecDescent::Rule' ),
42238                               '_alternation_1_of_production_1_of_rule_searched_when_clause' => bless( {
42239                                                                                                         'impcount' => 1,
42240                                                                                                         'calls' => [
42241                                                                                                                      'search_condition',
42242                                                                                                                      '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause'
42243                                                                                                                    ],
42244                                                                                                         'changed' => 0,
42245                                                                                                         'opcount' => 0,
42246                                                                                                         'prods' => [
42247                                                                                                                      bless( {
42248                                                                                                                               'number' => '0',
42249                                                                                                                               'strcount' => 0,
42250                                                                                                                               'dircount' => 0,
42251                                                                                                                               'uncommit' => undef,
42252                                                                                                                               'error' => undef,
42253                                                                                                                               'patcount' => 2,
42254                                                                                                                               'actcount' => 0,
42255                                                                                                                               'items' => [
42256                                                                                                                                            bless( {
42257                                                                                                                                                     'pattern' => 'WHEN',
42258                                                                                                                                                     'hashname' => '__PATTERN1__',
42259                                                                                                                                                     'description' => '/WHEN/i',
42260                                                                                                                                                     'lookahead' => 0,
42261                                                                                                                                                     'rdelim' => '/',
42262                                                                                                                                                     'line' => 624,
42263                                                                                                                                                     'mod' => 'i',
42264                                                                                                                                                     'ldelim' => '/'
42265                                                                                                                                                   }, 'Parse::RecDescent::Token' ),
42266                                                                                                                                            bless( {
42267                                                                                                                                                     'subrule' => 'search_condition',
42268                                                                                                                                                     'matchrule' => 0,
42269                                                                                                                                                     'implicit' => undef,
42270                                                                                                                                                     'argcode' => undef,
42271                                                                                                                                                     'lookahead' => 0,
42272                                                                                                                                                     'line' => 624
42273                                                                                                                                                   }, 'Parse::RecDescent::Subrule' ),
42274                                                                                                                                            bless( {
42275                                                                                                                                                     'pattern' => 'THEN',
42276                                                                                                                                                     'hashname' => '__PATTERN2__',
42277                                                                                                                                                     'description' => '/THEN/i',
42278                                                                                                                                                     'lookahead' => 0,
42279                                                                                                                                                     'rdelim' => '/',
42280                                                                                                                                                     'line' => 624,
42281                                                                                                                                                     'mod' => 'i',
42282                                                                                                                                                     'ldelim' => '/'
42283                                                                                                                                                   }, 'Parse::RecDescent::Token' ),
42284                                                                                                                                            bless( {
42285                                                                                                                                                     'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
42286                                                                                                                                                     'matchrule' => 0,
42287                                                                                                                                                     'implicit' => 'result_expression, or /NULL/i',
42288                                                                                                                                                     'argcode' => undef,
42289                                                                                                                                                     'lookahead' => 0,
42290                                                                                                                                                     'line' => 627
42291                                                                                                                                                   }, 'Parse::RecDescent::Subrule' )
42292                                                                                                                                          ],
42293                                                                                                                               'line' => undef
42294                                                                                                                             }, 'Parse::RecDescent::Production' )
42295                                                                                                                    ],
42296                                                                                                         'name' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
42297                                                                                                         'vars' => '',
42298                                                                                                         'line' => 624
42299                                                                                                       }, 'Parse::RecDescent::Rule' ),
42300                               'group_bound2' => bless( {
42301                                                          'impcount' => 0,
42302                                                          'calls' => [
42303                                                                       'unsigned_constant'
42304                                                                     ],
42305                                                          'changed' => 0,
42306                                                          'opcount' => 0,
42307                                                          'prods' => [
42308                                                                       bless( {
42309                                                                                'number' => '0',
42310                                                                                'strcount' => 0,
42311                                                                                'dircount' => 0,
42312                                                                                'uncommit' => undef,
42313                                                                                'error' => undef,
42314                                                                                'patcount' => 1,
42315                                                                                'actcount' => 0,
42316                                                                                'items' => [
42317                                                                                             bless( {
42318                                                                                                      'pattern' => 'UNBOUNDED\\s+PRECEDING',
42319                                                                                                      'hashname' => '__PATTERN1__',
42320                                                                                                      'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
42321                                                                                                      'lookahead' => 0,
42322                                                                                                      'rdelim' => '/',
42323                                                                                                      'line' => 585,
42324                                                                                                      'mod' => 'i',
42325                                                                                                      'ldelim' => '/'
42326                                                                                                    }, 'Parse::RecDescent::Token' )
42327                                                                                           ],
42328                                                                                'line' => undef
42329                                                                              }, 'Parse::RecDescent::Production' ),
42330                                                                       bless( {
42331                                                                                'number' => '1',
42332                                                                                'strcount' => 0,
42333                                                                                'dircount' => 0,
42334                                                                                'uncommit' => undef,
42335                                                                                'error' => undef,
42336                                                                                'patcount' => 1,
42337                                                                                'actcount' => 0,
42338                                                                                'items' => [
42339                                                                                             bless( {
42340                                                                                                      'subrule' => 'unsigned_constant',
42341                                                                                                      'matchrule' => 0,
42342                                                                                                      'implicit' => undef,
42343                                                                                                      'argcode' => undef,
42344                                                                                                      'lookahead' => 0,
42345                                                                                                      'line' => 586
42346                                                                                                    }, 'Parse::RecDescent::Subrule' ),
42347                                                                                             bless( {
42348                                                                                                      'pattern' => 'PRECEDING',
42349                                                                                                      'hashname' => '__PATTERN1__',
42350                                                                                                      'description' => '/PRECEDING/i',
42351                                                                                                      'lookahead' => 0,
42352                                                                                                      'rdelim' => '/',
42353                                                                                                      'line' => 586,
42354                                                                                                      'mod' => 'i',
42355                                                                                                      'ldelim' => '/'
42356                                                                                                    }, 'Parse::RecDescent::Token' )
42357                                                                                           ],
42358                                                                                'line' => 586
42359                                                                              }, 'Parse::RecDescent::Production' ),
42360                                                                       bless( {
42361                                                                                'number' => '2',
42362                                                                                'strcount' => 0,
42363                                                                                'dircount' => 0,
42364                                                                                'uncommit' => undef,
42365                                                                                'error' => undef,
42366                                                                                'patcount' => 1,
42367                                                                                'actcount' => 0,
42368                                                                                'items' => [
42369                                                                                             bless( {
42370                                                                                                      'subrule' => 'unsigned_constant',
42371                                                                                                      'matchrule' => 0,
42372                                                                                                      'implicit' => undef,
42373                                                                                                      'argcode' => undef,
42374                                                                                                      'lookahead' => 0,
42375                                                                                                      'line' => 587
42376                                                                                                    }, 'Parse::RecDescent::Subrule' ),
42377                                                                                             bless( {
42378                                                                                                      'pattern' => 'FOLLOWING',
42379                                                                                                      'hashname' => '__PATTERN1__',
42380                                                                                                      'description' => '/FOLLOWING/i',
42381                                                                                                      'lookahead' => 0,
42382                                                                                                      'rdelim' => '/',
42383                                                                                                      'line' => 587,
42384                                                                                                      'mod' => 'i',
42385                                                                                                      'ldelim' => '/'
42386                                                                                                    }, 'Parse::RecDescent::Token' )
42387                                                                                           ],
42388                                                                                'line' => 587
42389                                                                              }, 'Parse::RecDescent::Production' ),
42390                                                                       bless( {
42391                                                                                'number' => '3',
42392                                                                                'strcount' => 0,
42393                                                                                'dircount' => 0,
42394                                                                                'uncommit' => undef,
42395                                                                                'error' => undef,
42396                                                                                'patcount' => 1,
42397                                                                                'actcount' => 0,
42398                                                                                'items' => [
42399                                                                                             bless( {
42400                                                                                                      'pattern' => 'CURRENT\\s+ROW',
42401                                                                                                      'hashname' => '__PATTERN1__',
42402                                                                                                      'description' => '/CURRENT\\\\s+ROW/i',
42403                                                                                                      'lookahead' => 0,
42404                                                                                                      'rdelim' => '/',
42405                                                                                                      'line' => 588,
42406                                                                                                      'mod' => 'i',
42407                                                                                                      'ldelim' => '/'
42408                                                                                                    }, 'Parse::RecDescent::Token' )
42409                                                                                           ],
42410                                                                                'line' => 588
42411                                                                              }, 'Parse::RecDescent::Production' )
42412                                                                     ],
42413                                                          'name' => 'group_bound2',
42414                                                          'vars' => '',
42415                                                          'line' => 585
42416                                                        }, 'Parse::RecDescent::Rule' ),
42417                               'searched_when_clause' => bless( {
42418                                                                  'impcount' => 1,
42419                                                                  'calls' => [
42420                                                                               '_alternation_1_of_production_1_of_rule_searched_when_clause'
42421                                                                             ],
42422                                                                  'changed' => 0,
42423                                                                  'opcount' => 0,
42424                                                                  'prods' => [
42425                                                                               bless( {
42426                                                                                        'number' => '0',
42427                                                                                        'strcount' => 0,
42428                                                                                        'dircount' => 0,
42429                                                                                        'uncommit' => undef,
42430                                                                                        'error' => undef,
42431                                                                                        'patcount' => 0,
42432                                                                                        'actcount' => 0,
42433                                                                                        'items' => [
42434                                                                                                     bless( {
42435                                                                                                              'subrule' => '_alternation_1_of_production_1_of_rule_searched_when_clause',
42436                                                                                                              'expected' => '/WHEN/i',
42437                                                                                                              'min' => 1,
42438                                                                                                              'argcode' => undef,
42439                                                                                                              'max' => 100000000,
42440                                                                                                              'matchrule' => 0,
42441                                                                                                              'repspec' => 's',
42442                                                                                                              'lookahead' => 0,
42443                                                                                                              'line' => 507
42444                                                                                                            }, 'Parse::RecDescent::Repetition' )
42445                                                                                                   ],
42446                                                                                        'line' => undef
42447                                                                                      }, 'Parse::RecDescent::Production' )
42448                                                                             ],
42449                                                                  'name' => 'searched_when_clause',
42450                                                                  'vars' => '',
42451                                                                  'line' => 503
42452                                                                }, 'Parse::RecDescent::Rule' ),
42453                               'basic_p' => bless( {
42454                                                     'impcount' => 0,
42455                                                     'calls' => [
42456                                                                  'expression'
42457                                                                ],
42458                                                     'changed' => 0,
42459                                                     'opcount' => 0,
42460                                                     'prods' => [
42461                                                                  bless( {
42462                                                                           'number' => '0',
42463                                                                           'strcount' => 0,
42464                                                                           'dircount' => 0,
42465                                                                           'uncommit' => undef,
42466                                                                           'error' => undef,
42467                                                                           'patcount' => 1,
42468                                                                           'actcount' => 0,
42469                                                                           'items' => [
42470                                                                                        bless( {
42471                                                                                                 'subrule' => 'expression',
42472                                                                                                 'matchrule' => 0,
42473                                                                                                 'implicit' => undef,
42474                                                                                                 'argcode' => undef,
42475                                                                                                 'lookahead' => 0,
42476                                                                                                 'line' => 624
42477                                                                                               }, 'Parse::RecDescent::Subrule' ),
42478                                                                                        bless( {
42479                                                                                                 'pattern' => '(=|<>|<|>|<=|=>|\\^=|\\^<|\\^>|\\!=)',
42480                                                                                                 'hashname' => '__PATTERN1__',
42481                                                                                                 'description' => '/(=|<>|<|>|<=|=>|\\\\^=|\\\\^<|\\\\^>|\\\\!=)/',
42482                                                                                                 'lookahead' => 0,
42483                                                                                                 'rdelim' => '/',
42484                                                                                                 'line' => 624,
42485                                                                                                 'mod' => '',
42486                                                                                                 'ldelim' => '/'
42487                                                                                               }, 'Parse::RecDescent::Token' ),
42488                                                                                        bless( {
42489                                                                                                 'subrule' => 'expression',
42490                                                                                                 'matchrule' => 0,
42491                                                                                                 'implicit' => undef,
42492                                                                                                 'argcode' => undef,
42493                                                                                                 'lookahead' => 0,
42494                                                                                                 'line' => 624
42495                                                                                               }, 'Parse::RecDescent::Subrule' )
42496                                                                                      ],
42497                                                                           'line' => undef
42498                                                                         }, 'Parse::RecDescent::Production' )
42499                                                                ],
42500                                                     'name' => 'basic_p',
42501                                                     'vars' => '',
42502                                                     'line' => 624
42503                                                   }, 'Parse::RecDescent::Rule' ),
42504                               'asc_option' => bless( {
42505                                                        'impcount' => 1,
42506                                                        'calls' => [
42507                                                                     '_alternation_1_of_production_1_of_rule_asc_option'
42508                                                                   ],
42509                                                        'changed' => 0,
42510                                                        'opcount' => 0,
42511                                                        'prods' => [
42512                                                                     bless( {
42513                                                                              'number' => '0',
42514                                                                              'strcount' => 0,
42515                                                                              'dircount' => 0,
42516                                                                              'uncommit' => undef,
42517                                                                              'error' => undef,
42518                                                                              'patcount' => 1,
42519                                                                              'actcount' => 0,
42520                                                                              'items' => [
42521                                                                                           bless( {
42522                                                                                                    'pattern' => 'ASC',
42523                                                                                                    'hashname' => '__PATTERN1__',
42524                                                                                                    'description' => '/ASC/i',
42525                                                                                                    'lookahead' => 0,
42526                                                                                                    'rdelim' => '/',
42527                                                                                                    'line' => 562,
42528                                                                                                    'mod' => 'i',
42529                                                                                                    'ldelim' => '/'
42530                                                                                                  }, 'Parse::RecDescent::Token' ),
42531                                                                                           bless( {
42532                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule_asc_option',
42533                                                                                                    'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
42534                                                                                                    'min' => 0,
42535                                                                                                    'argcode' => undef,
42536                                                                                                    'max' => 1,
42537                                                                                                    'matchrule' => 0,
42538                                                                                                    'repspec' => '?',
42539                                                                                                    'lookahead' => 0,
42540                                                                                                    'line' => 562
42541                                                                                                  }, 'Parse::RecDescent::Repetition' )
42542                                                                                         ],
42543                                                                              'line' => undef
42544                                                                            }, 'Parse::RecDescent::Production' )
42545                                                                   ],
42546                                                        'name' => 'asc_option',
42547                                                        'vars' => '',
42548                                                        'line' => 562
42549                                                      }, 'Parse::RecDescent::Rule' ),
42550                               'search_condition' => bless( {
42551                                                              'impcount' => 1,
42552                                                              'calls' => [
42553                                                                           '_alternation_1_of_production_2_of_rule_search_condition',
42554                                                                           'cond'
42555                                                                         ],
42556                                                              'changed' => 0,
42557                                                              'opcount' => 0,
42558                                                              'prods' => [
42559                                                                           bless( {
42560                                                                                    'number' => '0',
42561                                                                                    'strcount' => 0,
42562                                                                                    'dircount' => 0,
42563                                                                                    'uncommit' => undef,
42564                                                                                    'error' => undef,
42565                                                                                    'patcount' => 1,
42566                                                                                    'actcount' => 0,
42567                                                                                    'items' => [
42568                                                                                                 bless( {
42569                                                                                                          'pattern' => '[^)]+',
42570                                                                                                          'hashname' => '__PATTERN1__',
42571                                                                                                          'description' => '/[^)]+/',
42572                                                                                                          'lookahead' => 0,
42573                                                                                                          'rdelim' => '/',
42574                                                                                                          'line' => 297,
42575                                                                                                          'mod' => '',
42576                                                                                                          'ldelim' => '/'
42577                                                                                                        }, 'Parse::RecDescent::Token' )
42578                                                                                               ],
42579                                                                                    'line' => undef
42580                                                                                  }, 'Parse::RecDescent::Production' ),
42581                                                                           bless( {
42582                                                                                    'number' => '1',
42583                                                                                    'strcount' => 0,
42584                                                                                    'dircount' => 0,
42585                                                                                    'uncommit' => undef,
42586                                                                                    'error' => undef,
42587                                                                                    'patcount' => 1,
42588                                                                                    'actcount' => 0,
42589                                                                                    'items' => [
42590                                                                                                 bless( {
42591                                                                                                          'pattern' => 'NOT|',
42592                                                                                                          'hashname' => '__PATTERN1__',
42593                                                                                                          'description' => '/NOT|/i',
42594                                                                                                          'lookahead' => 0,
42595                                                                                                          'rdelim' => '/',
42596                                                                                                          'line' => 618,
42597                                                                                                          'mod' => 'i',
42598                                                                                                          'ldelim' => '/'
42599                                                                                                        }, 'Parse::RecDescent::Token' ),
42600                                                                                                 bless( {
42601                                                                                                          'subrule' => '_alternation_1_of_production_2_of_rule_search_condition',
42602                                                                                                          'matchrule' => 0,
42603                                                                                                          'implicit' => 'predicate, or \'(\'',
42604                                                                                                          'argcode' => undef,
42605                                                                                                          'lookahead' => 0,
42606                                                                                                          'line' => 618
42607                                                                                                        }, 'Parse::RecDescent::Subrule' ),
42608                                                                                                 bless( {
42609                                                                                                          'subrule' => 'cond',
42610                                                                                                          'expected' => undef,
42611                                                                                                          'min' => 0,
42612                                                                                                          'argcode' => undef,
42613                                                                                                          'max' => 100000000,
42614                                                                                                          'matchrule' => 0,
42615                                                                                                          'repspec' => 's?',
42616                                                                                                          'lookahead' => 0,
42617                                                                                                          'line' => 618
42618                                                                                                        }, 'Parse::RecDescent::Repetition' )
42619                                                                                               ],
42620                                                                                    'line' => undef
42621                                                                                  }, 'Parse::RecDescent::Production' )
42622                                                                         ],
42623                                                              'name' => 'search_condition',
42624                                                              'vars' => '',
42625                                                              'line' => 296
42626                                                            }, 'Parse::RecDescent::Rule' ),
42627                               '_alternation_1_of_production_1_of_rule_operator' => bless( {
42628                                                                                             'impcount' => 0,
42629                                                                                             'calls' => [],
42630                                                                                             'changed' => 0,
42631                                                                                             'opcount' => 0,
42632                                                                                             'prods' => [
42633                                                                                                          bless( {
42634                                                                                                                   'number' => '0',
42635                                                                                                                   'strcount' => 0,
42636                                                                                                                   'dircount' => 0,
42637                                                                                                                   'uncommit' => undef,
42638                                                                                                                   'error' => undef,
42639                                                                                                                   'patcount' => 1,
42640                                                                                                                   'actcount' => 0,
42641                                                                                                                   'items' => [
42642                                                                                                                                bless( {
42643                                                                                                                                         'pattern' => 'CONCAT',
42644                                                                                                                                         'hashname' => '__PATTERN1__',
42645                                                                                                                                         'description' => '/CONCAT/i',
42646                                                                                                                                         'lookahead' => 0,
42647                                                                                                                                         'rdelim' => '/',
42648                                                                                                                                         'line' => 628,
42649                                                                                                                                         'mod' => 'i',
42650                                                                                                                                         'ldelim' => '/'
42651                                                                                                                                       }, 'Parse::RecDescent::Token' )
42652                                                                                                                              ],
42653                                                                                                                   'line' => undef
42654                                                                                                                 }, 'Parse::RecDescent::Production' ),
42655                                                                                                          bless( {
42656                                                                                                                   'number' => '1',
42657                                                                                                                   'strcount' => 1,
42658                                                                                                                   'dircount' => 0,
42659                                                                                                                   'uncommit' => undef,
42660                                                                                                                   'error' => undef,
42661                                                                                                                   'patcount' => 0,
42662                                                                                                                   'actcount' => 0,
42663                                                                                                                   'items' => [
42664                                                                                                                                bless( {
42665                                                                                                                                         'pattern' => '||',
42666                                                                                                                                         'hashname' => '__STRING1__',
42667                                                                                                                                         'description' => '\'||\'',
42668                                                                                                                                         'lookahead' => 0,
42669                                                                                                                                         'line' => 628
42670                                                                                                                                       }, 'Parse::RecDescent::Literal' )
42671                                                                                                                              ],
42672                                                                                                                   'line' => 628
42673                                                                                                                 }, 'Parse::RecDescent::Production' )
42674                                                                                                        ],
42675                                                                                             'name' => '_alternation_1_of_production_1_of_rule_operator',
42676                                                                                             'vars' => '',
42677                                                                                             'line' => 628
42678                                                                                           }, 'Parse::RecDescent::Rule' ),
42679                               'simple_when_clause' => bless( {
42680                                                                'impcount' => 1,
42681                                                                'calls' => [
42682                                                                             'expression',
42683                                                                             '_alternation_1_of_production_1_of_rule_simple_when_clause'
42684                                                                           ],
42685                                                                'changed' => 0,
42686                                                                'opcount' => 0,
42687                                                                'prods' => [
42688                                                                             bless( {
42689                                                                                      'number' => '0',
42690                                                                                      'strcount' => 0,
42691                                                                                      'dircount' => 0,
42692                                                                                      'uncommit' => undef,
42693                                                                                      'error' => undef,
42694                                                                                      'patcount' => 0,
42695                                                                                      'actcount' => 0,
42696                                                                                      'items' => [
42697                                                                                                   bless( {
42698                                                                                                            'subrule' => 'expression',
42699                                                                                                            'matchrule' => 0,
42700                                                                                                            'implicit' => undef,
42701                                                                                                            'argcode' => undef,
42702                                                                                                            'lookahead' => 0,
42703                                                                                                            'line' => 509
42704                                                                                                          }, 'Parse::RecDescent::Subrule' ),
42705                                                                                                   bless( {
42706                                                                                                            'subrule' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
42707                                                                                                            'expected' => '/WHEN/i',
42708                                                                                                            'min' => 1,
42709                                                                                                            'argcode' => undef,
42710                                                                                                            'max' => 100000000,
42711                                                                                                            'matchrule' => 0,
42712                                                                                                            'repspec' => 's',
42713                                                                                                            'lookahead' => 0,
42714                                                                                                            'line' => 513
42715                                                                                                          }, 'Parse::RecDescent::Repetition' )
42716                                                                                                 ],
42717                                                                                      'line' => undef
42718                                                                                    }, 'Parse::RecDescent::Production' )
42719                                                                           ],
42720                                                                'name' => 'simple_when_clause',
42721                                                                'vars' => '',
42722                                                                'line' => 509
42723                                                              }, 'Parse::RecDescent::Rule' ),
42724                               'INNER' => bless( {
42725                                                   'impcount' => 0,
42726                                                   'calls' => [],
42727                                                   'changed' => 0,
42728                                                   'opcount' => 0,
42729                                                   'prods' => [
42730                                                                bless( {
42731                                                                         'number' => '0',
42732                                                                         'strcount' => 0,
42733                                                                         'dircount' => 0,
42734                                                                         'uncommit' => undef,
42735                                                                         'error' => undef,
42736                                                                         'patcount' => 1,
42737                                                                         'actcount' => 0,
42738                                                                         'items' => [
42739                                                                                      bless( {
42740                                                                                               'pattern' => 'inner',
42741                                                                                               'hashname' => '__PATTERN1__',
42742                                                                                               'description' => '/inner/i',
42743                                                                                               'lookahead' => 0,
42744                                                                                               'rdelim' => '/',
42745                                                                                               'line' => 107,
42746                                                                                               'mod' => 'i',
42747                                                                                               'ldelim' => '/'
42748                                                                                             }, 'Parse::RecDescent::Token' )
42749                                                                                    ],
42750                                                                         'line' => undef
42751                                                                       }, 'Parse::RecDescent::Production' )
42752                                                              ],
42753                                                   'name' => 'INNER',
42754                                                   'vars' => '',
42755                                                   'line' => 107
42756                                                 }, 'Parse::RecDescent::Rule' ),
42757                               'eofile' => bless( {
42758                                                    'impcount' => 0,
42759                                                    'calls' => [],
42760                                                    'changed' => 0,
42761                                                    'opcount' => 0,
42762                                                    'prods' => [
42763                                                                 bless( {
42764                                                                          'number' => '0',
42765                                                                          'strcount' => 0,
42766                                                                          'dircount' => 0,
42767                                                                          'uncommit' => undef,
42768                                                                          'error' => undef,
42769                                                                          'patcount' => 1,
42770                                                                          'actcount' => 0,
42771                                                                          'items' => [
42772                                                                                       bless( {
42773                                                                                                'pattern' => '^\\Z',
42774                                                                                                'hashname' => '__PATTERN1__',
42775                                                                                                'description' => '/^\\\\Z/',
42776                                                                                                'lookahead' => 0,
42777                                                                                                'rdelim' => '/',
42778                                                                                                'line' => 20,
42779                                                                                                'mod' => '',
42780                                                                                                'ldelim' => '/'
42781                                                                                              }, 'Parse::RecDescent::Token' )
42782                                                                                     ],
42783                                                                          'line' => undef
42784                                                                        }, 'Parse::RecDescent::Production' )
42785                                                               ],
42786                                                    'name' => 'eofile',
42787                                                    'vars' => '',
42788                                                    'line' => 20
42789                                                  }, 'Parse::RecDescent::Rule' ),
42790                               'cond' => bless( {
42791                                                  'impcount' => 2,
42792                                                  'calls' => [
42793                                                               '_alternation_1_of_production_1_of_rule_cond',
42794                                                               '_alternation_2_of_production_1_of_rule_cond'
42795                                                             ],
42796                                                  'changed' => 0,
42797                                                  'opcount' => 0,
42798                                                  'prods' => [
42799                                                               bless( {
42800                                                                        'number' => '0',
42801                                                                        'strcount' => 0,
42802                                                                        'dircount' => 0,
42803                                                                        'uncommit' => undef,
42804                                                                        'error' => undef,
42805                                                                        'patcount' => 1,
42806                                                                        'actcount' => 0,
42807                                                                        'items' => [
42808                                                                                     bless( {
42809                                                                                              'subrule' => '_alternation_1_of_production_1_of_rule_cond',
42810                                                                                              'matchrule' => 0,
42811                                                                                              'implicit' => '/AND/i, or /OR/i',
42812                                                                                              'argcode' => undef,
42813                                                                                              'lookahead' => 0,
42814                                                                                              'line' => 620
42815                                                                                            }, 'Parse::RecDescent::Subrule' ),
42816                                                                                     bless( {
42817                                                                                              'pattern' => 'NOT|',
42818                                                                                              'hashname' => '__PATTERN1__',
42819                                                                                              'description' => '/NOT|/i',
42820                                                                                              'lookahead' => 0,
42821                                                                                              'rdelim' => '/',
42822                                                                                              'line' => 620,
42823                                                                                              'mod' => 'i',
42824                                                                                              'ldelim' => '/'
42825                                                                                            }, 'Parse::RecDescent::Token' ),
42826                                                                                     bless( {
42827                                                                                              'subrule' => '_alternation_2_of_production_1_of_rule_cond',
42828                                                                                              'matchrule' => 0,
42829                                                                                              'implicit' => 'predicate, or \'(\'',
42830                                                                                              'argcode' => undef,
42831                                                                                              'lookahead' => 0,
42832                                                                                              'line' => 620
42833                                                                                            }, 'Parse::RecDescent::Subrule' )
42834                                                                                   ],
42835                                                                        'line' => undef
42836                                                                      }, 'Parse::RecDescent::Production' )
42837                                                             ],
42838                                                  'name' => 'cond',
42839                                                  'vars' => '',
42840                                                  'line' => 620
42841                                                }, 'Parse::RecDescent::Rule' ),
42842                               'ld_type' => bless( {
42843                                                     'impcount' => 0,
42844                                                     'calls' => [
42845                                                                  'function',
42846                                                                  'expression',
42847                                                                  'constant',
42848                                                                  'column_name',
42849                                                                  'host_variable'
42850                                                                ],
42851                                                     'changed' => 0,
42852                                                     'opcount' => 0,
42853                                                     'prods' => [
42854                                                                  bless( {
42855                                                                           'number' => '0',
42856                                                                           'strcount' => 0,
42857                                                                           'dircount' => 0,
42858                                                                           'uncommit' => undef,
42859                                                                           'error' => undef,
42860                                                                           'patcount' => 0,
42861                                                                           'actcount' => 0,
42862                                                                           'items' => [
42863                                                                                        bless( {
42864                                                                                                 'subrule' => 'function',
42865                                                                                                 'matchrule' => 0,
42866                                                                                                 'implicit' => undef,
42867                                                                                                 'argcode' => undef,
42868                                                                                                 'lookahead' => 0,
42869                                                                                                 'line' => 482
42870                                                                                               }, 'Parse::RecDescent::Subrule' )
42871                                                                                      ],
42872                                                                           'line' => undef
42873                                                                         }, 'Parse::RecDescent::Production' ),
42874                                                                  bless( {
42875                                                                           'number' => '1',
42876                                                                           'strcount' => 2,
42877                                                                           'dircount' => 0,
42878                                                                           'uncommit' => undef,
42879                                                                           'error' => undef,
42880                                                                           'patcount' => 0,
42881                                                                           'actcount' => 0,
42882                                                                           'items' => [
42883                                                                                        bless( {
42884                                                                                                 'pattern' => '(',
42885                                                                                                 'hashname' => '__STRING1__',
42886                                                                                                 'description' => '\'(\'',
42887                                                                                                 'lookahead' => 0,
42888                                                                                                 'line' => 483
42889                                                                                               }, 'Parse::RecDescent::Literal' ),
42890                                                                                        bless( {
42891                                                                                                 'subrule' => 'expression',
42892                                                                                                 'matchrule' => 0,
42893                                                                                                 'implicit' => undef,
42894                                                                                                 'argcode' => undef,
42895                                                                                                 'lookahead' => 0,
42896                                                                                                 'line' => 483
42897                                                                                               }, 'Parse::RecDescent::Subrule' ),
42898                                                                                        bless( {
42899                                                                                                 'pattern' => ')',
42900                                                                                                 'hashname' => '__STRING2__',
42901                                                                                                 'description' => '\')\'',
42902                                                                                                 'lookahead' => 0,
42903                                                                                                 'line' => 483
42904                                                                                               }, 'Parse::RecDescent::Literal' )
42905                                                                                      ],
42906                                                                           'line' => 483
42907                                                                         }, 'Parse::RecDescent::Production' ),
42908                                                                  bless( {
42909                                                                           'number' => '2',
42910                                                                           'strcount' => 0,
42911                                                                           'dircount' => 0,
42912                                                                           'uncommit' => undef,
42913                                                                           'error' => undef,
42914                                                                           'patcount' => 0,
42915                                                                           'actcount' => 0,
42916                                                                           'items' => [
42917                                                                                        bless( {
42918                                                                                                 'subrule' => 'constant',
42919                                                                                                 'matchrule' => 0,
42920                                                                                                 'implicit' => undef,
42921                                                                                                 'argcode' => undef,
42922                                                                                                 'lookahead' => 0,
42923                                                                                                 'line' => 484
42924                                                                                               }, 'Parse::RecDescent::Subrule' )
42925                                                                                      ],
42926                                                                           'line' => 484
42927                                                                         }, 'Parse::RecDescent::Production' ),
42928                                                                  bless( {
42929                                                                           'number' => '3',
42930                                                                           'strcount' => 0,
42931                                                                           'dircount' => 0,
42932                                                                           'uncommit' => undef,
42933                                                                           'error' => undef,
42934                                                                           'patcount' => 0,
42935                                                                           'actcount' => 0,
42936                                                                           'items' => [
42937                                                                                        bless( {
42938                                                                                                 'subrule' => 'column_name',
42939                                                                                                 'matchrule' => 0,
42940                                                                                                 'implicit' => undef,
42941                                                                                                 'argcode' => undef,
42942                                                                                                 'lookahead' => 0,
42943                                                                                                 'line' => 485
42944                                                                                               }, 'Parse::RecDescent::Subrule' )
42945                                                                                      ],
42946                                                                           'line' => 485
42947                                                                         }, 'Parse::RecDescent::Production' ),
42948                                                                  bless( {
42949                                                                           'number' => '4',
42950                                                                           'strcount' => 0,
42951                                                                           'dircount' => 0,
42952                                                                           'uncommit' => undef,
42953                                                                           'error' => undef,
42954                                                                           'patcount' => 0,
42955                                                                           'actcount' => 0,
42956                                                                           'items' => [
42957                                                                                        bless( {
42958                                                                                                 'subrule' => 'host_variable',
42959                                                                                                 'matchrule' => 0,
42960                                                                                                 'implicit' => undef,
42961                                                                                                 'argcode' => undef,
42962                                                                                                 'lookahead' => 0,
42963                                                                                                 'line' => 486
42964                                                                                               }, 'Parse::RecDescent::Subrule' )
42965                                                                                      ],
42966                                                                           'line' => 486
42967                                                                         }, 'Parse::RecDescent::Production' )
42968                                                                ],
42969                                                     'name' => 'ld_type',
42970                                                     'vars' => '',
42971                                                     'line' => 482
42972                                                   }, 'Parse::RecDescent::Rule' ),
42973                               'RIGHT' => bless( {
42974                                                   'impcount' => 0,
42975                                                   'calls' => [],
42976                                                   'changed' => 0,
42977                                                   'opcount' => 0,
42978                                                   'prods' => [
42979                                                                bless( {
42980                                                                         'number' => '0',
42981                                                                         'strcount' => 0,
42982                                                                         'dircount' => 0,
42983                                                                         'uncommit' => undef,
42984                                                                         'error' => undef,
42985                                                                         'patcount' => 1,
42986                                                                         'actcount' => 0,
42987                                                                         'items' => [
42988                                                                                      bless( {
42989                                                                                               'pattern' => 'right',
42990                                                                                               'hashname' => '__PATTERN1__',
42991                                                                                               'description' => '/right/i',
42992                                                                                               'lookahead' => 0,
42993                                                                                               'rdelim' => '/',
42994                                                                                               'line' => 111,
42995                                                                                               'mod' => 'i',
42996                                                                                               'ldelim' => '/'
42997                                                                                             }, 'Parse::RecDescent::Token' )
42998                                                                                    ],
42999                                                                         'line' => undef
43000                                                                       }, 'Parse::RecDescent::Production' )
43001                                                              ],
43002                                                   'name' => 'RIGHT',
43003                                                   'vars' => '',
43004                                                   'line' => 111
43005                                                 }, 'Parse::RecDescent::Rule' ),
43006                               '_alternation_1_of_production_1_of_rule_method_invocation' => bless( {
43007                                                                                                      'impcount' => 0,
43008                                                                                                      'calls' => [
43009                                                                                                                   'expression'
43010                                                                                                                 ],
43011                                                                                                      'changed' => 0,
43012                                                                                                      'opcount' => 0,
43013                                                                                                      'prods' => [
43014                                                                                                                   bless( {
43015                                                                                                                            'number' => '0',
43016                                                                                                                            'strcount' => 2,
43017                                                                                                                            'dircount' => 0,
43018                                                                                                                            'uncommit' => undef,
43019                                                                                                                            'error' => undef,
43020                                                                                                                            'patcount' => 0,
43021                                                                                                                            'actcount' => 0,
43022                                                                                                                            'items' => [
43023                                                                                                                                         bless( {
43024                                                                                                                                                  'pattern' => '(',
43025                                                                                                                                                  'hashname' => '__STRING1__',
43026                                                                                                                                                  'description' => '\'(\'',
43027                                                                                                                                                  'lookahead' => 0,
43028                                                                                                                                                  'line' => 626
43029                                                                                                                                                }, 'Parse::RecDescent::Literal' ),
43030                                                                                                                                         bless( {
43031                                                                                                                                                  'subrule' => 'expression',
43032                                                                                                                                                  'expected' => undef,
43033                                                                                                                                                  'min' => 1,
43034                                                                                                                                                  'argcode' => undef,
43035                                                                                                                                                  'max' => 100000000,
43036                                                                                                                                                  'matchrule' => 0,
43037                                                                                                                                                  'repspec' => 's',
43038                                                                                                                                                  'lookahead' => 0,
43039                                                                                                                                                  'line' => 626
43040                                                                                                                                                }, 'Parse::RecDescent::Repetition' ),
43041                                                                                                                                         bless( {
43042                                                                                                                                                  'pattern' => ')',
43043                                                                                                                                                  'hashname' => '__STRING2__',
43044                                                                                                                                                  'description' => '\')\'',
43045                                                                                                                                                  'lookahead' => 0,
43046                                                                                                                                                  'line' => 626
43047                                                                                                                                                }, 'Parse::RecDescent::Literal' )
43048                                                                                                                                       ],
43049                                                                                                                            'line' => undef
43050                                                                                                                          }, 'Parse::RecDescent::Production' )
43051                                                                                                                 ],
43052                                                                                                      'name' => '_alternation_1_of_production_1_of_rule_method_invocation',
43053                                                                                                      'vars' => '',
43054                                                                                                      'line' => 626
43055                                                                                                    }, 'Parse::RecDescent::Rule' ),
43056                               'LEFT' => bless( {
43057                                                  'impcount' => 0,
43058                                                  'calls' => [],
43059                                                  'changed' => 0,
43060                                                  'opcount' => 0,
43061                                                  'prods' => [
43062                                                               bless( {
43063                                                                        'number' => '0',
43064                                                                        'strcount' => 0,
43065                                                                        'dircount' => 0,
43066                                                                        'uncommit' => undef,
43067                                                                        'error' => undef,
43068                                                                        'patcount' => 1,
43069                                                                        'actcount' => 0,
43070                                                                        'items' => [
43071                                                                                     bless( {
43072                                                                                              'pattern' => 'left',
43073                                                                                              'hashname' => '__PATTERN1__',
43074                                                                                              'description' => '/left/i',
43075                                                                                              'lookahead' => 0,
43076                                                                                              'rdelim' => '/',
43077                                                                                              'line' => 109,
43078                                                                                              'mod' => 'i',
43079                                                                                              'ldelim' => '/'
43080                                                                                            }, 'Parse::RecDescent::Token' )
43081                                                                                   ],
43082                                                                        'line' => undef
43083                                                                      }, 'Parse::RecDescent::Production' )
43084                                                             ],
43085                                                  'name' => 'LEFT',
43086                                                  'vars' => '',
43087                                                  'line' => 109
43088                                                }, 'Parse::RecDescent::Rule' ),
43089                               'table_name' => bless( {
43090                                                        'impcount' => 0,
43091                                                        'calls' => [
43092                                                                     'SCHEMA',
43093                                                                     'NAME'
43094                                                                   ],
43095                                                        'changed' => 0,
43096                                                        'opcount' => 0,
43097                                                        'prods' => [
43098                                                                     bless( {
43099                                                                              'number' => '0',
43100                                                                              'strcount' => 1,
43101                                                                              'dircount' => 0,
43102                                                                              'uncommit' => undef,
43103                                                                              'error' => undef,
43104                                                                              'patcount' => 0,
43105                                                                              'actcount' => 1,
43106                                                                              'items' => [
43107                                                                                           bless( {
43108                                                                                                    'subrule' => 'SCHEMA',
43109                                                                                                    'matchrule' => 0,
43110                                                                                                    'implicit' => undef,
43111                                                                                                    'argcode' => undef,
43112                                                                                                    'lookahead' => 0,
43113                                                                                                    'line' => 124
43114                                                                                                  }, 'Parse::RecDescent::Subrule' ),
43115                                                                                           bless( {
43116                                                                                                    'pattern' => '.',
43117                                                                                                    'hashname' => '__STRING1__',
43118                                                                                                    'description' => '\'.\'',
43119                                                                                                    'lookahead' => 0,
43120                                                                                                    'line' => 124
43121                                                                                                  }, 'Parse::RecDescent::Literal' ),
43122                                                                                           bless( {
43123                                                                                                    'subrule' => 'NAME',
43124                                                                                                    'matchrule' => 0,
43125                                                                                                    'implicit' => undef,
43126                                                                                                    'argcode' => undef,
43127                                                                                                    'lookahead' => 0,
43128                                                                                                    'line' => 124
43129                                                                                                  }, 'Parse::RecDescent::Subrule' ),
43130                                                                                           bless( {
43131                                                                                                    'hashname' => '__ACTION1__',
43132                                                                                                    'lookahead' => 0,
43133                                                                                                    'line' => 125,
43134                                                                                                    'code' => '{ $return = { schema => $item[1], name => $item[3] } }'
43135                                                                                                  }, 'Parse::RecDescent::Action' )
43136                                                                                         ],
43137                                                                              'line' => undef
43138                                                                            }, 'Parse::RecDescent::Production' ),
43139                                                                     bless( {
43140                                                                              'number' => '1',
43141                                                                              'strcount' => 0,
43142                                                                              'dircount' => 0,
43143                                                                              'uncommit' => undef,
43144                                                                              'error' => undef,
43145                                                                              'patcount' => 0,
43146                                                                              'actcount' => 1,
43147                                                                              'items' => [
43148                                                                                           bless( {
43149                                                                                                    'subrule' => 'NAME',
43150                                                                                                    'matchrule' => 0,
43151                                                                                                    'implicit' => undef,
43152                                                                                                    'argcode' => undef,
43153                                                                                                    'lookahead' => 0,
43154                                                                                                    'line' => 126
43155                                                                                                  }, 'Parse::RecDescent::Subrule' ),
43156                                                                                           bless( {
43157                                                                                                    'hashname' => '__ACTION1__',
43158                                                                                                    'lookahead' => 0,
43159                                                                                                    'line' => 127,
43160                                                                                                    'code' => '{ $return = { name => $item[1] } }'
43161                                                                                                  }, 'Parse::RecDescent::Action' )
43162                                                                                         ],
43163                                                                              'line' => 126
43164                                                                            }, 'Parse::RecDescent::Production' )
43165                                                                   ],
43166                                                        'name' => 'table_name',
43167                                                        'vars' => '',
43168                                                        'line' => 124
43169                                                      }, 'Parse::RecDescent::Rule' ),
43170                               '_alternation_1_of_production_53_of_rule_sysfun' => bless( {
43171                                                                                            'impcount' => 0,
43172                                                                                            'calls' => [],
43173                                                                                            'changed' => 0,
43174                                                                                            'opcount' => 0,
43175                                                                                            'prods' => [
43176                                                                                                         bless( {
43177                                                                                                                  'number' => '0',
43178                                                                                                                  'strcount' => 0,
43179                                                                                                                  'dircount' => 0,
43180                                                                                                                  'uncommit' => undef,
43181                                                                                                                  'error' => undef,
43182                                                                                                                  'patcount' => 1,
43183                                                                                                                  'actcount' => 0,
43184                                                                                                                  'items' => [
43185                                                                                                                               bless( {
43186                                                                                                                                        'pattern' => 'TRUNCATE',
43187                                                                                                                                        'hashname' => '__PATTERN1__',
43188                                                                                                                                        'description' => '/TRUNCATE/i',
43189                                                                                                                                        'lookahead' => 0,
43190                                                                                                                                        'rdelim' => '/',
43191                                                                                                                                        'line' => 628,
43192                                                                                                                                        'mod' => 'i',
43193                                                                                                                                        'ldelim' => '/'
43194                                                                                                                                      }, 'Parse::RecDescent::Token' )
43195                                                                                                                             ],
43196                                                                                                                  'line' => undef
43197                                                                                                                }, 'Parse::RecDescent::Production' ),
43198                                                                                                         bless( {
43199                                                                                                                  'number' => '1',
43200                                                                                                                  'strcount' => 0,
43201                                                                                                                  'dircount' => 0,
43202                                                                                                                  'uncommit' => undef,
43203                                                                                                                  'error' => undef,
43204                                                                                                                  'patcount' => 1,
43205                                                                                                                  'actcount' => 0,
43206                                                                                                                  'items' => [
43207                                                                                                                               bless( {
43208                                                                                                                                        'pattern' => 'TRUNC',
43209                                                                                                                                        'hashname' => '__PATTERN1__',
43210                                                                                                                                        'description' => '/TRUNC/i',
43211                                                                                                                                        'lookahead' => 0,
43212                                                                                                                                        'rdelim' => '/',
43213                                                                                                                                        'line' => 628,
43214                                                                                                                                        'mod' => 'i',
43215                                                                                                                                        'ldelim' => '/'
43216                                                                                                                                      }, 'Parse::RecDescent::Token' )
43217                                                                                                                             ],
43218                                                                                                                  'line' => 628
43219                                                                                                                }, 'Parse::RecDescent::Production' )
43220                                                                                                       ],
43221                                                                                            'name' => '_alternation_1_of_production_53_of_rule_sysfun',
43222                                                                                            'vars' => '',
43223                                                                                            'line' => 628
43224                                                                                          }, 'Parse::RecDescent::Rule' ),
43225                               'options' => bless( {
43226                                                     'impcount' => 1,
43227                                                     'calls' => [
43228                                                                  '_alternation_1_of_production_1_of_rule_options'
43229                                                                ],
43230                                                     'changed' => 0,
43231                                                     'opcount' => 0,
43232                                                     'prods' => [
43233                                                                  bless( {
43234                                                                           'number' => '0',
43235                                                                           'strcount' => 0,
43236                                                                           'dircount' => 0,
43237                                                                           'uncommit' => undef,
43238                                                                           'error' => undef,
43239                                                                           'patcount' => 2,
43240                                                                           'actcount' => 0,
43241                                                                           'items' => [
43242                                                                                        bless( {
43243                                                                                                 'pattern' => 'WITH',
43244                                                                                                 'hashname' => '__PATTERN1__',
43245                                                                                                 'description' => '/WITH/i',
43246                                                                                                 'lookahead' => 0,
43247                                                                                                 'rdelim' => '/',
43248                                                                                                 'line' => 150,
43249                                                                                                 'mod' => 'i',
43250                                                                                                 'ldelim' => '/'
43251                                                                                               }, 'Parse::RecDescent::Token' ),
43252                                                                                        bless( {
43253                                                                                                 'subrule' => '_alternation_1_of_production_1_of_rule_options',
43254                                                                                                 'matchrule' => 0,
43255                                                                                                 'implicit' => '/CASCADED/i, or /LOCAL/i',
43256                                                                                                 'argcode' => undef,
43257                                                                                                 'lookahead' => 0,
43258                                                                                                 'line' => 150
43259                                                                                               }, 'Parse::RecDescent::Subrule' ),
43260                                                                                        bless( {
43261                                                                                                 'pattern' => 'CHECK\\s+OPTION',
43262                                                                                                 'hashname' => '__PATTERN2__',
43263                                                                                                 'description' => '/CHECK\\\\s+OPTION/i',
43264                                                                                                 'lookahead' => 0,
43265                                                                                                 'rdelim' => '/',
43266                                                                                                 'line' => 150,
43267                                                                                                 'mod' => 'i',
43268                                                                                                 'ldelim' => '/'
43269                                                                                               }, 'Parse::RecDescent::Token' )
43270                                                                                      ],
43271                                                                           'line' => undef
43272                                                                         }, 'Parse::RecDescent::Production' )
43273                                                                ],
43274                                                     'name' => 'options',
43275                                                     'vars' => '',
43276                                                     'line' => 150
43277                                                   }, 'Parse::RecDescent::Rule' ),
43278                               'function' => bless( {
43279                                                      'impcount' => 1,
43280                                                      'calls' => [
43281                                                                   '_alternation_1_of_production_1_of_rule_function',
43282                                                                   'func_args'
43283                                                                 ],
43284                                                      'changed' => 0,
43285                                                      'opcount' => 0,
43286                                                      'prods' => [
43287                                                                   bless( {
43288                                                                            'number' => '0',
43289                                                                            'strcount' => 2,
43290                                                                            'dircount' => 1,
43291                                                                            'uncommit' => undef,
43292                                                                            'error' => undef,
43293                                                                            'patcount' => 1,
43294                                                                            'actcount' => 0,
43295                                                                            'op' => [],
43296                                                                            'items' => [
43297                                                                                         bless( {
43298                                                                                                  'subrule' => '_alternation_1_of_production_1_of_rule_function',
43299                                                                                                  'matchrule' => 0,
43300                                                                                                  'implicit' => '/SYSIBM\\\\.|/i, or /SYSFUN\\\\.|/i, or userdefined_function',
43301                                                                                                  'argcode' => undef,
43302                                                                                                  'lookahead' => 0,
43303                                                                                                  'line' => 326
43304                                                                                                }, 'Parse::RecDescent::Subrule' ),
43305                                                                                         bless( {
43306                                                                                                  'pattern' => '(',
43307                                                                                                  'hashname' => '__STRING1__',
43308                                                                                                  'description' => '\'(\'',
43309                                                                                                  'lookahead' => 0,
43310                                                                                                  'line' => 326
43311                                                                                                }, 'Parse::RecDescent::Literal' ),
43312                                                                                         bless( {
43313                                                                                                  'expected' => '<leftop: func_args /,/ func_args>',
43314                                                                                                  'min' => 1,
43315                                                                                                  'name' => '\'func_args(s)\'',
43316                                                                                                  'max' => 100000000,
43317                                                                                                  'leftarg' => bless( {
43318                                                                                                                        'subrule' => 'func_args',
43319                                                                                                                        'matchrule' => 0,
43320                                                                                                                        'implicit' => undef,
43321                                                                                                                        'argcode' => undef,
43322                                                                                                                        'lookahead' => 0,
43323                                                                                                                        'line' => 326
43324                                                                                                                      }, 'Parse::RecDescent::Subrule' ),
43325                                                                                                  'rightarg' => bless( {
43326                                                                                                                         'subrule' => 'func_args',
43327                                                                                                                         'matchrule' => 0,
43328                                                                                                                         'implicit' => undef,
43329                                                                                                                         'argcode' => undef,
43330                                                                                                                         'lookahead' => 0,
43331                                                                                                                         'line' => 326
43332                                                                                                                       }, 'Parse::RecDescent::Subrule' ),
43333                                                                                                  'hashname' => '__DIRECTIVE1__',
43334                                                                                                  'type' => 'leftop',
43335                                                                                                  'op' => bless( {
43336                                                                                                                   'pattern' => ',',
43337                                                                                                                   'hashname' => '__PATTERN1__',
43338                                                                                                                   'description' => '/,/',
43339                                                                                                                   'lookahead' => 0,
43340                                                                                                                   'rdelim' => '/',
43341                                                                                                                   'line' => 326,
43342                                                                                                                   'mod' => '',
43343                                                                                                                   'ldelim' => '/'
43344                                                                                                                 }, 'Parse::RecDescent::Token' )
43345                                                                                                }, 'Parse::RecDescent::Operator' ),
43346                                                                                         bless( {
43347                                                                                                  'pattern' => ')',
43348                                                                                                  'hashname' => '__STRING2__',
43349                                                                                                  'description' => '\')\'',
43350                                                                                                  'lookahead' => 0,
43351                                                                                                  'line' => 326
43352                                                                                                }, 'Parse::RecDescent::Literal' )
43353                                                                                       ],
43354                                                                            'line' => undef
43355                                                                          }, 'Parse::RecDescent::Production' )
43356                                                                 ],
43357                                                      'name' => 'function',
43358                                                      'vars' => '',
43359                                                      'line' => 323
43360                                                    }, 'Parse::RecDescent::Rule' ),
43361                               '_alternation_1_of_production_41_of_rule_sysibm_function' => bless( {
43362                                                                                                     'impcount' => 0,
43363                                                                                                     'calls' => [],
43364                                                                                                     'changed' => 0,
43365                                                                                                     'opcount' => 0,
43366                                                                                                     'prods' => [
43367                                                                                                                  bless( {
43368                                                                                                                           'number' => '0',
43369                                                                                                                           'strcount' => 0,
43370                                                                                                                           'dircount' => 0,
43371                                                                                                                           'uncommit' => undef,
43372                                                                                                                           'error' => undef,
43373                                                                                                                           'patcount' => 1,
43374                                                                                                                           'actcount' => 0,
43375                                                                                                                           'items' => [
43376                                                                                                                                        bless( {
43377                                                                                                                                                 'pattern' => 'INTEGER',
43378                                                                                                                                                 'hashname' => '__PATTERN1__',
43379                                                                                                                                                 'description' => '/INTEGER/i',
43380                                                                                                                                                 'lookahead' => 0,
43381                                                                                                                                                 'rdelim' => '/',
43382                                                                                                                                                 'line' => 628,
43383                                                                                                                                                 'mod' => 'i',
43384                                                                                                                                                 'ldelim' => '/'
43385                                                                                                                                               }, 'Parse::RecDescent::Token' )
43386                                                                                                                                      ],
43387                                                                                                                           'line' => undef
43388                                                                                                                         }, 'Parse::RecDescent::Production' ),
43389                                                                                                                  bless( {
43390                                                                                                                           'number' => '1',
43391                                                                                                                           'strcount' => 0,
43392                                                                                                                           'dircount' => 0,
43393                                                                                                                           'uncommit' => undef,
43394                                                                                                                           'error' => undef,
43395                                                                                                                           'patcount' => 1,
43396                                                                                                                           'actcount' => 0,
43397                                                                                                                           'items' => [
43398                                                                                                                                        bless( {
43399                                                                                                                                                 'pattern' => 'INT',
43400                                                                                                                                                 'hashname' => '__PATTERN1__',
43401                                                                                                                                                 'description' => '/INT/',
43402                                                                                                                                                 'lookahead' => 0,
43403                                                                                                                                                 'rdelim' => '/',
43404                                                                                                                                                 'line' => 628,
43405                                                                                                                                                 'mod' => '',
43406                                                                                                                                                 'ldelim' => '/'
43407                                                                                                                                               }, 'Parse::RecDescent::Token' )
43408                                                                                                                                      ],
43409                                                                                                                           'line' => 628
43410                                                                                                                         }, 'Parse::RecDescent::Production' )
43411                                                                                                                ],
43412                                                                                                     'name' => '_alternation_1_of_production_41_of_rule_sysibm_function',
43413                                                                                                     'vars' => '',
43414                                                                                                     'line' => 628
43415                                                                                                   }, 'Parse::RecDescent::Rule' ),
43416                               '_alternation_1_of_production_1_of_rule_case_expression' => bless( {
43417                                                                                                    'impcount' => 0,
43418                                                                                                    'calls' => [
43419                                                                                                                 'searched_when_clause',
43420                                                                                                                 'simple_when_clause'
43421                                                                                                               ],
43422                                                                                                    'changed' => 0,
43423                                                                                                    'opcount' => 0,
43424                                                                                                    'prods' => [
43425                                                                                                                 bless( {
43426                                                                                                                          'number' => '0',
43427                                                                                                                          'strcount' => 0,
43428                                                                                                                          'dircount' => 0,
43429                                                                                                                          'uncommit' => undef,
43430                                                                                                                          'error' => undef,
43431                                                                                                                          'patcount' => 0,
43432                                                                                                                          'actcount' => 0,
43433                                                                                                                          'items' => [
43434                                                                                                                                       bless( {
43435                                                                                                                                                'subrule' => 'searched_when_clause',
43436                                                                                                                                                'matchrule' => 0,
43437                                                                                                                                                'implicit' => undef,
43438                                                                                                                                                'argcode' => undef,
43439                                                                                                                                                'lookahead' => 0,
43440                                                                                                                                                'line' => 626
43441                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
43442                                                                                                                                     ],
43443                                                                                                                          'line' => undef
43444                                                                                                                        }, 'Parse::RecDescent::Production' ),
43445                                                                                                                 bless( {
43446                                                                                                                          'number' => '1',
43447                                                                                                                          'strcount' => 0,
43448                                                                                                                          'dircount' => 0,
43449                                                                                                                          'uncommit' => undef,
43450                                                                                                                          'error' => undef,
43451                                                                                                                          'patcount' => 0,
43452                                                                                                                          'actcount' => 0,
43453                                                                                                                          'items' => [
43454                                                                                                                                       bless( {
43455                                                                                                                                                'subrule' => 'simple_when_clause',
43456                                                                                                                                                'matchrule' => 0,
43457                                                                                                                                                'implicit' => undef,
43458                                                                                                                                                'argcode' => undef,
43459                                                                                                                                                'lookahead' => 0,
43460                                                                                                                                                'line' => 627
43461                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
43462                                                                                                                                     ],
43463                                                                                                                          'line' => 627
43464                                                                                                                        }, 'Parse::RecDescent::Production' )
43465                                                                                                               ],
43466                                                                                                    'name' => '_alternation_1_of_production_1_of_rule_case_expression',
43467                                                                                                    'vars' => '',
43468                                                                                                    'line' => 626
43469                                                                                                  }, 'Parse::RecDescent::Rule' ),
43470                               '_alternation_1_of_production_1_of_rule_window_order_clause' => bless( {
43471                                                                                                        'impcount' => 1,
43472                                                                                                        'calls' => [
43473                                                                                                                     'sort_key_expression',
43474                                                                                                                     '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause'
43475                                                                                                                   ],
43476                                                                                                        'changed' => 0,
43477                                                                                                        'opcount' => 0,
43478                                                                                                        'prods' => [
43479                                                                                                                     bless( {
43480                                                                                                                              'number' => '0',
43481                                                                                                                              'strcount' => 0,
43482                                                                                                                              'dircount' => 0,
43483                                                                                                                              'uncommit' => undef,
43484                                                                                                                              'error' => undef,
43485                                                                                                                              'patcount' => 0,
43486                                                                                                                              'actcount' => 0,
43487                                                                                                                              'items' => [
43488                                                                                                                                           bless( {
43489                                                                                                                                                    'subrule' => 'sort_key_expression',
43490                                                                                                                                                    'matchrule' => 0,
43491                                                                                                                                                    'implicit' => undef,
43492                                                                                                                                                    'argcode' => undef,
43493                                                                                                                                                    'lookahead' => 0,
43494                                                                                                                                                    'line' => 624
43495                                                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
43496                                                                                                                                           bless( {
43497                                                                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_window_order_clause',
43498                                                                                                                                                    'expected' => 'asc_option, or desc_option',
43499                                                                                                                                                    'min' => 0,
43500                                                                                                                                                    'argcode' => undef,
43501                                                                                                                                                    'max' => 1,
43502                                                                                                                                                    'matchrule' => 0,
43503                                                                                                                                                    'repspec' => '?',
43504                                                                                                                                                    'lookahead' => 0,
43505                                                                                                                                                    'line' => 627
43506                                                                                                                                                  }, 'Parse::RecDescent::Repetition' )
43507                                                                                                                                         ],
43508                                                                                                                              'line' => undef
43509                                                                                                                            }, 'Parse::RecDescent::Production' )
43510                                                                                                                   ],
43511                                                                                                        'name' => '_alternation_1_of_production_1_of_rule_window_order_clause',
43512                                                                                                        'vars' => '',
43513                                                                                                        'line' => 624
43514                                                                                                      }, 'Parse::RecDescent::Rule' ),
43515                               'create' => bless( {
43516                                                    'impcount' => 0,
43517                                                    'calls' => [
43518                                                                 'CREATE',
43519                                                                 'TRIGGER',
43520                                                                 'trigger_name',
43521                                                                 'before',
43522                                                                 'type',
43523                                                                 'table_name',
43524                                                                 'reference_b',
43525                                                                 'triggered_action',
43526                                                                 'after',
43527                                                                 'reference_a',
43528                                                                 'VIEW',
43529                                                                 'view_name',
43530                                                                 'column_list',
43531                                                                 'with_expression',
43532                                                                 'SQL_procedure_statement'
43533                                                               ],
43534                                                    'changed' => 0,
43535                                                    'opcount' => 0,
43536                                                    'prods' => [
43537                                                                 bless( {
43538                                                                          'number' => '0',
43539                                                                          'strcount' => 1,
43540                                                                          'dircount' => 0,
43541                                                                          'uncommit' => undef,
43542                                                                          'error' => undef,
43543                                                                          'patcount' => 2,
43544                                                                          'actcount' => 1,
43545                                                                          'items' => [
43546                                                                                       bless( {
43547                                                                                                'subrule' => 'CREATE',
43548                                                                                                'matchrule' => 0,
43549                                                                                                'implicit' => undef,
43550                                                                                                'argcode' => undef,
43551                                                                                                'lookahead' => 0,
43552                                                                                                'line' => 36
43553                                                                                              }, 'Parse::RecDescent::Subrule' ),
43554                                                                                       bless( {
43555                                                                                                'subrule' => 'TRIGGER',
43556                                                                                                'matchrule' => 0,
43557                                                                                                'implicit' => undef,
43558                                                                                                'argcode' => undef,
43559                                                                                                'lookahead' => 0,
43560                                                                                                'line' => 36
43561                                                                                              }, 'Parse::RecDescent::Subrule' ),
43562                                                                                       bless( {
43563                                                                                                'subrule' => 'trigger_name',
43564                                                                                                'matchrule' => 0,
43565                                                                                                'implicit' => undef,
43566                                                                                                'argcode' => undef,
43567                                                                                                'lookahead' => 0,
43568                                                                                                'line' => 36
43569                                                                                              }, 'Parse::RecDescent::Subrule' ),
43570                                                                                       bless( {
43571                                                                                                'subrule' => 'before',
43572                                                                                                'matchrule' => 0,
43573                                                                                                'implicit' => undef,
43574                                                                                                'argcode' => undef,
43575                                                                                                'lookahead' => 0,
43576                                                                                                'line' => 36
43577                                                                                              }, 'Parse::RecDescent::Subrule' ),
43578                                                                                       bless( {
43579                                                                                                'subrule' => 'type',
43580                                                                                                'matchrule' => 0,
43581                                                                                                'implicit' => undef,
43582                                                                                                'argcode' => undef,
43583                                                                                                'lookahead' => 0,
43584                                                                                                'line' => 36
43585                                                                                              }, 'Parse::RecDescent::Subrule' ),
43586                                                                                       bless( {
43587                                                                                                'pattern' => 'ON',
43588                                                                                                'hashname' => '__PATTERN1__',
43589                                                                                                'description' => '/ON/i',
43590                                                                                                'lookahead' => 0,
43591                                                                                                'rdelim' => '/',
43592                                                                                                'line' => 36,
43593                                                                                                'mod' => 'i',
43594                                                                                                'ldelim' => '/'
43595                                                                                              }, 'Parse::RecDescent::Token' ),
43596                                                                                       bless( {
43597                                                                                                'subrule' => 'table_name',
43598                                                                                                'matchrule' => 0,
43599                                                                                                'implicit' => undef,
43600                                                                                                'argcode' => undef,
43601                                                                                                'lookahead' => 0,
43602                                                                                                'line' => 36
43603                                                                                              }, 'Parse::RecDescent::Subrule' ),
43604                                                                                       bless( {
43605                                                                                                'subrule' => 'reference_b',
43606                                                                                                'expected' => undef,
43607                                                                                                'min' => 0,
43608                                                                                                'argcode' => undef,
43609                                                                                                'max' => 1,
43610                                                                                                'matchrule' => 0,
43611                                                                                                'repspec' => '?',
43612                                                                                                'lookahead' => 0,
43613                                                                                                'line' => 36
43614                                                                                              }, 'Parse::RecDescent::Repetition' ),
43615                                                                                       bless( {
43616                                                                                                'pattern' => 'FOR EACH ROW',
43617                                                                                                'hashname' => '__PATTERN2__',
43618                                                                                                'description' => '/FOR EACH ROW/i',
43619                                                                                                'lookahead' => 0,
43620                                                                                                'rdelim' => '/',
43621                                                                                                'line' => 36,
43622                                                                                                'mod' => 'i',
43623                                                                                                'ldelim' => '/'
43624                                                                                              }, 'Parse::RecDescent::Token' ),
43625                                                                                       bless( {
43626                                                                                                'pattern' => 'MODE DB2SQL',
43627                                                                                                'hashname' => '__STRING1__',
43628                                                                                                'description' => '\'MODE DB2SQL\'',
43629                                                                                                'lookahead' => 0,
43630                                                                                                'line' => 36
43631                                                                                              }, 'Parse::RecDescent::Literal' ),
43632                                                                                       bless( {
43633                                                                                                'subrule' => 'triggered_action',
43634                                                                                                'matchrule' => 0,
43635                                                                                                'implicit' => undef,
43636                                                                                                'argcode' => undef,
43637                                                                                                'lookahead' => 0,
43638                                                                                                'line' => 36
43639                                                                                              }, 'Parse::RecDescent::Subrule' ),
43640                                                                                       bless( {
43641                                                                                                'hashname' => '__ACTION1__',
43642                                                                                                'lookahead' => 0,
43643                                                                                                'line' => 37,
43644                                                                                                'code' => '{
43645     my $table_name = $item{\'table_name\'}{\'name\'};
43646     $return =  {
43647         table      => $table_name,
43648         schema     => $item{\'trigger_name\'}{\'schema\'},
43649         name       => $item{\'trigger_name\'}{\'name\'},
43650         when       => \'before\',
43651         db_event   => $item{\'type\'}->{\'event\'},
43652         fields     => $item{\'type\'}{\'fields\'},
43653         condition  => $item{\'triggered_action\'}{\'condition\'},
43654         reference  => $item{\'reference_b\'},
43655         granularity => $item[9],
43656         action     => $item{\'triggered_action\'}{\'statement\'}
43657     };
43658
43659     push @triggers, $return;
43660 }'
43661                                                                                              }, 'Parse::RecDescent::Action' )
43662                                                                                     ],
43663                                                                          'line' => undef
43664                                                                        }, 'Parse::RecDescent::Production' ),
43665                                                                 bless( {
43666                                                                          'number' => '1',
43667                                                                          'strcount' => 1,
43668                                                                          'dircount' => 0,
43669                                                                          'uncommit' => undef,
43670                                                                          'error' => undef,
43671                                                                          'patcount' => 2,
43672                                                                          'actcount' => 1,
43673                                                                          'items' => [
43674                                                                                       bless( {
43675                                                                                                'subrule' => 'CREATE',
43676                                                                                                'matchrule' => 0,
43677                                                                                                'implicit' => undef,
43678                                                                                                'argcode' => undef,
43679                                                                                                'lookahead' => 0,
43680                                                                                                'line' => 55
43681                                                                                              }, 'Parse::RecDescent::Subrule' ),
43682                                                                                       bless( {
43683                                                                                                'subrule' => 'TRIGGER',
43684                                                                                                'matchrule' => 0,
43685                                                                                                'implicit' => undef,
43686                                                                                                'argcode' => undef,
43687                                                                                                'lookahead' => 0,
43688                                                                                                'line' => 55
43689                                                                                              }, 'Parse::RecDescent::Subrule' ),
43690                                                                                       bless( {
43691                                                                                                'subrule' => 'trigger_name',
43692                                                                                                'matchrule' => 0,
43693                                                                                                'implicit' => undef,
43694                                                                                                'argcode' => undef,
43695                                                                                                'lookahead' => 0,
43696                                                                                                'line' => 55
43697                                                                                              }, 'Parse::RecDescent::Subrule' ),
43698                                                                                       bless( {
43699                                                                                                'subrule' => 'after',
43700                                                                                                'matchrule' => 0,
43701                                                                                                'implicit' => undef,
43702                                                                                                'argcode' => undef,
43703                                                                                                'lookahead' => 0,
43704                                                                                                'line' => 55
43705                                                                                              }, 'Parse::RecDescent::Subrule' ),
43706                                                                                       bless( {
43707                                                                                                'subrule' => 'type',
43708                                                                                                'matchrule' => 0,
43709                                                                                                'implicit' => undef,
43710                                                                                                'argcode' => undef,
43711                                                                                                'lookahead' => 0,
43712                                                                                                'line' => 55
43713                                                                                              }, 'Parse::RecDescent::Subrule' ),
43714                                                                                       bless( {
43715                                                                                                'pattern' => 'ON',
43716                                                                                                'hashname' => '__PATTERN1__',
43717                                                                                                'description' => '/ON/i',
43718                                                                                                'lookahead' => 0,
43719                                                                                                'rdelim' => '/',
43720                                                                                                'line' => 55,
43721                                                                                                'mod' => 'i',
43722                                                                                                'ldelim' => '/'
43723                                                                                              }, 'Parse::RecDescent::Token' ),
43724                                                                                       bless( {
43725                                                                                                'subrule' => 'table_name',
43726                                                                                                'matchrule' => 0,
43727                                                                                                'implicit' => undef,
43728                                                                                                'argcode' => undef,
43729                                                                                                'lookahead' => 0,
43730                                                                                                'line' => 55
43731                                                                                              }, 'Parse::RecDescent::Subrule' ),
43732                                                                                       bless( {
43733                                                                                                'subrule' => 'reference_a',
43734                                                                                                'expected' => undef,
43735                                                                                                'min' => 0,
43736                                                                                                'argcode' => undef,
43737                                                                                                'max' => 1,
43738                                                                                                'matchrule' => 0,
43739                                                                                                'repspec' => '?',
43740                                                                                                'lookahead' => 0,
43741                                                                                                'line' => 55
43742                                                                                              }, 'Parse::RecDescent::Repetition' ),
43743                                                                                       bless( {
43744                                                                                                'pattern' => 'FOR EACH ROW|FOR EACH STATEMENT',
43745                                                                                                'hashname' => '__PATTERN2__',
43746                                                                                                'description' => '/FOR EACH ROW|FOR EACH STATEMENT/i',
43747                                                                                                'lookahead' => 0,
43748                                                                                                'rdelim' => '/',
43749                                                                                                'line' => 55,
43750                                                                                                'mod' => 'i',
43751                                                                                                'ldelim' => '/'
43752                                                                                              }, 'Parse::RecDescent::Token' ),
43753                                                                                       bless( {
43754                                                                                                'pattern' => 'MODE DB2SQL',
43755                                                                                                'hashname' => '__STRING1__',
43756                                                                                                'description' => '\'MODE DB2SQL\'',
43757                                                                                                'lookahead' => 0,
43758                                                                                                'line' => 55
43759                                                                                              }, 'Parse::RecDescent::Literal' ),
43760                                                                                       bless( {
43761                                                                                                'subrule' => 'triggered_action',
43762                                                                                                'matchrule' => 0,
43763                                                                                                'implicit' => undef,
43764                                                                                                'argcode' => undef,
43765                                                                                                'lookahead' => 0,
43766                                                                                                'line' => 55
43767                                                                                              }, 'Parse::RecDescent::Subrule' ),
43768                                                                                       bless( {
43769                                                                                                'hashname' => '__ACTION1__',
43770                                                                                                'lookahead' => 0,
43771                                                                                                'line' => 56,
43772                                                                                                'code' => '{
43773     my $table_name = $item{\'table_name\'}{\'name\'};
43774     $return = {
43775         table      => $table_name,
43776         schema     => $item{\'trigger_name\'}{\'schema\'},
43777         name       => $item{\'trigger_name\'}{\'name\'},
43778         when       => \'after\',
43779         db_event   => $item{\'type\'}{\'event\'},
43780         fields     => $item{\'type\'}{\'fields\'},
43781         condition  => $item{\'triggered_action\'}{\'condition\'},
43782         reference  => $item{\'reference_a\'},
43783         granularity => $item[9],
43784         action     => $item{\'triggered_action\'}{\'statement\'}
43785     };
43786
43787     push @triggers, $return;
43788 }'
43789                                                                                              }, 'Parse::RecDescent::Action' )
43790                                                                                     ],
43791                                                                          'line' => undef
43792                                                                        }, 'Parse::RecDescent::Production' ),
43793                                                                 bless( {
43794                                                                          'number' => '2',
43795                                                                          'strcount' => 0,
43796                                                                          'dircount' => 0,
43797                                                                          'uncommit' => undef,
43798                                                                          'error' => undef,
43799                                                                          'patcount' => 2,
43800                                                                          'actcount' => 1,
43801                                                                          'items' => [
43802                                                                                       bless( {
43803                                                                                                'subrule' => 'CREATE',
43804                                                                                                'matchrule' => 0,
43805                                                                                                'implicit' => undef,
43806                                                                                                'argcode' => undef,
43807                                                                                                'lookahead' => 0,
43808                                                                                                'line' => 74
43809                                                                                              }, 'Parse::RecDescent::Subrule' ),
43810                                                                                       bless( {
43811                                                                                                'pattern' => 'FEDERATED|',
43812                                                                                                'hashname' => '__PATTERN1__',
43813                                                                                                'description' => '/FEDERATED|/i',
43814                                                                                                'lookahead' => 0,
43815                                                                                                'rdelim' => '/',
43816                                                                                                'line' => 74,
43817                                                                                                'mod' => 'i',
43818                                                                                                'ldelim' => '/'
43819                                                                                              }, 'Parse::RecDescent::Token' ),
43820                                                                                       bless( {
43821                                                                                                'subrule' => 'VIEW',
43822                                                                                                'matchrule' => 0,
43823                                                                                                'implicit' => undef,
43824                                                                                                'argcode' => undef,
43825                                                                                                'lookahead' => 0,
43826                                                                                                'line' => 74
43827                                                                                              }, 'Parse::RecDescent::Subrule' ),
43828                                                                                       bless( {
43829                                                                                                'subrule' => 'view_name',
43830                                                                                                'matchrule' => 0,
43831                                                                                                'implicit' => undef,
43832                                                                                                'argcode' => undef,
43833                                                                                                'lookahead' => 0,
43834                                                                                                'line' => 74
43835                                                                                              }, 'Parse::RecDescent::Subrule' ),
43836                                                                                       bless( {
43837                                                                                                'subrule' => 'column_list',
43838                                                                                                'expected' => undef,
43839                                                                                                'min' => 0,
43840                                                                                                'argcode' => undef,
43841                                                                                                'max' => 1,
43842                                                                                                'matchrule' => 0,
43843                                                                                                'repspec' => '?',
43844                                                                                                'lookahead' => 0,
43845                                                                                                'line' => 74
43846                                                                                              }, 'Parse::RecDescent::Repetition' ),
43847                                                                                       bless( {
43848                                                                                                'pattern' => 'AS',
43849                                                                                                'hashname' => '__PATTERN2__',
43850                                                                                                'description' => '/AS/i',
43851                                                                                                'lookahead' => 0,
43852                                                                                                'rdelim' => '/',
43853                                                                                                'line' => 74,
43854                                                                                                'mod' => 'i',
43855                                                                                                'ldelim' => '/'
43856                                                                                              }, 'Parse::RecDescent::Token' ),
43857                                                                                       bless( {
43858                                                                                                'subrule' => 'with_expression',
43859                                                                                                'expected' => undef,
43860                                                                                                'min' => 0,
43861                                                                                                'argcode' => undef,
43862                                                                                                'max' => 1,
43863                                                                                                'matchrule' => 0,
43864                                                                                                'repspec' => '?',
43865                                                                                                'lookahead' => 0,
43866                                                                                                'line' => 74
43867                                                                                              }, 'Parse::RecDescent::Repetition' ),
43868                                                                                       bless( {
43869                                                                                                'subrule' => 'SQL_procedure_statement',
43870                                                                                                'matchrule' => 0,
43871                                                                                                'implicit' => undef,
43872                                                                                                'argcode' => undef,
43873                                                                                                'lookahead' => 0,
43874                                                                                                'line' => 74
43875                                                                                              }, 'Parse::RecDescent::Subrule' ),
43876                                                                                       bless( {
43877                                                                                                'hashname' => '__ACTION1__',
43878                                                                                                'lookahead' => 0,
43879                                                                                                'line' => 75,
43880                                                                                                'code' => '{
43881     $return = {
43882         name   => $item{view_name}{name},
43883         sql    => $item{SQL_procedure_statement},
43884         with   => $item{\'with_expression(?)\'},
43885         fields => $item{\'column_list(?)\'}
43886     };
43887     push @views, $return;
43888 }'
43889                                                                                              }, 'Parse::RecDescent::Action' )
43890                                                                                     ],
43891                                                                          'line' => undef
43892                                                                        }, 'Parse::RecDescent::Production' )
43893                                                               ],
43894                                                    'name' => 'create',
43895                                                    'vars' => '',
43896                                                    'line' => 36
43897                                                  }, 'Parse::RecDescent::Rule' ),
43898                               'sysfun' => bless( {
43899                                                    'impcount' => 0,
43900                                                    'calls' => [
43901                                                                 '_alternation_1_of_production_1_of_rule_sysfun',
43902                                                                 '_alternation_1_of_production_7_of_rule_sysfun',
43903                                                                 'I',
43904                                                                 '_alternation_1_of_production_53_of_rule_sysfun'
43905                                                               ],
43906                                                    'changed' => 0,
43907                                                    'opcount' => 0,
43908                                                    'prods' => [
43909                                                                 bless( {
43910                                                                          'number' => '0',
43911                                                                          'strcount' => 0,
43912                                                                          'dircount' => 0,
43913                                                                          'uncommit' => undef,
43914                                                                          'error' => undef,
43915                                                                          'patcount' => 0,
43916                                                                          'actcount' => 0,
43917                                                                          'items' => [
43918                                                                                       bless( {
43919                                                                                                'subrule' => '_alternation_1_of_production_1_of_rule_sysfun',
43920                                                                                                'matchrule' => 0,
43921                                                                                                'implicit' => '/ABS/i, or /ABSVAL/i',
43922                                                                                                'argcode' => undef,
43923                                                                                                'lookahead' => 0,
43924                                                                                                'line' => 421
43925                                                                                              }, 'Parse::RecDescent::Subrule' )
43926                                                                                     ],
43927                                                                          'line' => undef
43928                                                                        }, 'Parse::RecDescent::Production' ),
43929                                                                 bless( {
43930                                                                          'number' => '1',
43931                                                                          'strcount' => 0,
43932                                                                          'dircount' => 0,
43933                                                                          'uncommit' => undef,
43934                                                                          'error' => undef,
43935                                                                          'patcount' => 1,
43936                                                                          'actcount' => 0,
43937                                                                          'items' => [
43938                                                                                       bless( {
43939                                                                                                'pattern' => 'ACOS',
43940                                                                                                'hashname' => '__PATTERN1__',
43941                                                                                                'description' => '/ACOS/i',
43942                                                                                                'lookahead' => 0,
43943                                                                                                'rdelim' => '/',
43944                                                                                                'line' => 422,
43945                                                                                                'mod' => 'i',
43946                                                                                                'ldelim' => '/'
43947                                                                                              }, 'Parse::RecDescent::Token' )
43948                                                                                     ],
43949                                                                          'line' => 422
43950                                                                        }, 'Parse::RecDescent::Production' ),
43951                                                                 bless( {
43952                                                                          'number' => '2',
43953                                                                          'strcount' => 0,
43954                                                                          'dircount' => 0,
43955                                                                          'uncommit' => undef,
43956                                                                          'error' => undef,
43957                                                                          'patcount' => 1,
43958                                                                          'actcount' => 0,
43959                                                                          'items' => [
43960                                                                                       bless( {
43961                                                                                                'pattern' => 'ASCII',
43962                                                                                                'hashname' => '__PATTERN1__',
43963                                                                                                'description' => '/ASCII/i',
43964                                                                                                'lookahead' => 0,
43965                                                                                                'rdelim' => '/',
43966                                                                                                'line' => 423,
43967                                                                                                'mod' => 'i',
43968                                                                                                'ldelim' => '/'
43969                                                                                              }, 'Parse::RecDescent::Token' )
43970                                                                                     ],
43971                                                                          'line' => 423
43972                                                                        }, 'Parse::RecDescent::Production' ),
43973                                                                 bless( {
43974                                                                          'number' => '3',
43975                                                                          'strcount' => 0,
43976                                                                          'dircount' => 0,
43977                                                                          'uncommit' => undef,
43978                                                                          'error' => undef,
43979                                                                          'patcount' => 1,
43980                                                                          'actcount' => 0,
43981                                                                          'items' => [
43982                                                                                       bless( {
43983                                                                                                'pattern' => 'ASIN',
43984                                                                                                'hashname' => '__PATTERN1__',
43985                                                                                                'description' => '/ASIN/i',
43986                                                                                                'lookahead' => 0,
43987                                                                                                'rdelim' => '/',
43988                                                                                                'line' => 424,
43989                                                                                                'mod' => 'i',
43990                                                                                                'ldelim' => '/'
43991                                                                                              }, 'Parse::RecDescent::Token' )
43992                                                                                     ],
43993                                                                          'line' => 424
43994                                                                        }, 'Parse::RecDescent::Production' ),
43995                                                                 bless( {
43996                                                                          'number' => '4',
43997                                                                          'strcount' => 0,
43998                                                                          'dircount' => 0,
43999                                                                          'uncommit' => undef,
44000                                                                          'error' => undef,
44001                                                                          'patcount' => 1,
44002                                                                          'actcount' => 0,
44003                                                                          'items' => [
44004                                                                                       bless( {
44005                                                                                                'pattern' => 'ATAN',
44006                                                                                                'hashname' => '__PATTERN1__',
44007                                                                                                'description' => '/ATAN/i',
44008                                                                                                'lookahead' => 0,
44009                                                                                                'rdelim' => '/',
44010                                                                                                'line' => 425,
44011                                                                                                'mod' => 'i',
44012                                                                                                'ldelim' => '/'
44013                                                                                              }, 'Parse::RecDescent::Token' )
44014                                                                                     ],
44015                                                                          'line' => 425
44016                                                                        }, 'Parse::RecDescent::Production' ),
44017                                                                 bless( {
44018                                                                          'number' => '5',
44019                                                                          'strcount' => 0,
44020                                                                          'dircount' => 0,
44021                                                                          'uncommit' => undef,
44022                                                                          'error' => undef,
44023                                                                          'patcount' => 1,
44024                                                                          'actcount' => 0,
44025                                                                          'items' => [
44026                                                                                       bless( {
44027                                                                                                'pattern' => 'ATAN2',
44028                                                                                                'hashname' => '__PATTERN1__',
44029                                                                                                'description' => '/ATAN2/i',
44030                                                                                                'lookahead' => 0,
44031                                                                                                'rdelim' => '/',
44032                                                                                                'line' => 426,
44033                                                                                                'mod' => 'i',
44034                                                                                                'ldelim' => '/'
44035                                                                                              }, 'Parse::RecDescent::Token' )
44036                                                                                     ],
44037                                                                          'line' => 426
44038                                                                        }, 'Parse::RecDescent::Production' ),
44039                                                                 bless( {
44040                                                                          'number' => '6',
44041                                                                          'strcount' => 0,
44042                                                                          'dircount' => 0,
44043                                                                          'uncommit' => undef,
44044                                                                          'error' => undef,
44045                                                                          'patcount' => 0,
44046                                                                          'actcount' => 0,
44047                                                                          'items' => [
44048                                                                                       bless( {
44049                                                                                                'subrule' => '_alternation_1_of_production_7_of_rule_sysfun',
44050                                                                                                'matchrule' => 0,
44051                                                                                                'implicit' => '/CEIL/i, or /CEILING/i',
44052                                                                                                'argcode' => undef,
44053                                                                                                'lookahead' => 0,
44054                                                                                                'line' => 427
44055                                                                                              }, 'Parse::RecDescent::Subrule' )
44056                                                                                     ],
44057                                                                          'line' => 427
44058                                                                        }, 'Parse::RecDescent::Production' ),
44059                                                                 bless( {
44060                                                                          'number' => '7',
44061                                                                          'strcount' => 0,
44062                                                                          'dircount' => 0,
44063                                                                          'uncommit' => undef,
44064                                                                          'error' => undef,
44065                                                                          'patcount' => 1,
44066                                                                          'actcount' => 0,
44067                                                                          'items' => [
44068                                                                                       bless( {
44069                                                                                                'pattern' => 'CHAR',
44070                                                                                                'hashname' => '__PATTERN1__',
44071                                                                                                'description' => '/CHAR/i',
44072                                                                                                'lookahead' => 0,
44073                                                                                                'rdelim' => '/',
44074                                                                                                'line' => 428,
44075                                                                                                'mod' => 'i',
44076                                                                                                'ldelim' => '/'
44077                                                                                              }, 'Parse::RecDescent::Token' )
44078                                                                                     ],
44079                                                                          'line' => 428
44080                                                                        }, 'Parse::RecDescent::Production' ),
44081                                                                 bless( {
44082                                                                          'number' => '8',
44083                                                                          'strcount' => 0,
44084                                                                          'dircount' => 0,
44085                                                                          'uncommit' => undef,
44086                                                                          'error' => undef,
44087                                                                          'patcount' => 1,
44088                                                                          'actcount' => 0,
44089                                                                          'items' => [
44090                                                                                       bless( {
44091                                                                                                'pattern' => 'CHR',
44092                                                                                                'hashname' => '__PATTERN1__',
44093                                                                                                'description' => '/CHR/i',
44094                                                                                                'lookahead' => 0,
44095                                                                                                'rdelim' => '/',
44096                                                                                                'line' => 429,
44097                                                                                                'mod' => 'i',
44098                                                                                                'ldelim' => '/'
44099                                                                                              }, 'Parse::RecDescent::Token' )
44100                                                                                     ],
44101                                                                          'line' => 429
44102                                                                        }, 'Parse::RecDescent::Production' ),
44103                                                                 bless( {
44104                                                                          'number' => '9',
44105                                                                          'strcount' => 0,
44106                                                                          'dircount' => 0,
44107                                                                          'uncommit' => undef,
44108                                                                          'error' => undef,
44109                                                                          'patcount' => 1,
44110                                                                          'actcount' => 0,
44111                                                                          'items' => [
44112                                                                                       bless( {
44113                                                                                                'pattern' => 'COS',
44114                                                                                                'hashname' => '__PATTERN1__',
44115                                                                                                'description' => '/COS/i',
44116                                                                                                'lookahead' => 0,
44117                                                                                                'rdelim' => '/',
44118                                                                                                'line' => 430,
44119                                                                                                'mod' => 'i',
44120                                                                                                'ldelim' => '/'
44121                                                                                              }, 'Parse::RecDescent::Token' )
44122                                                                                     ],
44123                                                                          'line' => 430
44124                                                                        }, 'Parse::RecDescent::Production' ),
44125                                                                 bless( {
44126                                                                          'number' => '10',
44127                                                                          'strcount' => 0,
44128                                                                          'dircount' => 0,
44129                                                                          'uncommit' => undef,
44130                                                                          'error' => undef,
44131                                                                          'patcount' => 1,
44132                                                                          'actcount' => 0,
44133                                                                          'items' => [
44134                                                                                       bless( {
44135                                                                                                'pattern' => 'COT',
44136                                                                                                'hashname' => '__PATTERN1__',
44137                                                                                                'description' => '/COT/i',
44138                                                                                                'lookahead' => 0,
44139                                                                                                'rdelim' => '/',
44140                                                                                                'line' => 431,
44141                                                                                                'mod' => 'i',
44142                                                                                                'ldelim' => '/'
44143                                                                                              }, 'Parse::RecDescent::Token' )
44144                                                                                     ],
44145                                                                          'line' => 431
44146                                                                        }, 'Parse::RecDescent::Production' ),
44147                                                                 bless( {
44148                                                                          'number' => '11',
44149                                                                          'strcount' => 0,
44150                                                                          'dircount' => 0,
44151                                                                          'uncommit' => undef,
44152                                                                          'error' => undef,
44153                                                                          'patcount' => 1,
44154                                                                          'actcount' => 0,
44155                                                                          'items' => [
44156                                                                                       bless( {
44157                                                                                                'pattern' => 'DAYNAME',
44158                                                                                                'hashname' => '__PATTERN1__',
44159                                                                                                'description' => '/DAYNAME/i',
44160                                                                                                'lookahead' => 0,
44161                                                                                                'rdelim' => '/',
44162                                                                                                'line' => 432,
44163                                                                                                'mod' => 'i',
44164                                                                                                'ldelim' => '/'
44165                                                                                              }, 'Parse::RecDescent::Token' )
44166                                                                                     ],
44167                                                                          'line' => 432
44168                                                                        }, 'Parse::RecDescent::Production' ),
44169                                                                 bless( {
44170                                                                          'number' => '12',
44171                                                                          'strcount' => 0,
44172                                                                          'dircount' => 0,
44173                                                                          'uncommit' => undef,
44174                                                                          'error' => undef,
44175                                                                          'patcount' => 1,
44176                                                                          'actcount' => 0,
44177                                                                          'items' => [
44178                                                                                       bless( {
44179                                                                                                'pattern' => 'DAYOFWEEK',
44180                                                                                                'hashname' => '__PATTERN1__',
44181                                                                                                'description' => '/DAYOFWEEK/i',
44182                                                                                                'lookahead' => 0,
44183                                                                                                'rdelim' => '/',
44184                                                                                                'line' => 433,
44185                                                                                                'mod' => 'i',
44186                                                                                                'ldelim' => '/'
44187                                                                                              }, 'Parse::RecDescent::Token' )
44188                                                                                     ],
44189                                                                          'line' => 433
44190                                                                        }, 'Parse::RecDescent::Production' ),
44191                                                                 bless( {
44192                                                                          'number' => '13',
44193                                                                          'strcount' => 0,
44194                                                                          'dircount' => 0,
44195                                                                          'uncommit' => undef,
44196                                                                          'error' => undef,
44197                                                                          'patcount' => 1,
44198                                                                          'actcount' => 0,
44199                                                                          'items' => [
44200                                                                                       bless( {
44201                                                                                                'pattern' => 'DAYOFWEEK_ISO',
44202                                                                                                'hashname' => '__PATTERN1__',
44203                                                                                                'description' => '/DAYOFWEEK_ISO/i',
44204                                                                                                'lookahead' => 0,
44205                                                                                                'rdelim' => '/',
44206                                                                                                'line' => 434,
44207                                                                                                'mod' => 'i',
44208                                                                                                'ldelim' => '/'
44209                                                                                              }, 'Parse::RecDescent::Token' )
44210                                                                                     ],
44211                                                                          'line' => 434
44212                                                                        }, 'Parse::RecDescent::Production' ),
44213                                                                 bless( {
44214                                                                          'number' => '14',
44215                                                                          'strcount' => 0,
44216                                                                          'dircount' => 0,
44217                                                                          'uncommit' => undef,
44218                                                                          'error' => undef,
44219                                                                          'patcount' => 1,
44220                                                                          'actcount' => 0,
44221                                                                          'items' => [
44222                                                                                       bless( {
44223                                                                                                'pattern' => 'DAYOFYEAR',
44224                                                                                                'hashname' => '__PATTERN1__',
44225                                                                                                'description' => '/DAYOFYEAR/i',
44226                                                                                                'lookahead' => 0,
44227                                                                                                'rdelim' => '/',
44228                                                                                                'line' => 435,
44229                                                                                                'mod' => 'i',
44230                                                                                                'ldelim' => '/'
44231                                                                                              }, 'Parse::RecDescent::Token' )
44232                                                                                     ],
44233                                                                          'line' => 435
44234                                                                        }, 'Parse::RecDescent::Production' ),
44235                                                                 bless( {
44236                                                                          'number' => '15',
44237                                                                          'strcount' => 0,
44238                                                                          'dircount' => 0,
44239                                                                          'uncommit' => undef,
44240                                                                          'error' => undef,
44241                                                                          'patcount' => 1,
44242                                                                          'actcount' => 0,
44243                                                                          'items' => [
44244                                                                                       bless( {
44245                                                                                                'pattern' => 'DEGREES',
44246                                                                                                'hashname' => '__PATTERN1__',
44247                                                                                                'description' => '/DEGREES/i',
44248                                                                                                'lookahead' => 0,
44249                                                                                                'rdelim' => '/',
44250                                                                                                'line' => 436,
44251                                                                                                'mod' => 'i',
44252                                                                                                'ldelim' => '/'
44253                                                                                              }, 'Parse::RecDescent::Token' )
44254                                                                                     ],
44255                                                                          'line' => 436
44256                                                                        }, 'Parse::RecDescent::Production' ),
44257                                                                 bless( {
44258                                                                          'number' => '16',
44259                                                                          'strcount' => 0,
44260                                                                          'dircount' => 0,
44261                                                                          'uncommit' => undef,
44262                                                                          'error' => undef,
44263                                                                          'patcount' => 1,
44264                                                                          'actcount' => 0,
44265                                                                          'items' => [
44266                                                                                       bless( {
44267                                                                                                'pattern' => 'DIFFERENCE',
44268                                                                                                'hashname' => '__PATTERN1__',
44269                                                                                                'description' => '/DIFFERENCE/i',
44270                                                                                                'lookahead' => 0,
44271                                                                                                'rdelim' => '/',
44272                                                                                                'line' => 437,
44273                                                                                                'mod' => 'i',
44274                                                                                                'ldelim' => '/'
44275                                                                                              }, 'Parse::RecDescent::Token' )
44276                                                                                     ],
44277                                                                          'line' => 437
44278                                                                        }, 'Parse::RecDescent::Production' ),
44279                                                                 bless( {
44280                                                                          'number' => '17',
44281                                                                          'strcount' => 0,
44282                                                                          'dircount' => 0,
44283                                                                          'uncommit' => undef,
44284                                                                          'error' => undef,
44285                                                                          'patcount' => 1,
44286                                                                          'actcount' => 0,
44287                                                                          'items' => [
44288                                                                                       bless( {
44289                                                                                                'pattern' => 'DOUBLE',
44290                                                                                                'hashname' => '__PATTERN1__',
44291                                                                                                'description' => '/DOUBLE/i',
44292                                                                                                'lookahead' => 0,
44293                                                                                                'rdelim' => '/',
44294                                                                                                'line' => 438,
44295                                                                                                'mod' => 'i',
44296                                                                                                'ldelim' => '/'
44297                                                                                              }, 'Parse::RecDescent::Token' )
44298                                                                                     ],
44299                                                                          'line' => 438
44300                                                                        }, 'Parse::RecDescent::Production' ),
44301                                                                 bless( {
44302                                                                          'number' => '18',
44303                                                                          'strcount' => 0,
44304                                                                          'dircount' => 0,
44305                                                                          'uncommit' => undef,
44306                                                                          'error' => undef,
44307                                                                          'patcount' => 1,
44308                                                                          'actcount' => 0,
44309                                                                          'items' => [
44310                                                                                       bless( {
44311                                                                                                'pattern' => 'EXP',
44312                                                                                                'hashname' => '__PATTERN1__',
44313                                                                                                'description' => '/EXP/i',
44314                                                                                                'lookahead' => 0,
44315                                                                                                'rdelim' => '/',
44316                                                                                                'line' => 439,
44317                                                                                                'mod' => 'i',
44318                                                                                                'ldelim' => '/'
44319                                                                                              }, 'Parse::RecDescent::Token' )
44320                                                                                     ],
44321                                                                          'line' => 439
44322                                                                        }, 'Parse::RecDescent::Production' ),
44323                                                                 bless( {
44324                                                                          'number' => '19',
44325                                                                          'strcount' => 0,
44326                                                                          'dircount' => 0,
44327                                                                          'uncommit' => undef,
44328                                                                          'error' => undef,
44329                                                                          'patcount' => 1,
44330                                                                          'actcount' => 0,
44331                                                                          'items' => [
44332                                                                                       bless( {
44333                                                                                                'pattern' => 'FLOOR',
44334                                                                                                'hashname' => '__PATTERN1__',
44335                                                                                                'description' => '/FLOOR/i',
44336                                                                                                'lookahead' => 0,
44337                                                                                                'rdelim' => '/',
44338                                                                                                'line' => 440,
44339                                                                                                'mod' => 'i',
44340                                                                                                'ldelim' => '/'
44341                                                                                              }, 'Parse::RecDescent::Token' )
44342                                                                                     ],
44343                                                                          'line' => 440
44344                                                                        }, 'Parse::RecDescent::Production' ),
44345                                                                 bless( {
44346                                                                          'number' => '20',
44347                                                                          'strcount' => 0,
44348                                                                          'dircount' => 0,
44349                                                                          'uncommit' => undef,
44350                                                                          'error' => undef,
44351                                                                          'patcount' => 1,
44352                                                                          'actcount' => 0,
44353                                                                          'items' => [
44354                                                                                       bless( {
44355                                                                                                'pattern' => 'GET_ROUTINE_SAR',
44356                                                                                                'hashname' => '__PATTERN1__',
44357                                                                                                'description' => '/GET_ROUTINE_SAR/i',
44358                                                                                                'lookahead' => 0,
44359                                                                                                'rdelim' => '/',
44360                                                                                                'line' => 441,
44361                                                                                                'mod' => 'i',
44362                                                                                                'ldelim' => '/'
44363                                                                                              }, 'Parse::RecDescent::Token' )
44364                                                                                     ],
44365                                                                          'line' => 441
44366                                                                        }, 'Parse::RecDescent::Production' ),
44367                                                                 bless( {
44368                                                                          'number' => '21',
44369                                                                          'strcount' => 0,
44370                                                                          'dircount' => 0,
44371                                                                          'uncommit' => undef,
44372                                                                          'error' => undef,
44373                                                                          'patcount' => 1,
44374                                                                          'actcount' => 0,
44375                                                                          'items' => [
44376                                                                                       bless( {
44377                                                                                                'pattern' => 'INSERT',
44378                                                                                                'hashname' => '__PATTERN1__',
44379                                                                                                'description' => '/INSERT/i',
44380                                                                                                'lookahead' => 0,
44381                                                                                                'rdelim' => '/',
44382                                                                                                'line' => 442,
44383                                                                                                'mod' => 'i',
44384                                                                                                'ldelim' => '/'
44385                                                                                              }, 'Parse::RecDescent::Token' )
44386                                                                                     ],
44387                                                                          'line' => 442
44388                                                                        }, 'Parse::RecDescent::Production' ),
44389                                                                 bless( {
44390                                                                          'number' => '22',
44391                                                                          'strcount' => 0,
44392                                                                          'dircount' => 0,
44393                                                                          'uncommit' => undef,
44394                                                                          'error' => undef,
44395                                                                          'patcount' => 1,
44396                                                                          'actcount' => 0,
44397                                                                          'items' => [
44398                                                                                       bless( {
44399                                                                                                'pattern' => 'JULIAN_DAY',
44400                                                                                                'hashname' => '__PATTERN1__',
44401                                                                                                'description' => '/JULIAN_DAY/i',
44402                                                                                                'lookahead' => 0,
44403                                                                                                'rdelim' => '/',
44404                                                                                                'line' => 443,
44405                                                                                                'mod' => 'i',
44406                                                                                                'ldelim' => '/'
44407                                                                                              }, 'Parse::RecDescent::Token' )
44408                                                                                     ],
44409                                                                          'line' => 443
44410                                                                        }, 'Parse::RecDescent::Production' ),
44411                                                                 bless( {
44412                                                                          'number' => '23',
44413                                                                          'strcount' => 0,
44414                                                                          'dircount' => 0,
44415                                                                          'uncommit' => undef,
44416                                                                          'error' => undef,
44417                                                                          'patcount' => 1,
44418                                                                          'actcount' => 0,
44419                                                                          'items' => [
44420                                                                                       bless( {
44421                                                                                                'pattern' => 'LCASE',
44422                                                                                                'hashname' => '__PATTERN1__',
44423                                                                                                'description' => '/LCASE/i',
44424                                                                                                'lookahead' => 0,
44425                                                                                                'rdelim' => '/',
44426                                                                                                'line' => 444,
44427                                                                                                'mod' => 'i',
44428                                                                                                'ldelim' => '/'
44429                                                                                              }, 'Parse::RecDescent::Token' )
44430                                                                                     ],
44431                                                                          'line' => 444
44432                                                                        }, 'Parse::RecDescent::Production' ),
44433                                                                 bless( {
44434                                                                          'number' => '24',
44435                                                                          'strcount' => 0,
44436                                                                          'dircount' => 0,
44437                                                                          'uncommit' => undef,
44438                                                                          'error' => undef,
44439                                                                          'patcount' => 1,
44440                                                                          'actcount' => 0,
44441                                                                          'items' => [
44442                                                                                       bless( {
44443                                                                                                'pattern' => 'LEFT',
44444                                                                                                'hashname' => '__PATTERN1__',
44445                                                                                                'description' => '/LEFT/i',
44446                                                                                                'lookahead' => 0,
44447                                                                                                'rdelim' => '/',
44448                                                                                                'line' => 445,
44449                                                                                                'mod' => 'i',
44450                                                                                                'ldelim' => '/'
44451                                                                                              }, 'Parse::RecDescent::Token' )
44452                                                                                     ],
44453                                                                          'line' => 445
44454                                                                        }, 'Parse::RecDescent::Production' ),
44455                                                                 bless( {
44456                                                                          'number' => '25',
44457                                                                          'strcount' => 0,
44458                                                                          'dircount' => 0,
44459                                                                          'uncommit' => undef,
44460                                                                          'error' => undef,
44461                                                                          'patcount' => 1,
44462                                                                          'actcount' => 0,
44463                                                                          'items' => [
44464                                                                                       bless( {
44465                                                                                                'pattern' => 'LN',
44466                                                                                                'hashname' => '__PATTERN1__',
44467                                                                                                'description' => '/LN/i',
44468                                                                                                'lookahead' => 0,
44469                                                                                                'rdelim' => '/',
44470                                                                                                'line' => 446,
44471                                                                                                'mod' => 'i',
44472                                                                                                'ldelim' => '/'
44473                                                                                              }, 'Parse::RecDescent::Token' )
44474                                                                                     ],
44475                                                                          'line' => 446
44476                                                                        }, 'Parse::RecDescent::Production' ),
44477                                                                 bless( {
44478                                                                          'number' => '26',
44479                                                                          'strcount' => 0,
44480                                                                          'dircount' => 0,
44481                                                                          'uncommit' => undef,
44482                                                                          'error' => undef,
44483                                                                          'patcount' => 1,
44484                                                                          'actcount' => 0,
44485                                                                          'items' => [
44486                                                                                       bless( {
44487                                                                                                'pattern' => 'LOCATE',
44488                                                                                                'hashname' => '__PATTERN1__',
44489                                                                                                'description' => '/LOCATE/i',
44490                                                                                                'lookahead' => 0,
44491                                                                                                'rdelim' => '/',
44492                                                                                                'line' => 447,
44493                                                                                                'mod' => 'i',
44494                                                                                                'ldelim' => '/'
44495                                                                                              }, 'Parse::RecDescent::Token' )
44496                                                                                     ],
44497                                                                          'line' => 447
44498                                                                        }, 'Parse::RecDescent::Production' ),
44499                                                                 bless( {
44500                                                                          'number' => '27',
44501                                                                          'strcount' => 0,
44502                                                                          'dircount' => 0,
44503                                                                          'uncommit' => undef,
44504                                                                          'error' => undef,
44505                                                                          'patcount' => 1,
44506                                                                          'actcount' => 0,
44507                                                                          'items' => [
44508                                                                                       bless( {
44509                                                                                                'pattern' => 'LOG',
44510                                                                                                'hashname' => '__PATTERN1__',
44511                                                                                                'description' => '/LOG/i',
44512                                                                                                'lookahead' => 0,
44513                                                                                                'rdelim' => '/',
44514                                                                                                'line' => 448,
44515                                                                                                'mod' => 'i',
44516                                                                                                'ldelim' => '/'
44517                                                                                              }, 'Parse::RecDescent::Token' )
44518                                                                                     ],
44519                                                                          'line' => 448
44520                                                                        }, 'Parse::RecDescent::Production' ),
44521                                                                 bless( {
44522                                                                          'number' => '28',
44523                                                                          'strcount' => 0,
44524                                                                          'dircount' => 0,
44525                                                                          'uncommit' => undef,
44526                                                                          'error' => undef,
44527                                                                          'patcount' => 1,
44528                                                                          'actcount' => 0,
44529                                                                          'items' => [
44530                                                                                       bless( {
44531                                                                                                'pattern' => 'LOG10',
44532                                                                                                'hashname' => '__PATTERN1__',
44533                                                                                                'description' => '/LOG10/i',
44534                                                                                                'lookahead' => 0,
44535                                                                                                'rdelim' => '/',
44536                                                                                                'line' => 449,
44537                                                                                                'mod' => 'i',
44538                                                                                                'ldelim' => '/'
44539                                                                                              }, 'Parse::RecDescent::Token' )
44540                                                                                     ],
44541                                                                          'line' => 449
44542                                                                        }, 'Parse::RecDescent::Production' ),
44543                                                                 bless( {
44544                                                                          'number' => '29',
44545                                                                          'strcount' => 0,
44546                                                                          'dircount' => 0,
44547                                                                          'uncommit' => undef,
44548                                                                          'error' => undef,
44549                                                                          'patcount' => 1,
44550                                                                          'actcount' => 0,
44551                                                                          'items' => [
44552                                                                                       bless( {
44553                                                                                                'pattern' => 'LTRIM',
44554                                                                                                'hashname' => '__PATTERN1__',
44555                                                                                                'description' => '/LTRIM/i',
44556                                                                                                'lookahead' => 0,
44557                                                                                                'rdelim' => '/',
44558                                                                                                'line' => 450,
44559                                                                                                'mod' => 'i',
44560                                                                                                'ldelim' => '/'
44561                                                                                              }, 'Parse::RecDescent::Token' )
44562                                                                                     ],
44563                                                                          'line' => 450
44564                                                                        }, 'Parse::RecDescent::Production' ),
44565                                                                 bless( {
44566                                                                          'number' => '30',
44567                                                                          'strcount' => 0,
44568                                                                          'dircount' => 0,
44569                                                                          'uncommit' => undef,
44570                                                                          'error' => undef,
44571                                                                          'patcount' => 1,
44572                                                                          'actcount' => 0,
44573                                                                          'items' => [
44574                                                                                       bless( {
44575                                                                                                'pattern' => 'MIDNIGHT_SECONDS',
44576                                                                                                'hashname' => '__PATTERN1__',
44577                                                                                                'description' => '/MIDNIGHT_SECONDS/i',
44578                                                                                                'lookahead' => 0,
44579                                                                                                'rdelim' => '/',
44580                                                                                                'line' => 451,
44581                                                                                                'mod' => 'i',
44582                                                                                                'ldelim' => '/'
44583                                                                                              }, 'Parse::RecDescent::Token' )
44584                                                                                     ],
44585                                                                          'line' => 451
44586                                                                        }, 'Parse::RecDescent::Production' ),
44587                                                                 bless( {
44588                                                                          'number' => '31',
44589                                                                          'strcount' => 0,
44590                                                                          'dircount' => 0,
44591                                                                          'uncommit' => undef,
44592                                                                          'error' => undef,
44593                                                                          'patcount' => 1,
44594                                                                          'actcount' => 0,
44595                                                                          'items' => [
44596                                                                                       bless( {
44597                                                                                                'pattern' => 'MOD',
44598                                                                                                'hashname' => '__PATTERN1__',
44599                                                                                                'description' => '/MOD/i',
44600                                                                                                'lookahead' => 0,
44601                                                                                                'rdelim' => '/',
44602                                                                                                'line' => 452,
44603                                                                                                'mod' => 'i',
44604                                                                                                'ldelim' => '/'
44605                                                                                              }, 'Parse::RecDescent::Token' )
44606                                                                                     ],
44607                                                                          'line' => 452
44608                                                                        }, 'Parse::RecDescent::Production' ),
44609                                                                 bless( {
44610                                                                          'number' => '32',
44611                                                                          'strcount' => 0,
44612                                                                          'dircount' => 0,
44613                                                                          'uncommit' => undef,
44614                                                                          'error' => undef,
44615                                                                          'patcount' => 1,
44616                                                                          'actcount' => 0,
44617                                                                          'items' => [
44618                                                                                       bless( {
44619                                                                                                'pattern' => 'MONTHNAME',
44620                                                                                                'hashname' => '__PATTERN1__',
44621                                                                                                'description' => '/MONTHNAME/i',
44622                                                                                                'lookahead' => 0,
44623                                                                                                'rdelim' => '/',
44624                                                                                                'line' => 453,
44625                                                                                                'mod' => 'i',
44626                                                                                                'ldelim' => '/'
44627                                                                                              }, 'Parse::RecDescent::Token' )
44628                                                                                     ],
44629                                                                          'line' => 453
44630                                                                        }, 'Parse::RecDescent::Production' ),
44631                                                                 bless( {
44632                                                                          'number' => '33',
44633                                                                          'strcount' => 0,
44634                                                                          'dircount' => 0,
44635                                                                          'uncommit' => undef,
44636                                                                          'error' => undef,
44637                                                                          'patcount' => 1,
44638                                                                          'actcount' => 0,
44639                                                                          'items' => [
44640                                                                                       bless( {
44641                                                                                                'pattern' => 'POWER',
44642                                                                                                'hashname' => '__PATTERN1__',
44643                                                                                                'description' => '/POWER/i',
44644                                                                                                'lookahead' => 0,
44645                                                                                                'rdelim' => '/',
44646                                                                                                'line' => 454,
44647                                                                                                'mod' => 'i',
44648                                                                                                'ldelim' => '/'
44649                                                                                              }, 'Parse::RecDescent::Token' )
44650                                                                                     ],
44651                                                                          'line' => 454
44652                                                                        }, 'Parse::RecDescent::Production' ),
44653                                                                 bless( {
44654                                                                          'number' => '34',
44655                                                                          'strcount' => 0,
44656                                                                          'dircount' => 0,
44657                                                                          'uncommit' => undef,
44658                                                                          'error' => undef,
44659                                                                          'patcount' => 1,
44660                                                                          'actcount' => 0,
44661                                                                          'items' => [
44662                                                                                       bless( {
44663                                                                                                'pattern' => 'PUT_ROUTINE_SAR',
44664                                                                                                'hashname' => '__PATTERN1__',
44665                                                                                                'description' => '/PUT_ROUTINE_SAR/i',
44666                                                                                                'lookahead' => 0,
44667                                                                                                'rdelim' => '/',
44668                                                                                                'line' => 455,
44669                                                                                                'mod' => 'i',
44670                                                                                                'ldelim' => '/'
44671                                                                                              }, 'Parse::RecDescent::Token' )
44672                                                                                     ],
44673                                                                          'line' => 455
44674                                                                        }, 'Parse::RecDescent::Production' ),
44675                                                                 bless( {
44676                                                                          'number' => '35',
44677                                                                          'strcount' => 0,
44678                                                                          'dircount' => 0,
44679                                                                          'uncommit' => undef,
44680                                                                          'error' => undef,
44681                                                                          'patcount' => 1,
44682                                                                          'actcount' => 0,
44683                                                                          'items' => [
44684                                                                                       bless( {
44685                                                                                                'pattern' => 'QUARTER',
44686                                                                                                'hashname' => '__PATTERN1__',
44687                                                                                                'description' => '/QUARTER/i',
44688                                                                                                'lookahead' => 0,
44689                                                                                                'rdelim' => '/',
44690                                                                                                'line' => 456,
44691                                                                                                'mod' => 'i',
44692                                                                                                'ldelim' => '/'
44693                                                                                              }, 'Parse::RecDescent::Token' )
44694                                                                                     ],
44695                                                                          'line' => 456
44696                                                                        }, 'Parse::RecDescent::Production' ),
44697                                                                 bless( {
44698                                                                          'number' => '36',
44699                                                                          'strcount' => 0,
44700                                                                          'dircount' => 0,
44701                                                                          'uncommit' => undef,
44702                                                                          'error' => undef,
44703                                                                          'patcount' => 1,
44704                                                                          'actcount' => 0,
44705                                                                          'items' => [
44706                                                                                       bless( {
44707                                                                                                'pattern' => 'RADIANS',
44708                                                                                                'hashname' => '__PATTERN1__',
44709                                                                                                'description' => '/RADIANS/i',
44710                                                                                                'lookahead' => 0,
44711                                                                                                'rdelim' => '/',
44712                                                                                                'line' => 457,
44713                                                                                                'mod' => 'i',
44714                                                                                                'ldelim' => '/'
44715                                                                                              }, 'Parse::RecDescent::Token' )
44716                                                                                     ],
44717                                                                          'line' => 457
44718                                                                        }, 'Parse::RecDescent::Production' ),
44719                                                                 bless( {
44720                                                                          'number' => '37',
44721                                                                          'strcount' => 0,
44722                                                                          'dircount' => 0,
44723                                                                          'uncommit' => undef,
44724                                                                          'error' => undef,
44725                                                                          'patcount' => 1,
44726                                                                          'actcount' => 0,
44727                                                                          'items' => [
44728                                                                                       bless( {
44729                                                                                                'pattern' => 'RAND',
44730                                                                                                'hashname' => '__PATTERN1__',
44731                                                                                                'description' => '/RAND/i',
44732                                                                                                'lookahead' => 0,
44733                                                                                                'rdelim' => '/',
44734                                                                                                'line' => 458,
44735                                                                                                'mod' => 'i',
44736                                                                                                'ldelim' => '/'
44737                                                                                              }, 'Parse::RecDescent::Token' )
44738                                                                                     ],
44739                                                                          'line' => 458
44740                                                                        }, 'Parse::RecDescent::Production' ),
44741                                                                 bless( {
44742                                                                          'number' => '38',
44743                                                                          'strcount' => 0,
44744                                                                          'dircount' => 0,
44745                                                                          'uncommit' => undef,
44746                                                                          'error' => undef,
44747                                                                          'patcount' => 1,
44748                                                                          'actcount' => 0,
44749                                                                          'items' => [
44750                                                                                       bless( {
44751                                                                                                'pattern' => 'REPEAT',
44752                                                                                                'hashname' => '__PATTERN1__',
44753                                                                                                'description' => '/REPEAT/i',
44754                                                                                                'lookahead' => 0,
44755                                                                                                'rdelim' => '/',
44756                                                                                                'line' => 459,
44757                                                                                                'mod' => 'i',
44758                                                                                                'ldelim' => '/'
44759                                                                                              }, 'Parse::RecDescent::Token' )
44760                                                                                     ],
44761                                                                          'line' => 459
44762                                                                        }, 'Parse::RecDescent::Production' ),
44763                                                                 bless( {
44764                                                                          'number' => '39',
44765                                                                          'strcount' => 0,
44766                                                                          'dircount' => 0,
44767                                                                          'uncommit' => undef,
44768                                                                          'error' => undef,
44769                                                                          'patcount' => 1,
44770                                                                          'actcount' => 0,
44771                                                                          'items' => [
44772                                                                                       bless( {
44773                                                                                                'pattern' => 'REPLACE',
44774                                                                                                'hashname' => '__PATTERN1__',
44775                                                                                                'description' => '/REPLACE/i',
44776                                                                                                'lookahead' => 0,
44777                                                                                                'rdelim' => '/',
44778                                                                                                'line' => 460,
44779                                                                                                'mod' => 'i',
44780                                                                                                'ldelim' => '/'
44781                                                                                              }, 'Parse::RecDescent::Token' )
44782                                                                                     ],
44783                                                                          'line' => 460
44784                                                                        }, 'Parse::RecDescent::Production' ),
44785                                                                 bless( {
44786                                                                          'number' => '40',
44787                                                                          'strcount' => 0,
44788                                                                          'dircount' => 0,
44789                                                                          'uncommit' => undef,
44790                                                                          'error' => undef,
44791                                                                          'patcount' => 1,
44792                                                                          'actcount' => 0,
44793                                                                          'items' => [
44794                                                                                       bless( {
44795                                                                                                'pattern' => 'RIGHT',
44796                                                                                                'hashname' => '__PATTERN1__',
44797                                                                                                'description' => '/RIGHT/i',
44798                                                                                                'lookahead' => 0,
44799                                                                                                'rdelim' => '/',
44800                                                                                                'line' => 461,
44801                                                                                                'mod' => 'i',
44802                                                                                                'ldelim' => '/'
44803                                                                                              }, 'Parse::RecDescent::Token' )
44804                                                                                     ],
44805                                                                          'line' => 461
44806                                                                        }, 'Parse::RecDescent::Production' ),
44807                                                                 bless( {
44808                                                                          'number' => '41',
44809                                                                          'strcount' => 0,
44810                                                                          'dircount' => 0,
44811                                                                          'uncommit' => undef,
44812                                                                          'error' => undef,
44813                                                                          'patcount' => 1,
44814                                                                          'actcount' => 0,
44815                                                                          'items' => [
44816                                                                                       bless( {
44817                                                                                                'pattern' => 'ROUND',
44818                                                                                                'hashname' => '__PATTERN1__',
44819                                                                                                'description' => '/ROUND/i',
44820                                                                                                'lookahead' => 0,
44821                                                                                                'rdelim' => '/',
44822                                                                                                'line' => 462,
44823                                                                                                'mod' => 'i',
44824                                                                                                'ldelim' => '/'
44825                                                                                              }, 'Parse::RecDescent::Token' )
44826                                                                                     ],
44827                                                                          'line' => 462
44828                                                                        }, 'Parse::RecDescent::Production' ),
44829                                                                 bless( {
44830                                                                          'number' => '42',
44831                                                                          'strcount' => 0,
44832                                                                          'dircount' => 0,
44833                                                                          'uncommit' => undef,
44834                                                                          'error' => undef,
44835                                                                          'patcount' => 1,
44836                                                                          'actcount' => 0,
44837                                                                          'items' => [
44838                                                                                       bless( {
44839                                                                                                'pattern' => 'RTRIM',
44840                                                                                                'hashname' => '__PATTERN1__',
44841                                                                                                'description' => '/RTRIM/',
44842                                                                                                'lookahead' => 0,
44843                                                                                                'rdelim' => '/',
44844                                                                                                'line' => 463,
44845                                                                                                'mod' => '',
44846                                                                                                'ldelim' => '/'
44847                                                                                              }, 'Parse::RecDescent::Token' ),
44848                                                                                       bless( {
44849                                                                                                'subrule' => 'I',
44850                                                                                                'matchrule' => 0,
44851                                                                                                'implicit' => undef,
44852                                                                                                'argcode' => undef,
44853                                                                                                'lookahead' => 0,
44854                                                                                                'line' => 463
44855                                                                                              }, 'Parse::RecDescent::Subrule' )
44856                                                                                     ],
44857                                                                          'line' => 463
44858                                                                        }, 'Parse::RecDescent::Production' ),
44859                                                                 bless( {
44860                                                                          'number' => '43',
44861                                                                          'strcount' => 0,
44862                                                                          'dircount' => 0,
44863                                                                          'uncommit' => undef,
44864                                                                          'error' => undef,
44865                                                                          'patcount' => 1,
44866                                                                          'actcount' => 0,
44867                                                                          'items' => [
44868                                                                                       bless( {
44869                                                                                                'pattern' => 'SIGN',
44870                                                                                                'hashname' => '__PATTERN1__',
44871                                                                                                'description' => '/SIGN/i',
44872                                                                                                'lookahead' => 0,
44873                                                                                                'rdelim' => '/',
44874                                                                                                'line' => 464,
44875                                                                                                'mod' => 'i',
44876                                                                                                'ldelim' => '/'
44877                                                                                              }, 'Parse::RecDescent::Token' )
44878                                                                                     ],
44879                                                                          'line' => 464
44880                                                                        }, 'Parse::RecDescent::Production' ),
44881                                                                 bless( {
44882                                                                          'number' => '44',
44883                                                                          'strcount' => 0,
44884                                                                          'dircount' => 0,
44885                                                                          'uncommit' => undef,
44886                                                                          'error' => undef,
44887                                                                          'patcount' => 1,
44888                                                                          'actcount' => 0,
44889                                                                          'items' => [
44890                                                                                       bless( {
44891                                                                                                'pattern' => 'SIN',
44892                                                                                                'hashname' => '__PATTERN1__',
44893                                                                                                'description' => '/SIN/i',
44894                                                                                                'lookahead' => 0,
44895                                                                                                'rdelim' => '/',
44896                                                                                                'line' => 465,
44897                                                                                                'mod' => 'i',
44898                                                                                                'ldelim' => '/'
44899                                                                                              }, 'Parse::RecDescent::Token' )
44900                                                                                     ],
44901                                                                          'line' => 465
44902                                                                        }, 'Parse::RecDescent::Production' ),
44903                                                                 bless( {
44904                                                                          'number' => '45',
44905                                                                          'strcount' => 0,
44906                                                                          'dircount' => 0,
44907                                                                          'uncommit' => undef,
44908                                                                          'error' => undef,
44909                                                                          'patcount' => 1,
44910                                                                          'actcount' => 0,
44911                                                                          'items' => [
44912                                                                                       bless( {
44913                                                                                                'pattern' => 'SOUNDEX',
44914                                                                                                'hashname' => '__PATTERN1__',
44915                                                                                                'description' => '/SOUNDEX/i',
44916                                                                                                'lookahead' => 0,
44917                                                                                                'rdelim' => '/',
44918                                                                                                'line' => 466,
44919                                                                                                'mod' => 'i',
44920                                                                                                'ldelim' => '/'
44921                                                                                              }, 'Parse::RecDescent::Token' )
44922                                                                                     ],
44923                                                                          'line' => 466
44924                                                                        }, 'Parse::RecDescent::Production' ),
44925                                                                 bless( {
44926                                                                          'number' => '46',
44927                                                                          'strcount' => 0,
44928                                                                          'dircount' => 0,
44929                                                                          'uncommit' => undef,
44930                                                                          'error' => undef,
44931                                                                          'patcount' => 1,
44932                                                                          'actcount' => 0,
44933                                                                          'items' => [
44934                                                                                       bless( {
44935                                                                                                'pattern' => 'SPACE',
44936                                                                                                'hashname' => '__PATTERN1__',
44937                                                                                                'description' => '/SPACE/i',
44938                                                                                                'lookahead' => 0,
44939                                                                                                'rdelim' => '/',
44940                                                                                                'line' => 467,
44941                                                                                                'mod' => 'i',
44942                                                                                                'ldelim' => '/'
44943                                                                                              }, 'Parse::RecDescent::Token' )
44944                                                                                     ],
44945                                                                          'line' => 467
44946                                                                        }, 'Parse::RecDescent::Production' ),
44947                                                                 bless( {
44948                                                                          'number' => '47',
44949                                                                          'strcount' => 0,
44950                                                                          'dircount' => 0,
44951                                                                          'uncommit' => undef,
44952                                                                          'error' => undef,
44953                                                                          'patcount' => 1,
44954                                                                          'actcount' => 0,
44955                                                                          'items' => [
44956                                                                                       bless( {
44957                                                                                                'pattern' => 'SQLCACHE_SNAPSHOT',
44958                                                                                                'hashname' => '__PATTERN1__',
44959                                                                                                'description' => '/SQLCACHE_SNAPSHOT/i',
44960                                                                                                'lookahead' => 0,
44961                                                                                                'rdelim' => '/',
44962                                                                                                'line' => 468,
44963                                                                                                'mod' => 'i',
44964                                                                                                'ldelim' => '/'
44965                                                                                              }, 'Parse::RecDescent::Token' )
44966                                                                                     ],
44967                                                                          'line' => 468
44968                                                                        }, 'Parse::RecDescent::Production' ),
44969                                                                 bless( {
44970                                                                          'number' => '48',
44971                                                                          'strcount' => 0,
44972                                                                          'dircount' => 0,
44973                                                                          'uncommit' => undef,
44974                                                                          'error' => undef,
44975                                                                          'patcount' => 1,
44976                                                                          'actcount' => 0,
44977                                                                          'items' => [
44978                                                                                       bless( {
44979                                                                                                'pattern' => 'SQRT',
44980                                                                                                'hashname' => '__PATTERN1__',
44981                                                                                                'description' => '/SQRT/i',
44982                                                                                                'lookahead' => 0,
44983                                                                                                'rdelim' => '/',
44984                                                                                                'line' => 469,
44985                                                                                                'mod' => 'i',
44986                                                                                                'ldelim' => '/'
44987                                                                                              }, 'Parse::RecDescent::Token' )
44988                                                                                     ],
44989                                                                          'line' => 469
44990                                                                        }, 'Parse::RecDescent::Production' ),
44991                                                                 bless( {
44992                                                                          'number' => '49',
44993                                                                          'strcount' => 0,
44994                                                                          'dircount' => 0,
44995                                                                          'uncommit' => undef,
44996                                                                          'error' => undef,
44997                                                                          'patcount' => 1,
44998                                                                          'actcount' => 0,
44999                                                                          'items' => [
45000                                                                                       bless( {
45001                                                                                                'pattern' => 'TAN',
45002                                                                                                'hashname' => '__PATTERN1__',
45003                                                                                                'description' => '/TAN/i',
45004                                                                                                'lookahead' => 0,
45005                                                                                                'rdelim' => '/',
45006                                                                                                'line' => 470,
45007                                                                                                'mod' => 'i',
45008                                                                                                'ldelim' => '/'
45009                                                                                              }, 'Parse::RecDescent::Token' )
45010                                                                                     ],
45011                                                                          'line' => 470
45012                                                                        }, 'Parse::RecDescent::Production' ),
45013                                                                 bless( {
45014                                                                          'number' => '50',
45015                                                                          'strcount' => 0,
45016                                                                          'dircount' => 0,
45017                                                                          'uncommit' => undef,
45018                                                                          'error' => undef,
45019                                                                          'patcount' => 1,
45020                                                                          'actcount' => 0,
45021                                                                          'items' => [
45022                                                                                       bless( {
45023                                                                                                'pattern' => 'TIMESTAMP_ISO',
45024                                                                                                'hashname' => '__PATTERN1__',
45025                                                                                                'description' => '/TIMESTAMP_ISO/i',
45026                                                                                                'lookahead' => 0,
45027                                                                                                'rdelim' => '/',
45028                                                                                                'line' => 471,
45029                                                                                                'mod' => 'i',
45030                                                                                                'ldelim' => '/'
45031                                                                                              }, 'Parse::RecDescent::Token' )
45032                                                                                     ],
45033                                                                          'line' => 471
45034                                                                        }, 'Parse::RecDescent::Production' ),
45035                                                                 bless( {
45036                                                                          'number' => '51',
45037                                                                          'strcount' => 0,
45038                                                                          'dircount' => 0,
45039                                                                          'uncommit' => undef,
45040                                                                          'error' => undef,
45041                                                                          'patcount' => 1,
45042                                                                          'actcount' => 0,
45043                                                                          'items' => [
45044                                                                                       bless( {
45045                                                                                                'pattern' => 'TIMESTAMPDIFF',
45046                                                                                                'hashname' => '__PATTERN1__',
45047                                                                                                'description' => '/TIMESTAMPDIFF/i',
45048                                                                                                'lookahead' => 0,
45049                                                                                                'rdelim' => '/',
45050                                                                                                'line' => 472,
45051                                                                                                'mod' => 'i',
45052                                                                                                'ldelim' => '/'
45053                                                                                              }, 'Parse::RecDescent::Token' )
45054                                                                                     ],
45055                                                                          'line' => 472
45056                                                                        }, 'Parse::RecDescent::Production' ),
45057                                                                 bless( {
45058                                                                          'number' => '52',
45059                                                                          'strcount' => 0,
45060                                                                          'dircount' => 0,
45061                                                                          'uncommit' => undef,
45062                                                                          'error' => undef,
45063                                                                          'patcount' => 0,
45064                                                                          'actcount' => 0,
45065                                                                          'items' => [
45066                                                                                       bless( {
45067                                                                                                'subrule' => '_alternation_1_of_production_53_of_rule_sysfun',
45068                                                                                                'matchrule' => 0,
45069                                                                                                'implicit' => '/TRUNCATE/i, or /TRUNC/i',
45070                                                                                                'argcode' => undef,
45071                                                                                                'lookahead' => 0,
45072                                                                                                'line' => 473
45073                                                                                              }, 'Parse::RecDescent::Subrule' )
45074                                                                                     ],
45075                                                                          'line' => 473
45076                                                                        }, 'Parse::RecDescent::Production' ),
45077                                                                 bless( {
45078                                                                          'number' => '53',
45079                                                                          'strcount' => 0,
45080                                                                          'dircount' => 0,
45081                                                                          'uncommit' => undef,
45082                                                                          'error' => undef,
45083                                                                          'patcount' => 1,
45084                                                                          'actcount' => 0,
45085                                                                          'items' => [
45086                                                                                       bless( {
45087                                                                                                'pattern' => 'UCASE',
45088                                                                                                'hashname' => '__PATTERN1__',
45089                                                                                                'description' => '/UCASE/i',
45090                                                                                                'lookahead' => 0,
45091                                                                                                'rdelim' => '/',
45092                                                                                                'line' => 474,
45093                                                                                                'mod' => 'i',
45094                                                                                                'ldelim' => '/'
45095                                                                                              }, 'Parse::RecDescent::Token' )
45096                                                                                     ],
45097                                                                          'line' => 474
45098                                                                        }, 'Parse::RecDescent::Production' ),
45099                                                                 bless( {
45100                                                                          'number' => '54',
45101                                                                          'strcount' => 0,
45102                                                                          'dircount' => 0,
45103                                                                          'uncommit' => undef,
45104                                                                          'error' => undef,
45105                                                                          'patcount' => 1,
45106                                                                          'actcount' => 0,
45107                                                                          'items' => [
45108                                                                                       bless( {
45109                                                                                                'pattern' => 'WEEK',
45110                                                                                                'hashname' => '__PATTERN1__',
45111                                                                                                'description' => '/WEEK/i',
45112                                                                                                'lookahead' => 0,
45113                                                                                                'rdelim' => '/',
45114                                                                                                'line' => 475,
45115                                                                                                'mod' => 'i',
45116                                                                                                'ldelim' => '/'
45117                                                                                              }, 'Parse::RecDescent::Token' )
45118                                                                                     ],
45119                                                                          'line' => 475
45120                                                                        }, 'Parse::RecDescent::Production' ),
45121                                                                 bless( {
45122                                                                          'number' => '55',
45123                                                                          'strcount' => 0,
45124                                                                          'dircount' => 0,
45125                                                                          'uncommit' => undef,
45126                                                                          'error' => undef,
45127                                                                          'patcount' => 1,
45128                                                                          'actcount' => 0,
45129                                                                          'items' => [
45130                                                                                       bless( {
45131                                                                                                'pattern' => 'WEEK_ISO',
45132                                                                                                'hashname' => '__PATTERN1__',
45133                                                                                                'description' => '/WEEK_ISO/i',
45134                                                                                                'lookahead' => 0,
45135                                                                                                'rdelim' => '/',
45136                                                                                                'line' => 476,
45137                                                                                                'mod' => 'i',
45138                                                                                                'ldelim' => '/'
45139                                                                                              }, 'Parse::RecDescent::Token' )
45140                                                                                     ],
45141                                                                          'line' => 476
45142                                                                        }, 'Parse::RecDescent::Production' )
45143                                                               ],
45144                                                    'name' => 'sysfun',
45145                                                    'vars' => '',
45146                                                    'line' => 421
45147                                                  }, 'Parse::RecDescent::Rule' ),
45148                               '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond' => bless( {
45149                                                                                                                                'impcount' => 0,
45150                                                                                                                                'calls' => [
45151                                                                                                                                             'numeric_constant'
45152                                                                                                                                           ],
45153                                                                                                                                'changed' => 0,
45154                                                                                                                                'opcount' => 0,
45155                                                                                                                                'prods' => [
45156                                                                                                                                             bless( {
45157                                                                                                                                                      'number' => '0',
45158                                                                                                                                                      'strcount' => 0,
45159                                                                                                                                                      'dircount' => 0,
45160                                                                                                                                                      'uncommit' => undef,
45161                                                                                                                                                      'error' => undef,
45162                                                                                                                                                      'patcount' => 1,
45163                                                                                                                                                      'actcount' => 0,
45164                                                                                                                                                      'items' => [
45165                                                                                                                                                                   bless( {
45166                                                                                                                                                                            'pattern' => 'SELECTIVITY',
45167                                                                                                                                                                            'hashname' => '__PATTERN1__',
45168                                                                                                                                                                            'description' => '/SELECTIVITY/i',
45169                                                                                                                                                                            'lookahead' => 0,
45170                                                                                                                                                                            'rdelim' => '/',
45171                                                                                                                                                                            'line' => 628,
45172                                                                                                                                                                            'mod' => 'i',
45173                                                                                                                                                                            'ldelim' => '/'
45174                                                                                                                                                                          }, 'Parse::RecDescent::Token' ),
45175                                                                                                                                                                   bless( {
45176                                                                                                                                                                            'subrule' => 'numeric_constant',
45177                                                                                                                                                                            'matchrule' => 0,
45178                                                                                                                                                                            'implicit' => undef,
45179                                                                                                                                                                            'argcode' => undef,
45180                                                                                                                                                                            'lookahead' => 0,
45181                                                                                                                                                                            'line' => 628
45182                                                                                                                                                                          }, 'Parse::RecDescent::Subrule' )
45183                                                                                                                                                                 ],
45184                                                                                                                                                      'line' => undef
45185                                                                                                                                                    }, 'Parse::RecDescent::Production' )
45186                                                                                                                                           ],
45187                                                                                                                                'name' => '_alternation_1_of_production_1_of_rule__alternation_2_of_production_1_of_rule_cond',
45188                                                                                                                                'vars' => '',
45189                                                                                                                                'line' => 628
45190                                                                                                                              }, 'Parse::RecDescent::Rule' ),
45191                               'NAME' => bless( {
45192                                                  'impcount' => 0,
45193                                                  'calls' => [],
45194                                                  'changed' => 0,
45195                                                  'opcount' => 0,
45196                                                  'prods' => [
45197                                                               bless( {
45198                                                                        'number' => '0',
45199                                                                        'strcount' => 0,
45200                                                                        'dircount' => 0,
45201                                                                        'uncommit' => undef,
45202                                                                        'error' => undef,
45203                                                                        'patcount' => 1,
45204                                                                        'actcount' => 0,
45205                                                                        'items' => [
45206                                                                                     bless( {
45207                                                                                              'pattern' => '\\w+',
45208                                                                                              'hashname' => '__PATTERN1__',
45209                                                                                              'description' => '/\\\\w+/',
45210                                                                                              'lookahead' => 0,
45211                                                                                              'rdelim' => '/',
45212                                                                                              'line' => 146,
45213                                                                                              'mod' => '',
45214                                                                                              'ldelim' => '/'
45215                                                                                            }, 'Parse::RecDescent::Token' )
45216                                                                                   ],
45217                                                                        'line' => undef
45218                                                                      }, 'Parse::RecDescent::Production' ),
45219                                                               bless( {
45220                                                                        'number' => '1',
45221                                                                        'strcount' => 0,
45222                                                                        'dircount' => 0,
45223                                                                        'uncommit' => undef,
45224                                                                        'error' => undef,
45225                                                                        'patcount' => 1,
45226                                                                        'actcount' => 0,
45227                                                                        'items' => [
45228                                                                                     bless( {
45229                                                                                              'pattern' => '\\w{1,18}',
45230                                                                                              'hashname' => '__PATTERN1__',
45231                                                                                              'description' => '/\\\\w\\{1,18\\}/',
45232                                                                                              'lookahead' => 0,
45233                                                                                              'rdelim' => '/',
45234                                                                                              'line' => 148,
45235                                                                                              'mod' => '',
45236                                                                                              'ldelim' => '/'
45237                                                                                            }, 'Parse::RecDescent::Token' )
45238                                                                                   ],
45239                                                                        'line' => undef
45240                                                                      }, 'Parse::RecDescent::Production' )
45241                                                             ],
45242                                                  'name' => 'NAME',
45243                                                  'vars' => '',
45244                                                  'line' => 146
45245                                                }, 'Parse::RecDescent::Rule' ),
45246                               'constant' => bless( {
45247                                                      'impcount' => 0,
45248                                                      'calls' => [
45249                                                                   'int_const',
45250                                                                   'float_const',
45251                                                                   'dec_const',
45252                                                                   'char_const',
45253                                                                   'hex_const',
45254                                                                   'grastr_const'
45255                                                                 ],
45256                                                      'changed' => 0,
45257                                                      'opcount' => 0,
45258                                                      'prods' => [
45259                                                                   bless( {
45260                                                                            'number' => '0',
45261                                                                            'strcount' => 0,
45262                                                                            'dircount' => 0,
45263                                                                            'uncommit' => undef,
45264                                                                            'error' => undef,
45265                                                                            'patcount' => 0,
45266                                                                            'actcount' => 0,
45267                                                                            'items' => [
45268                                                                                         bless( {
45269                                                                                                  'subrule' => 'int_const',
45270                                                                                                  'matchrule' => 0,
45271                                                                                                  'implicit' => undef,
45272                                                                                                  'argcode' => undef,
45273                                                                                                  'lookahead' => 0,
45274                                                                                                  'line' => 328
45275                                                                                                }, 'Parse::RecDescent::Subrule' )
45276                                                                                       ],
45277                                                                            'line' => undef
45278                                                                          }, 'Parse::RecDescent::Production' ),
45279                                                                   bless( {
45280                                                                            'number' => '1',
45281                                                                            'strcount' => 0,
45282                                                                            'dircount' => 0,
45283                                                                            'uncommit' => undef,
45284                                                                            'error' => undef,
45285                                                                            'patcount' => 0,
45286                                                                            'actcount' => 0,
45287                                                                            'items' => [
45288                                                                                         bless( {
45289                                                                                                  'subrule' => 'float_const',
45290                                                                                                  'matchrule' => 0,
45291                                                                                                  'implicit' => undef,
45292                                                                                                  'argcode' => undef,
45293                                                                                                  'lookahead' => 0,
45294                                                                                                  'line' => 328
45295                                                                                                }, 'Parse::RecDescent::Subrule' )
45296                                                                                       ],
45297                                                                            'line' => 328
45298                                                                          }, 'Parse::RecDescent::Production' ),
45299                                                                   bless( {
45300                                                                            'number' => '2',
45301                                                                            'strcount' => 0,
45302                                                                            'dircount' => 0,
45303                                                                            'uncommit' => undef,
45304                                                                            'error' => undef,
45305                                                                            'patcount' => 0,
45306                                                                            'actcount' => 0,
45307                                                                            'items' => [
45308                                                                                         bless( {
45309                                                                                                  'subrule' => 'dec_const',
45310                                                                                                  'matchrule' => 0,
45311                                                                                                  'implicit' => undef,
45312                                                                                                  'argcode' => undef,
45313                                                                                                  'lookahead' => 0,
45314                                                                                                  'line' => 328
45315                                                                                                }, 'Parse::RecDescent::Subrule' )
45316                                                                                       ],
45317                                                                            'line' => 328
45318                                                                          }, 'Parse::RecDescent::Production' ),
45319                                                                   bless( {
45320                                                                            'number' => '3',
45321                                                                            'strcount' => 0,
45322                                                                            'dircount' => 0,
45323                                                                            'uncommit' => undef,
45324                                                                            'error' => undef,
45325                                                                            'patcount' => 0,
45326                                                                            'actcount' => 0,
45327                                                                            'items' => [
45328                                                                                         bless( {
45329                                                                                                  'subrule' => 'char_const',
45330                                                                                                  'matchrule' => 0,
45331                                                                                                  'implicit' => undef,
45332                                                                                                  'argcode' => undef,
45333                                                                                                  'lookahead' => 0,
45334                                                                                                  'line' => 328
45335                                                                                                }, 'Parse::RecDescent::Subrule' )
45336                                                                                       ],
45337                                                                            'line' => 328
45338                                                                          }, 'Parse::RecDescent::Production' ),
45339                                                                   bless( {
45340                                                                            'number' => '4',
45341                                                                            'strcount' => 0,
45342                                                                            'dircount' => 0,
45343                                                                            'uncommit' => undef,
45344                                                                            'error' => undef,
45345                                                                            'patcount' => 0,
45346                                                                            'actcount' => 0,
45347                                                                            'items' => [
45348                                                                                         bless( {
45349                                                                                                  'subrule' => 'hex_const',
45350                                                                                                  'matchrule' => 0,
45351                                                                                                  'implicit' => undef,
45352                                                                                                  'argcode' => undef,
45353                                                                                                  'lookahead' => 0,
45354                                                                                                  'line' => 328
45355                                                                                                }, 'Parse::RecDescent::Subrule' )
45356                                                                                       ],
45357                                                                            'line' => 328
45358                                                                          }, 'Parse::RecDescent::Production' ),
45359                                                                   bless( {
45360                                                                            'number' => '5',
45361                                                                            'strcount' => 0,
45362                                                                            'dircount' => 0,
45363                                                                            'uncommit' => undef,
45364                                                                            'error' => undef,
45365                                                                            'patcount' => 0,
45366                                                                            'actcount' => 0,
45367                                                                            'items' => [
45368                                                                                         bless( {
45369                                                                                                  'subrule' => 'grastr_const',
45370                                                                                                  'matchrule' => 0,
45371                                                                                                  'implicit' => undef,
45372                                                                                                  'argcode' => undef,
45373                                                                                                  'lookahead' => 0,
45374                                                                                                  'line' => 328
45375                                                                                                }, 'Parse::RecDescent::Subrule' )
45376                                                                                       ],
45377                                                                            'line' => 328
45378                                                                          }, 'Parse::RecDescent::Production' )
45379                                                                 ],
45380                                                      'name' => 'constant',
45381                                                      'vars' => '',
45382                                                      'line' => 328
45383                                                    }, 'Parse::RecDescent::Rule' ),
45384                               '_alternation_1_of_production_1_of_rule_ranking_function' => bless( {
45385                                                                                                     'impcount' => 0,
45386                                                                                                     'calls' => [],
45387                                                                                                     'changed' => 0,
45388                                                                                                     'opcount' => 0,
45389                                                                                                     'prods' => [
45390                                                                                                                  bless( {
45391                                                                                                                           'number' => '0',
45392                                                                                                                           'strcount' => 1,
45393                                                                                                                           'dircount' => 0,
45394                                                                                                                           'uncommit' => undef,
45395                                                                                                                           'error' => undef,
45396                                                                                                                           'patcount' => 1,
45397                                                                                                                           'actcount' => 0,
45398                                                                                                                           'items' => [
45399                                                                                                                                        bless( {
45400                                                                                                                                                 'pattern' => 'RANK',
45401                                                                                                                                                 'hashname' => '__PATTERN1__',
45402                                                                                                                                                 'description' => '/RANK/',
45403                                                                                                                                                 'lookahead' => 0,
45404                                                                                                                                                 'rdelim' => '/',
45405                                                                                                                                                 'line' => 626,
45406                                                                                                                                                 'mod' => '',
45407                                                                                                                                                 'ldelim' => '/'
45408                                                                                                                                               }, 'Parse::RecDescent::Token' ),
45409                                                                                                                                        bless( {
45410                                                                                                                                                 'pattern' => '()',
45411                                                                                                                                                 'hashname' => '__STRING1__',
45412                                                                                                                                                 'description' => '\'()\'',
45413                                                                                                                                                 'lookahead' => 0,
45414                                                                                                                                                 'line' => 626
45415                                                                                                                                               }, 'Parse::RecDescent::Literal' )
45416                                                                                                                                      ],
45417                                                                                                                           'line' => undef
45418                                                                                                                         }, 'Parse::RecDescent::Production' ),
45419                                                                                                                  bless( {
45420                                                                                                                           'number' => '1',
45421                                                                                                                           'strcount' => 1,
45422                                                                                                                           'dircount' => 0,
45423                                                                                                                           'uncommit' => undef,
45424                                                                                                                           'error' => undef,
45425                                                                                                                           'patcount' => 1,
45426                                                                                                                           'actcount' => 0,
45427                                                                                                                           'items' => [
45428                                                                                                                                        bless( {
45429                                                                                                                                                 'pattern' => 'DENSE_RANK|DENSERANK',
45430                                                                                                                                                 'hashname' => '__PATTERN1__',
45431                                                                                                                                                 'description' => '/DENSE_RANK|DENSERANK/i',
45432                                                                                                                                                 'lookahead' => 0,
45433                                                                                                                                                 'rdelim' => '/',
45434                                                                                                                                                 'line' => 627,
45435                                                                                                                                                 'mod' => 'i',
45436                                                                                                                                                 'ldelim' => '/'
45437                                                                                                                                               }, 'Parse::RecDescent::Token' ),
45438                                                                                                                                        bless( {
45439                                                                                                                                                 'pattern' => '()',
45440                                                                                                                                                 'hashname' => '__STRING1__',
45441                                                                                                                                                 'description' => '\'()\'',
45442                                                                                                                                                 'lookahead' => 0,
45443                                                                                                                                                 'line' => 627
45444                                                                                                                                               }, 'Parse::RecDescent::Literal' )
45445                                                                                                                                      ],
45446                                                                                                                           'line' => 627
45447                                                                                                                         }, 'Parse::RecDescent::Production' )
45448                                                                                                                ],
45449                                                                                                     'name' => '_alternation_1_of_production_1_of_rule_ranking_function',
45450                                                                                                     'vars' => '',
45451                                                                                                     'line' => 626
45452                                                                                                   }, 'Parse::RecDescent::Rule' ),
45453                               'window_aggregation_group_clause' => bless( {
45454                                                                             'impcount' => 2,
45455                                                                             'calls' => [
45456                                                                                          '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
45457                                                                                          '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause'
45458                                                                                        ],
45459                                                                             'changed' => 0,
45460                                                                             'opcount' => 0,
45461                                                                             'prods' => [
45462                                                                                          bless( {
45463                                                                                                   'number' => '0',
45464                                                                                                   'strcount' => 0,
45465                                                                                                   'dircount' => 0,
45466                                                                                                   'uncommit' => undef,
45467                                                                                                   'error' => undef,
45468                                                                                                   'patcount' => 0,
45469                                                                                                   'actcount' => 0,
45470                                                                                                   'items' => [
45471                                                                                                                bless( {
45472                                                                                                                         'subrule' => '_alternation_1_of_production_1_of_rule_window_aggregation_group_clause',
45473                                                                                                                         'matchrule' => 0,
45474                                                                                                                         'implicit' => '/ROWS/i, or /RANGE/i',
45475                                                                                                                         'argcode' => undef,
45476                                                                                                                         'lookahead' => 0,
45477                                                                                                                         'line' => 568
45478                                                                                                                       }, 'Parse::RecDescent::Subrule' ),
45479                                                                                                                bless( {
45480                                                                                                                         'subrule' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
45481                                                                                                                         'matchrule' => 0,
45482                                                                                                                         'implicit' => 'group_start, or group_between, or group_end',
45483                                                                                                                         'argcode' => undef,
45484                                                                                                                         'lookahead' => 0,
45485                                                                                                                         'line' => 572
45486                                                                                                                       }, 'Parse::RecDescent::Subrule' )
45487                                                                                                              ],
45488                                                                                                   'line' => undef
45489                                                                                                 }, 'Parse::RecDescent::Production' )
45490                                                                                        ],
45491                                                                             'name' => 'window_aggregation_group_clause',
45492                                                                             'vars' => '',
45493                                                                             'line' => 566
45494                                                                           }, 'Parse::RecDescent::Rule' ),
45495                               '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause' => bless( {
45496                                                                                                                    'impcount' => 0,
45497                                                                                                                    'calls' => [
45498                                                                                                                                 'group_start',
45499                                                                                                                                 'group_between',
45500                                                                                                                                 'group_end'
45501                                                                                                                               ],
45502                                                                                                                    'changed' => 0,
45503                                                                                                                    'opcount' => 0,
45504                                                                                                                    'prods' => [
45505                                                                                                                                 bless( {
45506                                                                                                                                          'number' => '0',
45507                                                                                                                                          'strcount' => 0,
45508                                                                                                                                          'dircount' => 0,
45509                                                                                                                                          'uncommit' => undef,
45510                                                                                                                                          'error' => undef,
45511                                                                                                                                          'patcount' => 0,
45512                                                                                                                                          'actcount' => 0,
45513                                                                                                                                          'items' => [
45514                                                                                                                                                       bless( {
45515                                                                                                                                                                'subrule' => 'group_start',
45516                                                                                                                                                                'matchrule' => 0,
45517                                                                                                                                                                'implicit' => undef,
45518                                                                                                                                                                'argcode' => undef,
45519                                                                                                                                                                'lookahead' => 0,
45520                                                                                                                                                                'line' => 625
45521                                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
45522                                                                                                                                                     ],
45523                                                                                                                                          'line' => undef
45524                                                                                                                                        }, 'Parse::RecDescent::Production' ),
45525                                                                                                                                 bless( {
45526                                                                                                                                          'number' => '1',
45527                                                                                                                                          'strcount' => 0,
45528                                                                                                                                          'dircount' => 0,
45529                                                                                                                                          'uncommit' => undef,
45530                                                                                                                                          'error' => undef,
45531                                                                                                                                          'patcount' => 0,
45532                                                                                                                                          'actcount' => 0,
45533                                                                                                                                          'items' => [
45534                                                                                                                                                       bless( {
45535                                                                                                                                                                'subrule' => 'group_between',
45536                                                                                                                                                                'matchrule' => 0,
45537                                                                                                                                                                'implicit' => undef,
45538                                                                                                                                                                'argcode' => undef,
45539                                                                                                                                                                'lookahead' => 0,
45540                                                                                                                                                                'line' => 626
45541                                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
45542                                                                                                                                                     ],
45543                                                                                                                                          'line' => 626
45544                                                                                                                                        }, 'Parse::RecDescent::Production' ),
45545                                                                                                                                 bless( {
45546                                                                                                                                          'number' => '2',
45547                                                                                                                                          'strcount' => 0,
45548                                                                                                                                          'dircount' => 0,
45549                                                                                                                                          'uncommit' => undef,
45550                                                                                                                                          'error' => undef,
45551                                                                                                                                          'patcount' => 0,
45552                                                                                                                                          'actcount' => 0,
45553                                                                                                                                          'items' => [
45554                                                                                                                                                       bless( {
45555                                                                                                                                                                'subrule' => 'group_end',
45556                                                                                                                                                                'matchrule' => 0,
45557                                                                                                                                                                'implicit' => undef,
45558                                                                                                                                                                'argcode' => undef,
45559                                                                                                                                                                'lookahead' => 0,
45560                                                                                                                                                                'line' => 627
45561                                                                                                                                                              }, 'Parse::RecDescent::Subrule' )
45562                                                                                                                                                     ],
45563                                                                                                                                          'line' => 627
45564                                                                                                                                        }, 'Parse::RecDescent::Production' )
45565                                                                                                                               ],
45566                                                                                                                    'name' => '_alternation_2_of_production_1_of_rule_window_aggregation_group_clause',
45567                                                                                                                    'vars' => '',
45568                                                                                                                    'line' => 625
45569                                                                                                                  }, 'Parse::RecDescent::Rule' ),
45570                               'VIEW' => bless( {
45571                                                  'impcount' => 0,
45572                                                  'calls' => [],
45573                                                  'changed' => 0,
45574                                                  'opcount' => 0,
45575                                                  'prods' => [
45576                                                               bless( {
45577                                                                        'number' => '0',
45578                                                                        'strcount' => 0,
45579                                                                        'dircount' => 0,
45580                                                                        'uncommit' => undef,
45581                                                                        'error' => undef,
45582                                                                        'patcount' => 1,
45583                                                                        'actcount' => 0,
45584                                                                        'items' => [
45585                                                                                     bless( {
45586                                                                                              'pattern' => 'view',
45587                                                                                              'hashname' => '__PATTERN1__',
45588                                                                                              'description' => '/view/i',
45589                                                                                              'lookahead' => 0,
45590                                                                                              'rdelim' => '/',
45591                                                                                              'line' => 105,
45592                                                                                              'mod' => 'i',
45593                                                                                              'ldelim' => '/'
45594                                                                                            }, 'Parse::RecDescent::Token' )
45595                                                                                   ],
45596                                                                        'line' => undef
45597                                                                      }, 'Parse::RecDescent::Production' )
45598                                                             ],
45599                                                  'name' => 'VIEW',
45600                                                  'vars' => '',
45601                                                  'line' => 105
45602                                                }, 'Parse::RecDescent::Rule' ),
45603                               'with_expression' => bless( {
45604                                                             'impcount' => 0,
45605                                                             'calls' => [
45606                                                                          'common_table_expression'
45607                                                                        ],
45608                                                             'changed' => 0,
45609                                                             'opcount' => 0,
45610                                                             'prods' => [
45611                                                                          bless( {
45612                                                                                   'number' => '0',
45613                                                                                   'strcount' => 0,
45614                                                                                   'dircount' => 1,
45615                                                                                   'uncommit' => undef,
45616                                                                                   'error' => undef,
45617                                                                                   'patcount' => 2,
45618                                                                                   'actcount' => 1,
45619                                                                                   'op' => [],
45620                                                                                   'items' => [
45621                                                                                                bless( {
45622                                                                                                         'pattern' => 'WITH',
45623                                                                                                         'hashname' => '__PATTERN1__',
45624                                                                                                         'description' => '/WITH/i',
45625                                                                                                         'lookahead' => 0,
45626                                                                                                         'rdelim' => '/',
45627                                                                                                         'line' => 89,
45628                                                                                                         'mod' => 'i',
45629                                                                                                         'ldelim' => '/'
45630                                                                                                       }, 'Parse::RecDescent::Token' ),
45631                                                                                                bless( {
45632                                                                                                         'expected' => '<leftop: common_table_expression /,/ common_table_expression>',
45633                                                                                                         'min' => 1,
45634                                                                                                         'name' => '\'common_table_expression(s)\'',
45635                                                                                                         'max' => 100000000,
45636                                                                                                         'leftarg' => bless( {
45637                                                                                                                               'subrule' => 'common_table_expression',
45638                                                                                                                               'matchrule' => 0,
45639                                                                                                                               'implicit' => undef,
45640                                                                                                                               'argcode' => undef,
45641                                                                                                                               'lookahead' => 0,
45642                                                                                                                               'line' => 89
45643                                                                                                                             }, 'Parse::RecDescent::Subrule' ),
45644                                                                                                         'rightarg' => bless( {
45645                                                                                                                                'subrule' => 'common_table_expression',
45646                                                                                                                                'matchrule' => 0,
45647                                                                                                                                'implicit' => undef,
45648                                                                                                                                'argcode' => undef,
45649                                                                                                                                'lookahead' => 0,
45650                                                                                                                                'line' => 89
45651                                                                                                                              }, 'Parse::RecDescent::Subrule' ),
45652                                                                                                         'hashname' => '__DIRECTIVE1__',
45653                                                                                                         'type' => 'leftop',
45654                                                                                                         'op' => bless( {
45655                                                                                                                          'pattern' => ',',
45656                                                                                                                          'hashname' => '__PATTERN2__',
45657                                                                                                                          'description' => '/,/',
45658                                                                                                                          'lookahead' => 0,
45659                                                                                                                          'rdelim' => '/',
45660                                                                                                                          'line' => 89,
45661                                                                                                                          'mod' => '',
45662                                                                                                                          'ldelim' => '/'
45663                                                                                                                        }, 'Parse::RecDescent::Token' )
45664                                                                                                       }, 'Parse::RecDescent::Operator' ),
45665                                                                                                bless( {
45666                                                                                                         'hashname' => '__ACTION1__',
45667                                                                                                         'lookahead' => 0,
45668                                                                                                         'line' => 90,
45669                                                                                                         'code' => '{
45670     $return = $item{\'common_table_expression\'};
45671 }'
45672                                                                                                       }, 'Parse::RecDescent::Action' )
45673                                                                                              ],
45674                                                                                   'line' => undef
45675                                                                                 }, 'Parse::RecDescent::Production' )
45676                                                                        ],
45677                                                             'name' => 'with_expression',
45678                                                             'vars' => '',
45679                                                             'line' => 87
45680                                                           }, 'Parse::RecDescent::Rule' ),
45681                               'numeric_constant' => bless( {
45682                                                              'impcount' => 0,
45683                                                              'calls' => [],
45684                                                              'changed' => 0,
45685                                                              'opcount' => 0,
45686                                                              'prods' => [
45687                                                                           bless( {
45688                                                                                    'number' => '0',
45689                                                                                    'strcount' => 0,
45690                                                                                    'dircount' => 0,
45691                                                                                    'uncommit' => undef,
45692                                                                                    'error' => undef,
45693                                                                                    'patcount' => 1,
45694                                                                                    'actcount' => 0,
45695                                                                                    'items' => [
45696                                                                                                 bless( {
45697                                                                                                          'pattern' => '\\d+',
45698                                                                                                          'hashname' => '__PATTERN1__',
45699                                                                                                          'description' => '/\\\\d+/',
45700                                                                                                          'lookahead' => 0,
45701                                                                                                          'rdelim' => '/',
45702                                                                                                          'line' => 140,
45703                                                                                                          'mod' => '',
45704                                                                                                          'ldelim' => '/'
45705                                                                                                        }, 'Parse::RecDescent::Token' )
45706                                                                                               ],
45707                                                                                    'line' => undef
45708                                                                                  }, 'Parse::RecDescent::Production' )
45709                                                                         ],
45710                                                              'name' => 'numeric_constant',
45711                                                              'vars' => '',
45712                                                              'line' => 140
45713                                                            }, 'Parse::RecDescent::Rule' ),
45714                               'old_new_table' => bless( {
45715                                                           'impcount' => 0,
45716                                                           'calls' => [
45717                                                                        'identifier'
45718                                                                      ],
45719                                                           'changed' => 0,
45720                                                           'opcount' => 0,
45721                                                           'prods' => [
45722                                                                        bless( {
45723                                                                                 'number' => '0',
45724                                                                                 'strcount' => 0,
45725                                                                                 'dircount' => 0,
45726                                                                                 'uncommit' => undef,
45727                                                                                 'error' => undef,
45728                                                                                 'patcount' => 2,
45729                                                                                 'actcount' => 1,
45730                                                                                 'items' => [
45731                                                                                              bless( {
45732                                                                                                       'pattern' => 'OLD_TABLE',
45733                                                                                                       'hashname' => '__PATTERN1__',
45734                                                                                                       'description' => '/OLD_TABLE/i',
45735                                                                                                       'lookahead' => 0,
45736                                                                                                       'rdelim' => '/',
45737                                                                                                       'line' => 291,
45738                                                                                                       'mod' => 'i',
45739                                                                                                       'ldelim' => '/'
45740                                                                                                     }, 'Parse::RecDescent::Token' ),
45741                                                                                              bless( {
45742                                                                                                       'pattern' => '(AS)?',
45743                                                                                                       'hashname' => '__PATTERN2__',
45744                                                                                                       'description' => '/(AS)?/i',
45745                                                                                                       'lookahead' => 0,
45746                                                                                                       'rdelim' => '/',
45747                                                                                                       'line' => 291,
45748                                                                                                       'mod' => 'i',
45749                                                                                                       'ldelim' => '/'
45750                                                                                                     }, 'Parse::RecDescent::Token' ),
45751                                                                                              bless( {
45752                                                                                                       'subrule' => 'identifier',
45753                                                                                                       'matchrule' => 0,
45754                                                                                                       'implicit' => undef,
45755                                                                                                       'argcode' => undef,
45756                                                                                                       'lookahead' => 0,
45757                                                                                                       'line' => 291
45758                                                                                                     }, 'Parse::RecDescent::Subrule' ),
45759                                                                                              bless( {
45760                                                                                                       'hashname' => '__ACTION1__',
45761                                                                                                       'lookahead' => 0,
45762                                                                                                       'line' => 292,
45763                                                                                                       'code' => '{ $return = join(\' \', @item[1..3] ) }'
45764                                                                                                     }, 'Parse::RecDescent::Action' )
45765                                                                                            ],
45766                                                                                 'line' => undef
45767                                                                               }, 'Parse::RecDescent::Production' ),
45768                                                                        bless( {
45769                                                                                 'number' => '1',
45770                                                                                 'strcount' => 0,
45771                                                                                 'dircount' => 0,
45772                                                                                 'uncommit' => undef,
45773                                                                                 'error' => undef,
45774                                                                                 'patcount' => 2,
45775                                                                                 'actcount' => 1,
45776                                                                                 'items' => [
45777                                                                                              bless( {
45778                                                                                                       'pattern' => 'NEW_TABLE',
45779                                                                                                       'hashname' => '__PATTERN1__',
45780                                                                                                       'description' => '/NEW_TABLE/i',
45781                                                                                                       'lookahead' => 0,
45782                                                                                                       'rdelim' => '/',
45783                                                                                                       'line' => 293,
45784                                                                                                       'mod' => 'i',
45785                                                                                                       'ldelim' => '/'
45786                                                                                                     }, 'Parse::RecDescent::Token' ),
45787                                                                                              bless( {
45788                                                                                                       'pattern' => '(AS)?',
45789                                                                                                       'hashname' => '__PATTERN2__',
45790                                                                                                       'description' => '/(AS)?/i',
45791                                                                                                       'lookahead' => 0,
45792                                                                                                       'rdelim' => '/',
45793                                                                                                       'line' => 293,
45794                                                                                                       'mod' => 'i',
45795                                                                                                       'ldelim' => '/'
45796                                                                                                     }, 'Parse::RecDescent::Token' ),
45797                                                                                              bless( {
45798                                                                                                       'subrule' => 'identifier',
45799                                                                                                       'matchrule' => 0,
45800                                                                                                       'implicit' => undef,
45801                                                                                                       'argcode' => undef,
45802                                                                                                       'lookahead' => 0,
45803                                                                                                       'line' => 293
45804                                                                                                     }, 'Parse::RecDescent::Subrule' ),
45805                                                                                              bless( {
45806                                                                                                       'hashname' => '__ACTION1__',
45807                                                                                                       'lookahead' => 0,
45808                                                                                                       'line' => 294,
45809                                                                                                       'code' => '{ $return = join(\' \', @item[1..3] ) }'
45810                                                                                                     }, 'Parse::RecDescent::Action' )
45811                                                                                            ],
45812                                                                                 'line' => 293
45813                                                                               }, 'Parse::RecDescent::Production' )
45814                                                                      ],
45815                                                           'name' => 'old_new_table',
45816                                                           'vars' => '',
45817                                                           'line' => 291
45818                                                         }, 'Parse::RecDescent::Rule' ),
45819                               '_alternation_1_of_production_1_of_rule_numbering_function' => bless( {
45820                                                                                                       'impcount' => 0,
45821                                                                                                       'calls' => [
45822                                                                                                                    'window_order_clause',
45823                                                                                                                    'window_aggregation_group_clause'
45824                                                                                                                  ],
45825                                                                                                       'changed' => 0,
45826                                                                                                       'opcount' => 0,
45827                                                                                                       'prods' => [
45828                                                                                                                    bless( {
45829                                                                                                                             'number' => '0',
45830                                                                                                                             'strcount' => 0,
45831                                                                                                                             'dircount' => 0,
45832                                                                                                                             'uncommit' => undef,
45833                                                                                                                             'error' => undef,
45834                                                                                                                             'patcount' => 0,
45835                                                                                                                             'actcount' => 0,
45836                                                                                                                             'items' => [
45837                                                                                                                                          bless( {
45838                                                                                                                                                   'subrule' => 'window_order_clause',
45839                                                                                                                                                   'matchrule' => 0,
45840                                                                                                                                                   'implicit' => undef,
45841                                                                                                                                                   'argcode' => undef,
45842                                                                                                                                                   'lookahead' => 0,
45843                                                                                                                                                   'line' => 627
45844                                                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
45845                                                                                                                                          bless( {
45846                                                                                                                                                   'subrule' => 'window_aggregation_group_clause',
45847                                                                                                                                                   'expected' => undef,
45848                                                                                                                                                   'min' => 0,
45849                                                                                                                                                   'argcode' => undef,
45850                                                                                                                                                   'max' => 1,
45851                                                                                                                                                   'matchrule' => 0,
45852                                                                                                                                                   'repspec' => '?',
45853                                                                                                                                                   'lookahead' => 0,
45854                                                                                                                                                   'line' => 627
45855                                                                                                                                                 }, 'Parse::RecDescent::Repetition' )
45856                                                                                                                                        ],
45857                                                                                                                             'line' => undef
45858                                                                                                                           }, 'Parse::RecDescent::Production' )
45859                                                                                                                  ],
45860                                                                                                       'name' => '_alternation_1_of_production_1_of_rule_numbering_function',
45861                                                                                                       'vars' => '',
45862                                                                                                       'line' => 627
45863                                                                                                     }, 'Parse::RecDescent::Rule' ),
45864                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause' => bless( {
45865                                                                                                                                                'impcount' => 0,
45866                                                                                                                                                'calls' => [
45867                                                                                                                                                             'result_expression'
45868                                                                                                                                                           ],
45869                                                                                                                                                'changed' => 0,
45870                                                                                                                                                'opcount' => 0,
45871                                                                                                                                                'prods' => [
45872                                                                                                                                                             bless( {
45873                                                                                                                                                                      'number' => '0',
45874                                                                                                                                                                      'strcount' => 0,
45875                                                                                                                                                                      'dircount' => 0,
45876                                                                                                                                                                      'uncommit' => undef,
45877                                                                                                                                                                      'error' => undef,
45878                                                                                                                                                                      'patcount' => 0,
45879                                                                                                                                                                      'actcount' => 0,
45880                                                                                                                                                                      'items' => [
45881                                                                                                                                                                                   bless( {
45882                                                                                                                                                                                            'subrule' => 'result_expression',
45883                                                                                                                                                                                            'matchrule' => 0,
45884                                                                                                                                                                                            'implicit' => undef,
45885                                                                                                                                                                                            'argcode' => undef,
45886                                                                                                                                                                                            'lookahead' => 0,
45887                                                                                                                                                                                            'line' => 626
45888                                                                                                                                                                                          }, 'Parse::RecDescent::Subrule' )
45889                                                                                                                                                                                 ],
45890                                                                                                                                                                      'line' => undef
45891                                                                                                                                                                    }, 'Parse::RecDescent::Production' ),
45892                                                                                                                                                             bless( {
45893                                                                                                                                                                      'number' => '1',
45894                                                                                                                                                                      'strcount' => 0,
45895                                                                                                                                                                      'dircount' => 0,
45896                                                                                                                                                                      'uncommit' => undef,
45897                                                                                                                                                                      'error' => undef,
45898                                                                                                                                                                      'patcount' => 1,
45899                                                                                                                                                                      'actcount' => 0,
45900                                                                                                                                                                      'items' => [
45901                                                                                                                                                                                   bless( {
45902                                                                                                                                                                                            'pattern' => 'NULL',
45903                                                                                                                                                                                            'hashname' => '__PATTERN1__',
45904                                                                                                                                                                                            'description' => '/NULL/i',
45905                                                                                                                                                                                            'lookahead' => 0,
45906                                                                                                                                                                                            'rdelim' => '/',
45907                                                                                                                                                                                            'line' => 627,
45908                                                                                                                                                                                            'mod' => 'i',
45909                                                                                                                                                                                            'ldelim' => '/'
45910                                                                                                                                                                                          }, 'Parse::RecDescent::Token' )
45911                                                                                                                                                                                 ],
45912                                                                                                                                                                      'line' => 627
45913                                                                                                                                                                    }, 'Parse::RecDescent::Production' )
45914                                                                                                                                                           ],
45915                                                                                                                                                'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_searched_when_clause',
45916                                                                                                                                                'vars' => '',
45917                                                                                                                                                'line' => 626
45918                                                                                                                                              }, 'Parse::RecDescent::Rule' ),
45919                               'old_new_corr' => bless( {
45920                                                          'impcount' => 0,
45921                                                          'calls' => [
45922                                                                       'correlation_name'
45923                                                                     ],
45924                                                          'changed' => 0,
45925                                                          'opcount' => 0,
45926                                                          'prods' => [
45927                                                                       bless( {
45928                                                                                'number' => '0',
45929                                                                                'strcount' => 0,
45930                                                                                'dircount' => 0,
45931                                                                                'uncommit' => undef,
45932                                                                                'error' => undef,
45933                                                                                'patcount' => 2,
45934                                                                                'actcount' => 1,
45935                                                                                'items' => [
45936                                                                                             bless( {
45937                                                                                                      'pattern' => 'OLD',
45938                                                                                                      'hashname' => '__PATTERN1__',
45939                                                                                                      'description' => '/OLD/i',
45940                                                                                                      'lookahead' => 0,
45941                                                                                                      'rdelim' => '/',
45942                                                                                                      'line' => 286,
45943                                                                                                      'mod' => 'i',
45944                                                                                                      'ldelim' => '/'
45945                                                                                                    }, 'Parse::RecDescent::Token' ),
45946                                                                                             bless( {
45947                                                                                                      'pattern' => '(AS)?',
45948                                                                                                      'hashname' => '__PATTERN2__',
45949                                                                                                      'description' => '/(AS)?/i',
45950                                                                                                      'lookahead' => 0,
45951                                                                                                      'rdelim' => '/',
45952                                                                                                      'line' => 286,
45953                                                                                                      'mod' => 'i',
45954                                                                                                      'ldelim' => '/'
45955                                                                                                    }, 'Parse::RecDescent::Token' ),
45956                                                                                             bless( {
45957                                                                                                      'subrule' => 'correlation_name',
45958                                                                                                      'matchrule' => 0,
45959                                                                                                      'implicit' => undef,
45960                                                                                                      'argcode' => undef,
45961                                                                                                      'lookahead' => 0,
45962                                                                                                      'line' => 286
45963                                                                                                    }, 'Parse::RecDescent::Subrule' ),
45964                                                                                             bless( {
45965                                                                                                      'hashname' => '__ACTION1__',
45966                                                                                                      'lookahead' => 0,
45967                                                                                                      'line' => 287,
45968                                                                                                      'code' => '{ $return = join(\' \', @item[1..3] ) }'
45969                                                                                                    }, 'Parse::RecDescent::Action' )
45970                                                                                           ],
45971                                                                                'line' => undef
45972                                                                              }, 'Parse::RecDescent::Production' ),
45973                                                                       bless( {
45974                                                                                'number' => '1',
45975                                                                                'strcount' => 0,
45976                                                                                'dircount' => 0,
45977                                                                                'uncommit' => undef,
45978                                                                                'error' => undef,
45979                                                                                'patcount' => 2,
45980                                                                                'actcount' => 1,
45981                                                                                'items' => [
45982                                                                                             bless( {
45983                                                                                                      'pattern' => 'NEW',
45984                                                                                                      'hashname' => '__PATTERN1__',
45985                                                                                                      'description' => '/NEW/i',
45986                                                                                                      'lookahead' => 0,
45987                                                                                                      'rdelim' => '/',
45988                                                                                                      'line' => 288,
45989                                                                                                      'mod' => 'i',
45990                                                                                                      'ldelim' => '/'
45991                                                                                                    }, 'Parse::RecDescent::Token' ),
45992                                                                                             bless( {
45993                                                                                                      'pattern' => '(AS)?',
45994                                                                                                      'hashname' => '__PATTERN2__',
45995                                                                                                      'description' => '/(AS)?/i',
45996                                                                                                      'lookahead' => 0,
45997                                                                                                      'rdelim' => '/',
45998                                                                                                      'line' => 288,
45999                                                                                                      'mod' => 'i',
46000                                                                                                      'ldelim' => '/'
46001                                                                                                    }, 'Parse::RecDescent::Token' ),
46002                                                                                             bless( {
46003                                                                                                      'subrule' => 'correlation_name',
46004                                                                                                      'matchrule' => 0,
46005                                                                                                      'implicit' => undef,
46006                                                                                                      'argcode' => undef,
46007                                                                                                      'lookahead' => 0,
46008                                                                                                      'line' => 288
46009                                                                                                    }, 'Parse::RecDescent::Subrule' ),
46010                                                                                             bless( {
46011                                                                                                      'hashname' => '__ACTION1__',
46012                                                                                                      'lookahead' => 0,
46013                                                                                                      'line' => 289,
46014                                                                                                      'code' => '{ $return = join(\' \', @item[1..3] ) }'
46015                                                                                                    }, 'Parse::RecDescent::Action' )
46016                                                                                           ],
46017                                                                                'line' => 288
46018                                                                              }, 'Parse::RecDescent::Production' )
46019                                                                     ],
46020                                                          'name' => 'old_new_corr',
46021                                                          'vars' => '',
46022                                                          'line' => 286
46023                                                        }, 'Parse::RecDescent::Rule' ),
46024                               '_alternation_1_of_production_42_of_rule_sysibm_function' => bless( {
46025                                                                                                     'impcount' => 0,
46026                                                                                                     'calls' => [],
46027                                                                                                     'changed' => 0,
46028                                                                                                     'opcount' => 0,
46029                                                                                                     'prods' => [
46030                                                                                                                  bless( {
46031                                                                                                                           'number' => '0',
46032                                                                                                                           'strcount' => 0,
46033                                                                                                                           'dircount' => 0,
46034                                                                                                                           'uncommit' => undef,
46035                                                                                                                           'error' => undef,
46036                                                                                                                           'patcount' => 1,
46037                                                                                                                           'actcount' => 0,
46038                                                                                                                           'items' => [
46039                                                                                                                                        bless( {
46040                                                                                                                                                 'pattern' => 'LCASE',
46041                                                                                                                                                 'hashname' => '__PATTERN1__',
46042                                                                                                                                                 'description' => '/LCASE/i',
46043                                                                                                                                                 'lookahead' => 0,
46044                                                                                                                                                 'rdelim' => '/',
46045                                                                                                                                                 'line' => 628,
46046                                                                                                                                                 'mod' => 'i',
46047                                                                                                                                                 'ldelim' => '/'
46048                                                                                                                                               }, 'Parse::RecDescent::Token' )
46049                                                                                                                                      ],
46050                                                                                                                           'line' => undef
46051                                                                                                                         }, 'Parse::RecDescent::Production' ),
46052                                                                                                                  bless( {
46053                                                                                                                           'number' => '1',
46054                                                                                                                           'strcount' => 0,
46055                                                                                                                           'dircount' => 0,
46056                                                                                                                           'uncommit' => undef,
46057                                                                                                                           'error' => undef,
46058                                                                                                                           'patcount' => 1,
46059                                                                                                                           'actcount' => 0,
46060                                                                                                                           'items' => [
46061                                                                                                                                        bless( {
46062                                                                                                                                                 'pattern' => 'LOWER',
46063                                                                                                                                                 'hashname' => '__PATTERN1__',
46064                                                                                                                                                 'description' => '/LOWER/',
46065                                                                                                                                                 'lookahead' => 0,
46066                                                                                                                                                 'rdelim' => '/',
46067                                                                                                                                                 'line' => 628,
46068                                                                                                                                                 'mod' => '',
46069                                                                                                                                                 'ldelim' => '/'
46070                                                                                                                                               }, 'Parse::RecDescent::Token' )
46071                                                                                                                                      ],
46072                                                                                                                           'line' => 628
46073                                                                                                                         }, 'Parse::RecDescent::Production' )
46074                                                                                                                ],
46075                                                                                                     'name' => '_alternation_1_of_production_42_of_rule_sysibm_function',
46076                                                                                                     'vars' => '',
46077                                                                                                     'line' => 628
46078                                                                                                   }, 'Parse::RecDescent::Rule' ),
46079                               'subtype_treatment' => bless( {
46080                                                               'impcount' => 0,
46081                                                               'calls' => [
46082                                                                            'expression',
46083                                                                            'data_type'
46084                                                                          ],
46085                                                               'changed' => 0,
46086                                                               'opcount' => 0,
46087                                                               'prods' => [
46088                                                                            bless( {
46089                                                                                     'number' => '0',
46090                                                                                     'strcount' => 2,
46091                                                                                     'dircount' => 0,
46092                                                                                     'uncommit' => undef,
46093                                                                                     'error' => undef,
46094                                                                                     'patcount' => 2,
46095                                                                                     'actcount' => 0,
46096                                                                                     'items' => [
46097                                                                                                  bless( {
46098                                                                                                           'pattern' => 'TREAT',
46099                                                                                                           'hashname' => '__PATTERN1__',
46100                                                                                                           'description' => '/TREAT/i',
46101                                                                                                           'lookahead' => 0,
46102                                                                                                           'rdelim' => '/',
46103                                                                                                           'line' => 606,
46104                                                                                                           'mod' => 'i',
46105                                                                                                           'ldelim' => '/'
46106                                                                                                         }, 'Parse::RecDescent::Token' ),
46107                                                                                                  bless( {
46108                                                                                                           'pattern' => '(',
46109                                                                                                           'hashname' => '__STRING1__',
46110                                                                                                           'description' => '\'(\'',
46111                                                                                                           'lookahead' => 0,
46112                                                                                                           'line' => 606
46113                                                                                                         }, 'Parse::RecDescent::Literal' ),
46114                                                                                                  bless( {
46115                                                                                                           'subrule' => 'expression',
46116                                                                                                           'matchrule' => 0,
46117                                                                                                           'implicit' => undef,
46118                                                                                                           'argcode' => undef,
46119                                                                                                           'lookahead' => 0,
46120                                                                                                           'line' => 606
46121                                                                                                         }, 'Parse::RecDescent::Subrule' ),
46122                                                                                                  bless( {
46123                                                                                                           'pattern' => 'AS',
46124                                                                                                           'hashname' => '__PATTERN2__',
46125                                                                                                           'description' => '/AS/i',
46126                                                                                                           'lookahead' => 0,
46127                                                                                                           'rdelim' => '/',
46128                                                                                                           'line' => 606,
46129                                                                                                           'mod' => 'i',
46130                                                                                                           'ldelim' => '/'
46131                                                                                                         }, 'Parse::RecDescent::Token' ),
46132                                                                                                  bless( {
46133                                                                                                           'subrule' => 'data_type',
46134                                                                                                           'matchrule' => 0,
46135                                                                                                           'implicit' => undef,
46136                                                                                                           'argcode' => undef,
46137                                                                                                           'lookahead' => 0,
46138                                                                                                           'line' => 606
46139                                                                                                         }, 'Parse::RecDescent::Subrule' ),
46140                                                                                                  bless( {
46141                                                                                                           'pattern' => ')',
46142                                                                                                           'hashname' => '__STRING2__',
46143                                                                                                           'description' => '\')\'',
46144                                                                                                           'lookahead' => 0,
46145                                                                                                           'line' => 606
46146                                                                                                         }, 'Parse::RecDescent::Literal' )
46147                                                                                                ],
46148                                                                                     'line' => undef
46149                                                                                   }, 'Parse::RecDescent::Production' )
46150                                                                          ],
46151                                                               'name' => 'subtype_treatment',
46152                                                               'vars' => '',
46153                                                               'line' => 606
46154                                                             }, 'Parse::RecDescent::Rule' ),
46155                               'expression' => bless( {
46156                                                        'impcount' => 1,
46157                                                        'calls' => [
46158                                                                     '_alternation_1_of_production_1_of_rule_expression'
46159                                                                   ],
46160                                                        'changed' => 0,
46161                                                        'opcount' => 0,
46162                                                        'prods' => [
46163                                                                     bless( {
46164                                                                              'number' => '0',
46165                                                                              'strcount' => 0,
46166                                                                              'dircount' => 1,
46167                                                                              'uncommit' => undef,
46168                                                                              'error' => undef,
46169                                                                              'patcount' => 1,
46170                                                                              'actcount' => 0,
46171                                                                              'op' => [],
46172                                                                              'items' => [
46173                                                                                           bless( {
46174                                                                                                    'expected' => '<leftop: \'+\', or \'-\' /operator/ \'+\', or \'-\'>',
46175                                                                                                    'min' => 1,
46176                                                                                                    'name' => '\'_alternation_1_of_production_1_of_rule_expression(s)\'',
46177                                                                                                    'max' => 100000000,
46178                                                                                                    'leftarg' => bless( {
46179                                                                                                                          'subrule' => '_alternation_1_of_production_1_of_rule_expression',
46180                                                                                                                          'matchrule' => 0,
46181                                                                                                                          'implicit' => '\'+\', or \'-\'',
46182                                                                                                                          'argcode' => undef,
46183                                                                                                                          'lookahead' => 0,
46184                                                                                                                          'line' => 319
46185                                                                                                                        }, 'Parse::RecDescent::Subrule' ),
46186                                                                                                    'rightarg' => bless( {
46187                                                                                                                           'subrule' => '_alternation_1_of_production_1_of_rule_expression',
46188                                                                                                                           'matchrule' => 0,
46189                                                                                                                           'implicit' => '\'+\', or \'-\'',
46190                                                                                                                           'argcode' => undef,
46191                                                                                                                           'lookahead' => 0,
46192                                                                                                                           'line' => 319
46193                                                                                                                         }, 'Parse::RecDescent::Subrule' ),
46194                                                                                                    'hashname' => '__DIRECTIVE1__',
46195                                                                                                    'type' => 'leftop',
46196                                                                                                    'op' => bless( {
46197                                                                                                                     'pattern' => 'operator',
46198                                                                                                                     'hashname' => '__PATTERN1__',
46199                                                                                                                     'description' => '/operator/',
46200                                                                                                                     'lookahead' => 0,
46201                                                                                                                     'rdelim' => '/',
46202                                                                                                                     'line' => 319,
46203                                                                                                                     'mod' => '',
46204                                                                                                                     'ldelim' => '/'
46205                                                                                                                   }, 'Parse::RecDescent::Token' )
46206                                                                                                  }, 'Parse::RecDescent::Operator' )
46207                                                                                         ],
46208                                                                              'line' => undef
46209                                                                            }, 'Parse::RecDescent::Production' )
46210                                                                   ],
46211                                                        'name' => 'expression',
46212                                                        'vars' => '',
46213                                                        'line' => 299
46214                                                      }, 'Parse::RecDescent::Rule' ),
46215                               '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression' => bless( {
46216                                                                                                                                      'impcount' => 0,
46217                                                                                                                                      'calls' => [
46218                                                                                                                                                   'function',
46219                                                                                                                                                   'expression',
46220                                                                                                                                                   'constant',
46221                                                                                                                                                   'column_name',
46222                                                                                                                                                   'host_variable',
46223                                                                                                                                                   'special_register',
46224                                                                                                                                                   'scalar_fullselect',
46225                                                                                                                                                   'labeled_duration',
46226                                                                                                                                                   'case_expression',
46227                                                                                                                                                   'cast_specification',
46228                                                                                                                                                   'OLAP_function',
46229                                                                                                                                                   'method_invocation',
46230                                                                                                                                                   'subtype_treatment',
46231                                                                                                                                                   'sequence_reference'
46232                                                                                                                                                 ],
46233                                                                                                                                      'changed' => 0,
46234                                                                                                                                      'opcount' => 0,
46235                                                                                                                                      'prods' => [
46236                                                                                                                                                   bless( {
46237                                                                                                                                                            'number' => '0',
46238                                                                                                                                                            'strcount' => 0,
46239                                                                                                                                                            'dircount' => 0,
46240                                                                                                                                                            'uncommit' => undef,
46241                                                                                                                                                            'error' => undef,
46242                                                                                                                                                            'patcount' => 0,
46243                                                                                                                                                            'actcount' => 0,
46244                                                                                                                                                            'items' => [
46245                                                                                                                                                                         bless( {
46246                                                                                                                                                                                  'subrule' => 'function',
46247                                                                                                                                                                                  'matchrule' => 0,
46248                                                                                                                                                                                  'implicit' => undef,
46249                                                                                                                                                                                  'argcode' => undef,
46250                                                                                                                                                                                  'lookahead' => 0,
46251                                                                                                                                                                                  'line' => 613
46252                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46253                                                                                                                                                                       ],
46254                                                                                                                                                            'line' => undef
46255                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46256                                                                                                                                                   bless( {
46257                                                                                                                                                            'number' => '1',
46258                                                                                                                                                            'strcount' => 2,
46259                                                                                                                                                            'dircount' => 0,
46260                                                                                                                                                            'uncommit' => undef,
46261                                                                                                                                                            'error' => undef,
46262                                                                                                                                                            'patcount' => 0,
46263                                                                                                                                                            'actcount' => 0,
46264                                                                                                                                                            'items' => [
46265                                                                                                                                                                         bless( {
46266                                                                                                                                                                                  'pattern' => '(',
46267                                                                                                                                                                                  'hashname' => '__STRING1__',
46268                                                                                                                                                                                  'description' => '\'(\'',
46269                                                                                                                                                                                  'lookahead' => 0,
46270                                                                                                                                                                                  'line' => 614
46271                                                                                                                                                                                }, 'Parse::RecDescent::Literal' ),
46272                                                                                                                                                                         bless( {
46273                                                                                                                                                                                  'subrule' => 'expression',
46274                                                                                                                                                                                  'matchrule' => 0,
46275                                                                                                                                                                                  'implicit' => undef,
46276                                                                                                                                                                                  'argcode' => undef,
46277                                                                                                                                                                                  'lookahead' => 0,
46278                                                                                                                                                                                  'line' => 614
46279                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' ),
46280                                                                                                                                                                         bless( {
46281                                                                                                                                                                                  'pattern' => ')',
46282                                                                                                                                                                                  'hashname' => '__STRING2__',
46283                                                                                                                                                                                  'description' => '\')\'',
46284                                                                                                                                                                                  'lookahead' => 0,
46285                                                                                                                                                                                  'line' => 614
46286                                                                                                                                                                                }, 'Parse::RecDescent::Literal' )
46287                                                                                                                                                                       ],
46288                                                                                                                                                            'line' => 614
46289                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46290                                                                                                                                                   bless( {
46291                                                                                                                                                            'number' => '2',
46292                                                                                                                                                            'strcount' => 0,
46293                                                                                                                                                            'dircount' => 0,
46294                                                                                                                                                            'uncommit' => undef,
46295                                                                                                                                                            'error' => undef,
46296                                                                                                                                                            'patcount' => 0,
46297                                                                                                                                                            'actcount' => 0,
46298                                                                                                                                                            'items' => [
46299                                                                                                                                                                         bless( {
46300                                                                                                                                                                                  'subrule' => 'constant',
46301                                                                                                                                                                                  'matchrule' => 0,
46302                                                                                                                                                                                  'implicit' => undef,
46303                                                                                                                                                                                  'argcode' => undef,
46304                                                                                                                                                                                  'lookahead' => 0,
46305                                                                                                                                                                                  'line' => 615
46306                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46307                                                                                                                                                                       ],
46308                                                                                                                                                            'line' => 615
46309                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46310                                                                                                                                                   bless( {
46311                                                                                                                                                            'number' => '3',
46312                                                                                                                                                            'strcount' => 0,
46313                                                                                                                                                            'dircount' => 0,
46314                                                                                                                                                            'uncommit' => undef,
46315                                                                                                                                                            'error' => undef,
46316                                                                                                                                                            'patcount' => 0,
46317                                                                                                                                                            'actcount' => 0,
46318                                                                                                                                                            'items' => [
46319                                                                                                                                                                         bless( {
46320                                                                                                                                                                                  'subrule' => 'column_name',
46321                                                                                                                                                                                  'matchrule' => 0,
46322                                                                                                                                                                                  'implicit' => undef,
46323                                                                                                                                                                                  'argcode' => undef,
46324                                                                                                                                                                                  'lookahead' => 0,
46325                                                                                                                                                                                  'line' => 616
46326                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46327                                                                                                                                                                       ],
46328                                                                                                                                                            'line' => 616
46329                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46330                                                                                                                                                   bless( {
46331                                                                                                                                                            'number' => '4',
46332                                                                                                                                                            'strcount' => 0,
46333                                                                                                                                                            'dircount' => 0,
46334                                                                                                                                                            'uncommit' => undef,
46335                                                                                                                                                            'error' => undef,
46336                                                                                                                                                            'patcount' => 0,
46337                                                                                                                                                            'actcount' => 0,
46338                                                                                                                                                            'items' => [
46339                                                                                                                                                                         bless( {
46340                                                                                                                                                                                  'subrule' => 'host_variable',
46341                                                                                                                                                                                  'matchrule' => 0,
46342                                                                                                                                                                                  'implicit' => undef,
46343                                                                                                                                                                                  'argcode' => undef,
46344                                                                                                                                                                                  'lookahead' => 0,
46345                                                                                                                                                                                  'line' => 617
46346                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46347                                                                                                                                                                       ],
46348                                                                                                                                                            'line' => 617
46349                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46350                                                                                                                                                   bless( {
46351                                                                                                                                                            'number' => '5',
46352                                                                                                                                                            'strcount' => 0,
46353                                                                                                                                                            'dircount' => 0,
46354                                                                                                                                                            'uncommit' => undef,
46355                                                                                                                                                            'error' => undef,
46356                                                                                                                                                            'patcount' => 0,
46357                                                                                                                                                            'actcount' => 0,
46358                                                                                                                                                            'items' => [
46359                                                                                                                                                                         bless( {
46360                                                                                                                                                                                  'subrule' => 'special_register',
46361                                                                                                                                                                                  'matchrule' => 0,
46362                                                                                                                                                                                  'implicit' => undef,
46363                                                                                                                                                                                  'argcode' => undef,
46364                                                                                                                                                                                  'lookahead' => 0,
46365                                                                                                                                                                                  'line' => 618
46366                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46367                                                                                                                                                                       ],
46368                                                                                                                                                            'line' => 618
46369                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46370                                                                                                                                                   bless( {
46371                                                                                                                                                            'number' => '6',
46372                                                                                                                                                            'strcount' => 2,
46373                                                                                                                                                            'dircount' => 0,
46374                                                                                                                                                            'uncommit' => undef,
46375                                                                                                                                                            'error' => undef,
46376                                                                                                                                                            'patcount' => 0,
46377                                                                                                                                                            'actcount' => 0,
46378                                                                                                                                                            'items' => [
46379                                                                                                                                                                         bless( {
46380                                                                                                                                                                                  'pattern' => '(',
46381                                                                                                                                                                                  'hashname' => '__STRING1__',
46382                                                                                                                                                                                  'description' => '\'(\'',
46383                                                                                                                                                                                  'lookahead' => 0,
46384                                                                                                                                                                                  'line' => 619
46385                                                                                                                                                                                }, 'Parse::RecDescent::Literal' ),
46386                                                                                                                                                                         bless( {
46387                                                                                                                                                                                  'subrule' => 'scalar_fullselect',
46388                                                                                                                                                                                  'matchrule' => 0,
46389                                                                                                                                                                                  'implicit' => undef,
46390                                                                                                                                                                                  'argcode' => undef,
46391                                                                                                                                                                                  'lookahead' => 0,
46392                                                                                                                                                                                  'line' => 619
46393                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' ),
46394                                                                                                                                                                         bless( {
46395                                                                                                                                                                                  'pattern' => ')',
46396                                                                                                                                                                                  'hashname' => '__STRING2__',
46397                                                                                                                                                                                  'description' => '\')\'',
46398                                                                                                                                                                                  'lookahead' => 0,
46399                                                                                                                                                                                  'line' => 619
46400                                                                                                                                                                                }, 'Parse::RecDescent::Literal' )
46401                                                                                                                                                                       ],
46402                                                                                                                                                            'line' => 619
46403                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46404                                                                                                                                                   bless( {
46405                                                                                                                                                            'number' => '7',
46406                                                                                                                                                            'strcount' => 0,
46407                                                                                                                                                            'dircount' => 0,
46408                                                                                                                                                            'uncommit' => undef,
46409                                                                                                                                                            'error' => undef,
46410                                                                                                                                                            'patcount' => 0,
46411                                                                                                                                                            'actcount' => 0,
46412                                                                                                                                                            'items' => [
46413                                                                                                                                                                         bless( {
46414                                                                                                                                                                                  'subrule' => 'labeled_duration',
46415                                                                                                                                                                                  'matchrule' => 0,
46416                                                                                                                                                                                  'implicit' => undef,
46417                                                                                                                                                                                  'argcode' => undef,
46418                                                                                                                                                                                  'lookahead' => 0,
46419                                                                                                                                                                                  'line' => 620
46420                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46421                                                                                                                                                                       ],
46422                                                                                                                                                            'line' => 620
46423                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46424                                                                                                                                                   bless( {
46425                                                                                                                                                            'number' => '8',
46426                                                                                                                                                            'strcount' => 0,
46427                                                                                                                                                            'dircount' => 0,
46428                                                                                                                                                            'uncommit' => undef,
46429                                                                                                                                                            'error' => undef,
46430                                                                                                                                                            'patcount' => 0,
46431                                                                                                                                                            'actcount' => 0,
46432                                                                                                                                                            'items' => [
46433                                                                                                                                                                         bless( {
46434                                                                                                                                                                                  'subrule' => 'case_expression',
46435                                                                                                                                                                                  'matchrule' => 0,
46436                                                                                                                                                                                  'implicit' => undef,
46437                                                                                                                                                                                  'argcode' => undef,
46438                                                                                                                                                                                  'lookahead' => 0,
46439                                                                                                                                                                                  'line' => 621
46440                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46441                                                                                                                                                                       ],
46442                                                                                                                                                            'line' => 621
46443                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46444                                                                                                                                                   bless( {
46445                                                                                                                                                            'number' => '9',
46446                                                                                                                                                            'strcount' => 0,
46447                                                                                                                                                            'dircount' => 0,
46448                                                                                                                                                            'uncommit' => undef,
46449                                                                                                                                                            'error' => undef,
46450                                                                                                                                                            'patcount' => 0,
46451                                                                                                                                                            'actcount' => 0,
46452                                                                                                                                                            'items' => [
46453                                                                                                                                                                         bless( {
46454                                                                                                                                                                                  'subrule' => 'cast_specification',
46455                                                                                                                                                                                  'matchrule' => 0,
46456                                                                                                                                                                                  'implicit' => undef,
46457                                                                                                                                                                                  'argcode' => undef,
46458                                                                                                                                                                                  'lookahead' => 0,
46459                                                                                                                                                                                  'line' => 622
46460                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46461                                                                                                                                                                       ],
46462                                                                                                                                                            'line' => 622
46463                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46464                                                                                                                                                   bless( {
46465                                                                                                                                                            'number' => '10',
46466                                                                                                                                                            'strcount' => 0,
46467                                                                                                                                                            'dircount' => 0,
46468                                                                                                                                                            'uncommit' => undef,
46469                                                                                                                                                            'error' => undef,
46470                                                                                                                                                            'patcount' => 0,
46471                                                                                                                                                            'actcount' => 0,
46472                                                                                                                                                            'items' => [
46473                                                                                                                                                                         bless( {
46474                                                                                                                                                                                  'subrule' => 'OLAP_function',
46475                                                                                                                                                                                  'matchrule' => 0,
46476                                                                                                                                                                                  'implicit' => undef,
46477                                                                                                                                                                                  'argcode' => undef,
46478                                                                                                                                                                                  'lookahead' => 0,
46479                                                                                                                                                                                  'line' => 624
46480                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46481                                                                                                                                                                       ],
46482                                                                                                                                                            'line' => 623
46483                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46484                                                                                                                                                   bless( {
46485                                                                                                                                                            'number' => '11',
46486                                                                                                                                                            'strcount' => 0,
46487                                                                                                                                                            'dircount' => 0,
46488                                                                                                                                                            'uncommit' => undef,
46489                                                                                                                                                            'error' => undef,
46490                                                                                                                                                            'patcount' => 0,
46491                                                                                                                                                            'actcount' => 0,
46492                                                                                                                                                            'items' => [
46493                                                                                                                                                                         bless( {
46494                                                                                                                                                                                  'subrule' => 'method_invocation',
46495                                                                                                                                                                                  'matchrule' => 0,
46496                                                                                                                                                                                  'implicit' => undef,
46497                                                                                                                                                                                  'argcode' => undef,
46498                                                                                                                                                                                  'lookahead' => 0,
46499                                                                                                                                                                                  'line' => 625
46500                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46501                                                                                                                                                                       ],
46502                                                                                                                                                            'line' => 625
46503                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46504                                                                                                                                                   bless( {
46505                                                                                                                                                            'number' => '12',
46506                                                                                                                                                            'strcount' => 0,
46507                                                                                                                                                            'dircount' => 0,
46508                                                                                                                                                            'uncommit' => undef,
46509                                                                                                                                                            'error' => undef,
46510                                                                                                                                                            'patcount' => 0,
46511                                                                                                                                                            'actcount' => 0,
46512                                                                                                                                                            'items' => [
46513                                                                                                                                                                         bless( {
46514                                                                                                                                                                                  'subrule' => 'subtype_treatment',
46515                                                                                                                                                                                  'matchrule' => 0,
46516                                                                                                                                                                                  'implicit' => undef,
46517                                                                                                                                                                                  'argcode' => undef,
46518                                                                                                                                                                                  'lookahead' => 0,
46519                                                                                                                                                                                  'line' => 626
46520                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46521                                                                                                                                                                       ],
46522                                                                                                                                                            'line' => 626
46523                                                                                                                                                          }, 'Parse::RecDescent::Production' ),
46524                                                                                                                                                   bless( {
46525                                                                                                                                                            'number' => '13',
46526                                                                                                                                                            'strcount' => 0,
46527                                                                                                                                                            'dircount' => 0,
46528                                                                                                                                                            'uncommit' => undef,
46529                                                                                                                                                            'error' => undef,
46530                                                                                                                                                            'patcount' => 0,
46531                                                                                                                                                            'actcount' => 0,
46532                                                                                                                                                            'items' => [
46533                                                                                                                                                                         bless( {
46534                                                                                                                                                                                  'subrule' => 'sequence_reference',
46535                                                                                                                                                                                  'matchrule' => 0,
46536                                                                                                                                                                                  'implicit' => undef,
46537                                                                                                                                                                                  'argcode' => undef,
46538                                                                                                                                                                                  'lookahead' => 0,
46539                                                                                                                                                                                  'line' => 627
46540                                                                                                                                                                                }, 'Parse::RecDescent::Subrule' )
46541                                                                                                                                                                       ],
46542                                                                                                                                                            'line' => 627
46543                                                                                                                                                          }, 'Parse::RecDescent::Production' )
46544                                                                                                                                                 ],
46545                                                                                                                                      'name' => '_alternation_2_of_production_1_of_rule__alternation_1_of_production_1_of_rule_expression',
46546                                                                                                                                      'vars' => '',
46547                                                                                                                                      'line' => 613
46548                                                                                                                                    }, 'Parse::RecDescent::Rule' ),
46549                               'startrule' => bless( {
46550                                                       'impcount' => 0,
46551                                                       'calls' => [
46552                                                                    'statement',
46553                                                                    'eofile'
46554                                                                  ],
46555                                                       'changed' => 0,
46556                                                       'opcount' => 0,
46557                                                       'prods' => [
46558                                                                    bless( {
46559                                                                             'number' => '0',
46560                                                                             'strcount' => 0,
46561                                                                             'dircount' => 0,
46562                                                                             'uncommit' => undef,
46563                                                                             'error' => undef,
46564                                                                             'patcount' => 0,
46565                                                                             'actcount' => 1,
46566                                                                             'items' => [
46567                                                                                          bless( {
46568                                                                                                   'subrule' => 'statement',
46569                                                                                                   'expected' => undef,
46570                                                                                                   'min' => 1,
46571                                                                                                   'argcode' => undef,
46572                                                                                                   'max' => 100000000,
46573                                                                                                   'matchrule' => 0,
46574                                                                                                   'repspec' => 's',
46575                                                                                                   'lookahead' => 0,
46576                                                                                                   'line' => 12
46577                                                                                                 }, 'Parse::RecDescent::Repetition' ),
46578                                                                                          bless( {
46579                                                                                                   'subrule' => 'eofile',
46580                                                                                                   'matchrule' => 0,
46581                                                                                                   'implicit' => undef,
46582                                                                                                   'argcode' => undef,
46583                                                                                                   'lookahead' => 0,
46584                                                                                                   'line' => 12
46585                                                                                                 }, 'Parse::RecDescent::Subrule' ),
46586                                                                                          bless( {
46587                                                                                                   'hashname' => '__ACTION1__',
46588                                                                                                   'lookahead' => 0,
46589                                                                                                   'line' => 12,
46590                                                                                                   'code' => '{
46591     $return      = {
46592         tables   => \\%tables,
46593         views    => \\@views,
46594         triggers => \\@triggers,
46595     }
46596 }'
46597                                                                                                 }, 'Parse::RecDescent::Action' )
46598                                                                                        ],
46599                                                                             'line' => undef
46600                                                                           }, 'Parse::RecDescent::Production' )
46601                                                                  ],
46602                                                       'name' => 'startrule',
46603                                                       'vars' => '',
46604                                                       'line' => 11
46605                                                     }, 'Parse::RecDescent::Rule' ),
46606                               '_alternation_1_of_production_1_of_rule_cast_specification' => bless( {
46607                                                                                                       'impcount' => 0,
46608                                                                                                       'calls' => [
46609                                                                                                                    'expression',
46610                                                                                                                    'parameter_marker'
46611                                                                                                                  ],
46612                                                                                                       'changed' => 0,
46613                                                                                                       'opcount' => 0,
46614                                                                                                       'prods' => [
46615                                                                                                                    bless( {
46616                                                                                                                             'number' => '0',
46617                                                                                                                             'strcount' => 0,
46618                                                                                                                             'dircount' => 0,
46619                                                                                                                             'uncommit' => undef,
46620                                                                                                                             'error' => undef,
46621                                                                                                                             'patcount' => 0,
46622                                                                                                                             'actcount' => 0,
46623                                                                                                                             'items' => [
46624                                                                                                                                          bless( {
46625                                                                                                                                                   'subrule' => 'expression',
46626                                                                                                                                                   'matchrule' => 0,
46627                                                                                                                                                   'implicit' => undef,
46628                                                                                                                                                   'argcode' => undef,
46629                                                                                                                                                   'lookahead' => 0,
46630                                                                                                                                                   'line' => 625
46631                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
46632                                                                                                                                        ],
46633                                                                                                                             'line' => undef
46634                                                                                                                           }, 'Parse::RecDescent::Production' ),
46635                                                                                                                    bless( {
46636                                                                                                                             'number' => '1',
46637                                                                                                                             'strcount' => 0,
46638                                                                                                                             'dircount' => 0,
46639                                                                                                                             'uncommit' => undef,
46640                                                                                                                             'error' => undef,
46641                                                                                                                             'patcount' => 1,
46642                                                                                                                             'actcount' => 0,
46643                                                                                                                             'items' => [
46644                                                                                                                                          bless( {
46645                                                                                                                                                   'pattern' => 'NULL',
46646                                                                                                                                                   'hashname' => '__PATTERN1__',
46647                                                                                                                                                   'description' => '/NULL/i',
46648                                                                                                                                                   'lookahead' => 0,
46649                                                                                                                                                   'rdelim' => '/',
46650                                                                                                                                                   'line' => 626,
46651                                                                                                                                                   'mod' => 'i',
46652                                                                                                                                                   'ldelim' => '/'
46653                                                                                                                                                 }, 'Parse::RecDescent::Token' )
46654                                                                                                                                        ],
46655                                                                                                                             'line' => 626
46656                                                                                                                           }, 'Parse::RecDescent::Production' ),
46657                                                                                                                    bless( {
46658                                                                                                                             'number' => '2',
46659                                                                                                                             'strcount' => 0,
46660                                                                                                                             'dircount' => 0,
46661                                                                                                                             'uncommit' => undef,
46662                                                                                                                             'error' => undef,
46663                                                                                                                             'patcount' => 0,
46664                                                                                                                             'actcount' => 0,
46665                                                                                                                             'items' => [
46666                                                                                                                                          bless( {
46667                                                                                                                                                   'subrule' => 'parameter_marker',
46668                                                                                                                                                   'matchrule' => 0,
46669                                                                                                                                                   'implicit' => undef,
46670                                                                                                                                                   'argcode' => undef,
46671                                                                                                                                                   'lookahead' => 0,
46672                                                                                                                                                   'line' => 627
46673                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
46674                                                                                                                                        ],
46675                                                                                                                             'line' => 627
46676                                                                                                                           }, 'Parse::RecDescent::Production' )
46677                                                                                                                  ],
46678                                                                                                       'name' => '_alternation_1_of_production_1_of_rule_cast_specification',
46679                                                                                                       'vars' => '',
46680                                                                                                       'line' => 625
46681                                                                                                     }, 'Parse::RecDescent::Rule' ),
46682                               'before' => bless( {
46683                                                    'impcount' => 0,
46684                                                    'calls' => [],
46685                                                    'changed' => 0,
46686                                                    'opcount' => 0,
46687                                                    'prods' => [
46688                                                                 bless( {
46689                                                                          'number' => '0',
46690                                                                          'strcount' => 0,
46691                                                                          'dircount' => 0,
46692                                                                          'uncommit' => undef,
46693                                                                          'error' => undef,
46694                                                                          'patcount' => 1,
46695                                                                          'actcount' => 0,
46696                                                                          'items' => [
46697                                                                                       bless( {
46698                                                                                                'pattern' => 'NO CASCADE BEFORE',
46699                                                                                                'hashname' => '__PATTERN1__',
46700                                                                                                'description' => '/NO CASCADE BEFORE/i',
46701                                                                                                'lookahead' => 0,
46702                                                                                                'rdelim' => '/',
46703                                                                                                'line' => 268,
46704                                                                                                'mod' => 'i',
46705                                                                                                'ldelim' => '/'
46706                                                                                              }, 'Parse::RecDescent::Token' )
46707                                                                                     ],
46708                                                                          'line' => undef
46709                                                                        }, 'Parse::RecDescent::Production' )
46710                                                               ],
46711                                                    'name' => 'before',
46712                                                    'vars' => '',
46713                                                    'line' => 268
46714                                                  }, 'Parse::RecDescent::Rule' ),
46715                               '_alternation_1_of_production_83_of_rule_sysibm_function' => bless( {
46716                                                                                                     'impcount' => 0,
46717                                                                                                     'calls' => [],
46718                                                                                                     'changed' => 0,
46719                                                                                                     'opcount' => 0,
46720                                                                                                     'prods' => [
46721                                                                                                                  bless( {
46722                                                                                                                           'number' => '0',
46723                                                                                                                           'strcount' => 0,
46724                                                                                                                           'dircount' => 0,
46725                                                                                                                           'uncommit' => undef,
46726                                                                                                                           'error' => undef,
46727                                                                                                                           'patcount' => 1,
46728                                                                                                                           'actcount' => 0,
46729                                                                                                                           'items' => [
46730                                                                                                                                        bless( {
46731                                                                                                                                                 'pattern' => 'UCASE',
46732                                                                                                                                                 'hashname' => '__PATTERN1__',
46733                                                                                                                                                 'description' => '/UCASE/i',
46734                                                                                                                                                 'lookahead' => 0,
46735                                                                                                                                                 'rdelim' => '/',
46736                                                                                                                                                 'line' => 628,
46737                                                                                                                                                 'mod' => 'i',
46738                                                                                                                                                 'ldelim' => '/'
46739                                                                                                                                               }, 'Parse::RecDescent::Token' )
46740                                                                                                                                      ],
46741                                                                                                                           'line' => undef
46742                                                                                                                         }, 'Parse::RecDescent::Production' ),
46743                                                                                                                  bless( {
46744                                                                                                                           'number' => '1',
46745                                                                                                                           'strcount' => 0,
46746                                                                                                                           'dircount' => 0,
46747                                                                                                                           'uncommit' => undef,
46748                                                                                                                           'error' => undef,
46749                                                                                                                           'patcount' => 1,
46750                                                                                                                           'actcount' => 0,
46751                                                                                                                           'items' => [
46752                                                                                                                                        bless( {
46753                                                                                                                                                 'pattern' => 'UPPER',
46754                                                                                                                                                 'hashname' => '__PATTERN1__',
46755                                                                                                                                                 'description' => '/UPPER/i',
46756                                                                                                                                                 'lookahead' => 0,
46757                                                                                                                                                 'rdelim' => '/',
46758                                                                                                                                                 'line' => 628,
46759                                                                                                                                                 'mod' => 'i',
46760                                                                                                                                                 'ldelim' => '/'
46761                                                                                                                                               }, 'Parse::RecDescent::Token' )
46762                                                                                                                                      ],
46763                                                                                                                           'line' => 628
46764                                                                                                                         }, 'Parse::RecDescent::Production' )
46765                                                                                                                ],
46766                                                                                                     'name' => '_alternation_1_of_production_83_of_rule_sysibm_function',
46767                                                                                                     'vars' => '',
46768                                                                                                     'line' => 628
46769                                                                                                   }, 'Parse::RecDescent::Rule' ),
46770                               'ranking_function' => bless( {
46771                                                              'impcount' => 1,
46772                                                              'calls' => [
46773                                                                           '_alternation_1_of_production_1_of_rule_ranking_function',
46774                                                                           'window_partition_clause',
46775                                                                           'window_order_clause'
46776                                                                         ],
46777                                                              'changed' => 0,
46778                                                              'opcount' => 0,
46779                                                              'prods' => [
46780                                                                           bless( {
46781                                                                                    'number' => '0',
46782                                                                                    'strcount' => 2,
46783                                                                                    'dircount' => 0,
46784                                                                                    'uncommit' => undef,
46785                                                                                    'error' => undef,
46786                                                                                    'patcount' => 1,
46787                                                                                    'actcount' => 0,
46788                                                                                    'items' => [
46789                                                                                                 bless( {
46790                                                                                                          'subrule' => '_alternation_1_of_production_1_of_rule_ranking_function',
46791                                                                                                          'matchrule' => 0,
46792                                                                                                          'implicit' => '/RANK/, or /DENSE_RANK|DENSERANK/i',
46793                                                                                                          'argcode' => undef,
46794                                                                                                          'lookahead' => 0,
46795                                                                                                          'line' => 544
46796                                                                                                        }, 'Parse::RecDescent::Subrule' ),
46797                                                                                                 bless( {
46798                                                                                                          'pattern' => 'OVER',
46799                                                                                                          'hashname' => '__PATTERN1__',
46800                                                                                                          'description' => '/OVER/i',
46801                                                                                                          'lookahead' => 0,
46802                                                                                                          'rdelim' => '/',
46803                                                                                                          'line' => 544,
46804                                                                                                          'mod' => 'i',
46805                                                                                                          'ldelim' => '/'
46806                                                                                                        }, 'Parse::RecDescent::Token' ),
46807                                                                                                 bless( {
46808                                                                                                          'pattern' => '(',
46809                                                                                                          'hashname' => '__STRING1__',
46810                                                                                                          'description' => '\'(\'',
46811                                                                                                          'lookahead' => 0,
46812                                                                                                          'line' => 544
46813                                                                                                        }, 'Parse::RecDescent::Literal' ),
46814                                                                                                 bless( {
46815                                                                                                          'subrule' => 'window_partition_clause',
46816                                                                                                          'expected' => undef,
46817                                                                                                          'min' => 0,
46818                                                                                                          'argcode' => undef,
46819                                                                                                          'max' => 1,
46820                                                                                                          'matchrule' => 0,
46821                                                                                                          'repspec' => '?',
46822                                                                                                          'lookahead' => 0,
46823                                                                                                          'line' => 544
46824                                                                                                        }, 'Parse::RecDescent::Repetition' ),
46825                                                                                                 bless( {
46826                                                                                                          'subrule' => 'window_order_clause',
46827                                                                                                          'matchrule' => 0,
46828                                                                                                          'implicit' => undef,
46829                                                                                                          'argcode' => undef,
46830                                                                                                          'lookahead' => 0,
46831                                                                                                          'line' => 544
46832                                                                                                        }, 'Parse::RecDescent::Subrule' ),
46833                                                                                                 bless( {
46834                                                                                                          'pattern' => ')',
46835                                                                                                          'hashname' => '__STRING2__',
46836                                                                                                          'description' => '\')\'',
46837                                                                                                          'lookahead' => 0,
46838                                                                                                          'line' => 544
46839                                                                                                        }, 'Parse::RecDescent::Literal' )
46840                                                                                               ],
46841                                                                                    'line' => undef
46842                                                                                  }, 'Parse::RecDescent::Production' )
46843                                                                         ],
46844                                                              'name' => 'ranking_function',
46845                                                              'vars' => '',
46846                                                              'line' => 542
46847                                                            }, 'Parse::RecDescent::Rule' ),
46848                               '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition' => bless( {
46849                                                                                                                                            'impcount' => 0,
46850                                                                                                                                            'calls' => [
46851                                                                                                                                                         'numeric_constant'
46852                                                                                                                                                       ],
46853                                                                                                                                            'changed' => 0,
46854                                                                                                                                            'opcount' => 0,
46855                                                                                                                                            'prods' => [
46856                                                                                                                                                         bless( {
46857                                                                                                                                                                  'number' => '0',
46858                                                                                                                                                                  'strcount' => 0,
46859                                                                                                                                                                  'dircount' => 0,
46860                                                                                                                                                                  'uncommit' => undef,
46861                                                                                                                                                                  'error' => undef,
46862                                                                                                                                                                  'patcount' => 1,
46863                                                                                                                                                                  'actcount' => 0,
46864                                                                                                                                                                  'items' => [
46865                                                                                                                                                                               bless( {
46866                                                                                                                                                                                        'pattern' => 'SELECTIVITY',
46867                                                                                                                                                                                        'hashname' => '__PATTERN1__',
46868                                                                                                                                                                                        'description' => '/SELECTIVITY/i',
46869                                                                                                                                                                                        'lookahead' => 0,
46870                                                                                                                                                                                        'rdelim' => '/',
46871                                                                                                                                                                                        'line' => 628,
46872                                                                                                                                                                                        'mod' => 'i',
46873                                                                                                                                                                                        'ldelim' => '/'
46874                                                                                                                                                                                      }, 'Parse::RecDescent::Token' ),
46875                                                                                                                                                                               bless( {
46876                                                                                                                                                                                        'subrule' => 'numeric_constant',
46877                                                                                                                                                                                        'matchrule' => 0,
46878                                                                                                                                                                                        'implicit' => undef,
46879                                                                                                                                                                                        'argcode' => undef,
46880                                                                                                                                                                                        'lookahead' => 0,
46881                                                                                                                                                                                        'line' => 628
46882                                                                                                                                                                                      }, 'Parse::RecDescent::Subrule' )
46883                                                                                                                                                                             ],
46884                                                                                                                                                                  'line' => undef
46885                                                                                                                                                                }, 'Parse::RecDescent::Production' )
46886                                                                                                                                                       ],
46887                                                                                                                                            'name' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_2_of_rule_search_condition',
46888                                                                                                                                            'vars' => '',
46889                                                                                                                                            'line' => 628
46890                                                                                                                                          }, 'Parse::RecDescent::Rule' ),
46891                               '_alternation_1_of_production_1_of_rule_sysibm_function' => bless( {
46892                                                                                                    'impcount' => 0,
46893                                                                                                    'calls' => [],
46894                                                                                                    'changed' => 0,
46895                                                                                                    'opcount' => 0,
46896                                                                                                    'prods' => [
46897                                                                                                                 bless( {
46898                                                                                                                          'number' => '0',
46899                                                                                                                          'strcount' => 0,
46900                                                                                                                          'dircount' => 0,
46901                                                                                                                          'uncommit' => undef,
46902                                                                                                                          'error' => undef,
46903                                                                                                                          'patcount' => 1,
46904                                                                                                                          'actcount' => 0,
46905                                                                                                                          'items' => [
46906                                                                                                                                       bless( {
46907                                                                                                                                                'pattern' => 'ABS',
46908                                                                                                                                                'hashname' => '__PATTERN1__',
46909                                                                                                                                                'description' => '/ABS/i',
46910                                                                                                                                                'lookahead' => 0,
46911                                                                                                                                                'rdelim' => '/',
46912                                                                                                                                                'line' => 628,
46913                                                                                                                                                'mod' => 'i',
46914                                                                                                                                                'ldelim' => '/'
46915                                                                                                                                              }, 'Parse::RecDescent::Token' )
46916                                                                                                                                     ],
46917                                                                                                                          'line' => undef
46918                                                                                                                        }, 'Parse::RecDescent::Production' ),
46919                                                                                                                 bless( {
46920                                                                                                                          'number' => '1',
46921                                                                                                                          'strcount' => 0,
46922                                                                                                                          'dircount' => 0,
46923                                                                                                                          'uncommit' => undef,
46924                                                                                                                          'error' => undef,
46925                                                                                                                          'patcount' => 1,
46926                                                                                                                          'actcount' => 0,
46927                                                                                                                          'items' => [
46928                                                                                                                                       bless( {
46929                                                                                                                                                'pattern' => 'ABSVAL',
46930                                                                                                                                                'hashname' => '__PATTERN1__',
46931                                                                                                                                                'description' => '/ABSVAL/i',
46932                                                                                                                                                'lookahead' => 0,
46933                                                                                                                                                'rdelim' => '/',
46934                                                                                                                                                'line' => 628,
46935                                                                                                                                                'mod' => 'i',
46936                                                                                                                                                'ldelim' => '/'
46937                                                                                                                                              }, 'Parse::RecDescent::Token' )
46938                                                                                                                                     ],
46939                                                                                                                          'line' => 628
46940                                                                                                                        }, 'Parse::RecDescent::Production' )
46941                                                                                                               ],
46942                                                                                                    'name' => '_alternation_1_of_production_1_of_rule_sysibm_function',
46943                                                                                                    'vars' => '',
46944                                                                                                    'line' => 628
46945                                                                                                  }, 'Parse::RecDescent::Rule' ),
46946                               'reference_b' => bless( {
46947                                                         'impcount' => 0,
46948                                                         'calls' => [
46949                                                                      'old_new_corr'
46950                                                                    ],
46951                                                         'changed' => 0,
46952                                                         'opcount' => 0,
46953                                                         'prods' => [
46954                                                                      bless( {
46955                                                                               'number' => '0',
46956                                                                               'strcount' => 0,
46957                                                                               'dircount' => 0,
46958                                                                               'uncommit' => undef,
46959                                                                               'error' => undef,
46960                                                                               'patcount' => 1,
46961                                                                               'actcount' => 1,
46962                                                                               'items' => [
46963                                                                                            bless( {
46964                                                                                                     'pattern' => 'REFERENCING',
46965                                                                                                     'hashname' => '__PATTERN1__',
46966                                                                                                     'description' => '/REFERENCING/i',
46967                                                                                                     'lookahead' => 0,
46968                                                                                                     'rdelim' => '/',
46969                                                                                                     'line' => 280,
46970                                                                                                     'mod' => 'i',
46971                                                                                                     'ldelim' => '/'
46972                                                                                                   }, 'Parse::RecDescent::Token' ),
46973                                                                                            bless( {
46974                                                                                                     'subrule' => 'old_new_corr',
46975                                                                                                     'expected' => undef,
46976                                                                                                     'min' => 0,
46977                                                                                                     'argcode' => undef,
46978                                                                                                     'max' => 2,
46979                                                                                                     'matchrule' => 0,
46980                                                                                                     'repspec' => '0..2',
46981                                                                                                     'lookahead' => 0,
46982                                                                                                     'line' => 280
46983                                                                                                   }, 'Parse::RecDescent::Repetition' ),
46984                                                                                            bless( {
46985                                                                                                     'hashname' => '__ACTION1__',
46986                                                                                                     'lookahead' => 0,
46987                                                                                                     'line' => 281,
46988                                                                                                     'code' => '{ $return = join(\' \', $item[1], join(\' \', @{$item[2]}) ) }'
46989                                                                                                   }, 'Parse::RecDescent::Action' )
46990                                                                                          ],
46991                                                                               'line' => undef
46992                                                                             }, 'Parse::RecDescent::Production' )
46993                                                                    ],
46994                                                         'name' => 'reference_b',
46995                                                         'vars' => '',
46996                                                         'line' => 280
46997                                                       }, 'Parse::RecDescent::Rule' ),
46998                               '_alternation_1_of_production_1_of_rule_simple_when_clause' => bless( {
46999                                                                                                       'impcount' => 1,
47000                                                                                                       'calls' => [
47001                                                                                                                    'search_condition',
47002                                                                                                                    '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause'
47003                                                                                                                  ],
47004                                                                                                       'changed' => 0,
47005                                                                                                       'opcount' => 0,
47006                                                                                                       'prods' => [
47007                                                                                                                    bless( {
47008                                                                                                                             'number' => '0',
47009                                                                                                                             'strcount' => 0,
47010                                                                                                                             'dircount' => 0,
47011                                                                                                                             'uncommit' => undef,
47012                                                                                                                             'error' => undef,
47013                                                                                                                             'patcount' => 2,
47014                                                                                                                             'actcount' => 0,
47015                                                                                                                             'items' => [
47016                                                                                                                                          bless( {
47017                                                                                                                                                   'pattern' => 'WHEN',
47018                                                                                                                                                   'hashname' => '__PATTERN1__',
47019                                                                                                                                                   'description' => '/WHEN/i',
47020                                                                                                                                                   'lookahead' => 0,
47021                                                                                                                                                   'rdelim' => '/',
47022                                                                                                                                                   'line' => 624,
47023                                                                                                                                                   'mod' => 'i',
47024                                                                                                                                                   'ldelim' => '/'
47025                                                                                                                                                 }, 'Parse::RecDescent::Token' ),
47026                                                                                                                                          bless( {
47027                                                                                                                                                   'subrule' => 'search_condition',
47028                                                                                                                                                   'matchrule' => 0,
47029                                                                                                                                                   'implicit' => undef,
47030                                                                                                                                                   'argcode' => undef,
47031                                                                                                                                                   'lookahead' => 0,
47032                                                                                                                                                   'line' => 624
47033                                                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
47034                                                                                                                                          bless( {
47035                                                                                                                                                   'pattern' => 'THEN',
47036                                                                                                                                                   'hashname' => '__PATTERN2__',
47037                                                                                                                                                   'description' => '/THEN/i',
47038                                                                                                                                                   'lookahead' => 0,
47039                                                                                                                                                   'rdelim' => '/',
47040                                                                                                                                                   'line' => 624,
47041                                                                                                                                                   'mod' => 'i',
47042                                                                                                                                                   'ldelim' => '/'
47043                                                                                                                                                 }, 'Parse::RecDescent::Token' ),
47044                                                                                                                                          bless( {
47045                                                                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule__alternation_1_of_production_1_of_rule_simple_when_clause',
47046                                                                                                                                                   'matchrule' => 0,
47047                                                                                                                                                   'implicit' => 'result_expression, or /NULL/i',
47048                                                                                                                                                   'argcode' => undef,
47049                                                                                                                                                   'lookahead' => 0,
47050                                                                                                                                                   'line' => 627
47051                                                                                                                                                 }, 'Parse::RecDescent::Subrule' )
47052                                                                                                                                        ],
47053                                                                                                                             'line' => undef
47054                                                                                                                           }, 'Parse::RecDescent::Production' )
47055                                                                                                                  ],
47056                                                                                                       'name' => '_alternation_1_of_production_1_of_rule_simple_when_clause',
47057                                                                                                       'vars' => '',
47058                                                                                                       'line' => 624
47059                                                                                                     }, 'Parse::RecDescent::Rule' ),
47060                               '_alternation_1_of_production_9_of_rule_sysibm_function' => bless( {
47061                                                                                                    'impcount' => 0,
47062                                                                                                    'calls' => [],
47063                                                                                                    'changed' => 0,
47064                                                                                                    'opcount' => 0,
47065                                                                                                    'prods' => [
47066                                                                                                                 bless( {
47067                                                                                                                          'number' => '0',
47068                                                                                                                          'strcount' => 0,
47069                                                                                                                          'dircount' => 0,
47070                                                                                                                          'uncommit' => undef,
47071                                                                                                                          'error' => undef,
47072                                                                                                                          'patcount' => 1,
47073                                                                                                                          'actcount' => 0,
47074                                                                                                                          'items' => [
47075                                                                                                                                       bless( {
47076                                                                                                                                                'pattern' => 'CORRELATION',
47077                                                                                                                                                'hashname' => '__PATTERN1__',
47078                                                                                                                                                'description' => '/CORRELATION/i',
47079                                                                                                                                                'lookahead' => 0,
47080                                                                                                                                                'rdelim' => '/',
47081                                                                                                                                                'line' => 628,
47082                                                                                                                                                'mod' => 'i',
47083                                                                                                                                                'ldelim' => '/'
47084                                                                                                                                              }, 'Parse::RecDescent::Token' )
47085                                                                                                                                     ],
47086                                                                                                                          'line' => undef
47087                                                                                                                        }, 'Parse::RecDescent::Production' ),
47088                                                                                                                 bless( {
47089                                                                                                                          'number' => '1',
47090                                                                                                                          'strcount' => 0,
47091                                                                                                                          'dircount' => 0,
47092                                                                                                                          'uncommit' => undef,
47093                                                                                                                          'error' => undef,
47094                                                                                                                          'patcount' => 1,
47095                                                                                                                          'actcount' => 0,
47096                                                                                                                          'items' => [
47097                                                                                                                                       bless( {
47098                                                                                                                                                'pattern' => 'CORR',
47099                                                                                                                                                'hashname' => '__PATTERN1__',
47100                                                                                                                                                'description' => '/CORR/',
47101                                                                                                                                                'lookahead' => 0,
47102                                                                                                                                                'rdelim' => '/',
47103                                                                                                                                                'line' => 628,
47104                                                                                                                                                'mod' => '',
47105                                                                                                                                                'ldelim' => '/'
47106                                                                                                                                              }, 'Parse::RecDescent::Token' )
47107                                                                                                                                     ],
47108                                                                                                                          'line' => 628
47109                                                                                                                        }, 'Parse::RecDescent::Production' )
47110                                                                                                               ],
47111                                                                                                    'name' => '_alternation_1_of_production_9_of_rule_sysibm_function',
47112                                                                                                    'vars' => '',
47113                                                                                                    'line' => 628
47114                                                                                                  }, 'Parse::RecDescent::Rule' ),
47115                               '_alternation_1_of_production_7_of_rule_sysfun' => bless( {
47116                                                                                           'impcount' => 0,
47117                                                                                           'calls' => [],
47118                                                                                           'changed' => 0,
47119                                                                                           'opcount' => 0,
47120                                                                                           'prods' => [
47121                                                                                                        bless( {
47122                                                                                                                 'number' => '0',
47123                                                                                                                 'strcount' => 0,
47124                                                                                                                 'dircount' => 0,
47125                                                                                                                 'uncommit' => undef,
47126                                                                                                                 'error' => undef,
47127                                                                                                                 'patcount' => 1,
47128                                                                                                                 'actcount' => 0,
47129                                                                                                                 'items' => [
47130                                                                                                                              bless( {
47131                                                                                                                                       'pattern' => 'CEIL',
47132                                                                                                                                       'hashname' => '__PATTERN1__',
47133                                                                                                                                       'description' => '/CEIL/i',
47134                                                                                                                                       'lookahead' => 0,
47135                                                                                                                                       'rdelim' => '/',
47136                                                                                                                                       'line' => 628,
47137                                                                                                                                       'mod' => 'i',
47138                                                                                                                                       'ldelim' => '/'
47139                                                                                                                                     }, 'Parse::RecDescent::Token' )
47140                                                                                                                            ],
47141                                                                                                                 'line' => undef
47142                                                                                                               }, 'Parse::RecDescent::Production' ),
47143                                                                                                        bless( {
47144                                                                                                                 'number' => '1',
47145                                                                                                                 'strcount' => 0,
47146                                                                                                                 'dircount' => 0,
47147                                                                                                                 'uncommit' => undef,
47148                                                                                                                 'error' => undef,
47149                                                                                                                 'patcount' => 1,
47150                                                                                                                 'actcount' => 0,
47151                                                                                                                 'items' => [
47152                                                                                                                              bless( {
47153                                                                                                                                       'pattern' => 'CEILING',
47154                                                                                                                                       'hashname' => '__PATTERN1__',
47155                                                                                                                                       'description' => '/CEILING/i',
47156                                                                                                                                       'lookahead' => 0,
47157                                                                                                                                       'rdelim' => '/',
47158                                                                                                                                       'line' => 628,
47159                                                                                                                                       'mod' => 'i',
47160                                                                                                                                       'ldelim' => '/'
47161                                                                                                                                     }, 'Parse::RecDescent::Token' )
47162                                                                                                                            ],
47163                                                                                                                 'line' => 628
47164                                                                                                               }, 'Parse::RecDescent::Production' )
47165                                                                                                      ],
47166                                                                                           'name' => '_alternation_1_of_production_7_of_rule_sysfun',
47167                                                                                           'vars' => '',
47168                                                                                           'line' => 628
47169                                                                                         }, 'Parse::RecDescent::Rule' ),
47170                               'prevval_expression' => bless( {
47171                                                                'impcount' => 0,
47172                                                                'calls' => [
47173                                                                             'sequence_name'
47174                                                                           ],
47175                                                                'changed' => 0,
47176                                                                'opcount' => 0,
47177                                                                'prods' => [
47178                                                                             bless( {
47179                                                                                      'number' => '0',
47180                                                                                      'strcount' => 0,
47181                                                                                      'dircount' => 0,
47182                                                                                      'uncommit' => undef,
47183                                                                                      'error' => undef,
47184                                                                                      'patcount' => 1,
47185                                                                                      'actcount' => 0,
47186                                                                                      'items' => [
47187                                                                                                   bless( {
47188                                                                                                            'pattern' => 'PREVVAL\\s+FOR',
47189                                                                                                            'hashname' => '__PATTERN1__',
47190                                                                                                            'description' => '/PREVVAL\\\\s+FOR/i',
47191                                                                                                            'lookahead' => 0,
47192                                                                                                            'rdelim' => '/',
47193                                                                                                            'line' => 613,
47194                                                                                                            'mod' => 'i',
47195                                                                                                            'ldelim' => '/'
47196                                                                                                          }, 'Parse::RecDescent::Token' ),
47197                                                                                                   bless( {
47198                                                                                                            'subrule' => 'sequence_name',
47199                                                                                                            'matchrule' => 0,
47200                                                                                                            'implicit' => undef,
47201                                                                                                            'argcode' => undef,
47202                                                                                                            'lookahead' => 0,
47203                                                                                                            'line' => 613
47204                                                                                                          }, 'Parse::RecDescent::Subrule' )
47205                                                                                                 ],
47206                                                                                      'line' => undef
47207                                                                                    }, 'Parse::RecDescent::Production' )
47208                                                                           ],
47209                                                                'name' => 'prevval_expression',
47210                                                                'vars' => '',
47211                                                                'line' => 613
47212                                                              }, 'Parse::RecDescent::Rule' ),
47213                               'where_clause' => bless( {
47214                                                          'impcount' => 0,
47215                                                          'calls' => [
47216                                                                       'WHERE',
47217                                                                       'search_condition'
47218                                                                     ],
47219                                                          'changed' => 0,
47220                                                          'opcount' => 0,
47221                                                          'prods' => [
47222                                                                       bless( {
47223                                                                                'number' => '0',
47224                                                                                'strcount' => 0,
47225                                                                                'dircount' => 0,
47226                                                                                'uncommit' => undef,
47227                                                                                'error' => undef,
47228                                                                                'patcount' => 0,
47229                                                                                'actcount' => 0,
47230                                                                                'items' => [
47231                                                                                             bless( {
47232                                                                                                      'subrule' => 'WHERE',
47233                                                                                                      'matchrule' => 0,
47234                                                                                                      'implicit' => undef,
47235                                                                                                      'argcode' => undef,
47236                                                                                                      'lookahead' => 0,
47237                                                                                                      'line' => 218
47238                                                                                                    }, 'Parse::RecDescent::Subrule' ),
47239                                                                                             bless( {
47240                                                                                                      'subrule' => 'search_condition',
47241                                                                                                      'matchrule' => 0,
47242                                                                                                      'implicit' => undef,
47243                                                                                                      'argcode' => undef,
47244                                                                                                      'lookahead' => 0,
47245                                                                                                      'line' => 218
47246                                                                                                    }, 'Parse::RecDescent::Subrule' )
47247                                                                                           ],
47248                                                                                'line' => undef
47249                                                                              }, 'Parse::RecDescent::Production' )
47250                                                                     ],
47251                                                          'name' => 'where_clause',
47252                                                          'vars' => '',
47253                                                          'line' => 216
47254                                                        }, 'Parse::RecDescent::Rule' ),
47255                               'group_start' => bless( {
47256                                                         'impcount' => 0,
47257                                                         'calls' => [
47258                                                                      'unsigned_constant'
47259                                                                    ],
47260                                                         'changed' => 0,
47261                                                         'opcount' => 0,
47262                                                         'prods' => [
47263                                                                      bless( {
47264                                                                               'number' => '0',
47265                                                                               'strcount' => 0,
47266                                                                               'dircount' => 0,
47267                                                                               'uncommit' => undef,
47268                                                                               'error' => undef,
47269                                                                               'patcount' => 1,
47270                                                                               'actcount' => 0,
47271                                                                               'items' => [
47272                                                                                            bless( {
47273                                                                                                     'pattern' => 'UNBOUNDED\\s+PRECEDING',
47274                                                                                                     'hashname' => '__PATTERN1__',
47275                                                                                                     'description' => '/UNBOUNDED\\\\s+PRECEDING/i',
47276                                                                                                     'lookahead' => 0,
47277                                                                                                     'rdelim' => '/',
47278                                                                                                     'line' => 574,
47279                                                                                                     'mod' => 'i',
47280                                                                                                     'ldelim' => '/'
47281                                                                                                   }, 'Parse::RecDescent::Token' )
47282                                                                                          ],
47283                                                                               'line' => undef
47284                                                                             }, 'Parse::RecDescent::Production' ),
47285                                                                      bless( {
47286                                                                               'number' => '1',
47287                                                                               'strcount' => 0,
47288                                                                               'dircount' => 0,
47289                                                                               'uncommit' => undef,
47290                                                                               'error' => undef,
47291                                                                               'patcount' => 1,
47292                                                                               'actcount' => 0,
47293                                                                               'items' => [
47294                                                                                            bless( {
47295                                                                                                     'subrule' => 'unsigned_constant',
47296                                                                                                     'matchrule' => 0,
47297                                                                                                     'implicit' => undef,
47298                                                                                                     'argcode' => undef,
47299                                                                                                     'lookahead' => 0,
47300                                                                                                     'line' => 575
47301                                                                                                   }, 'Parse::RecDescent::Subrule' ),
47302                                                                                            bless( {
47303                                                                                                     'pattern' => 'PRECEDING',
47304                                                                                                     'hashname' => '__PATTERN1__',
47305                                                                                                     'description' => '/PRECEDING/i',
47306                                                                                                     'lookahead' => 0,
47307                                                                                                     'rdelim' => '/',
47308                                                                                                     'line' => 575,
47309                                                                                                     'mod' => 'i',
47310                                                                                                     'ldelim' => '/'
47311                                                                                                   }, 'Parse::RecDescent::Token' )
47312                                                                                          ],
47313                                                                               'line' => 575
47314                                                                             }, 'Parse::RecDescent::Production' ),
47315                                                                      bless( {
47316                                                                               'number' => '2',
47317                                                                               'strcount' => 0,
47318                                                                               'dircount' => 0,
47319                                                                               'uncommit' => undef,
47320                                                                               'error' => undef,
47321                                                                               'patcount' => 1,
47322                                                                               'actcount' => 0,
47323                                                                               'items' => [
47324                                                                                            bless( {
47325                                                                                                     'pattern' => 'CURRENT\\s+ROW',
47326                                                                                                     'hashname' => '__PATTERN1__',
47327                                                                                                     'description' => '/CURRENT\\\\s+ROW/i',
47328                                                                                                     'lookahead' => 0,
47329                                                                                                     'rdelim' => '/',
47330                                                                                                     'line' => 576,
47331                                                                                                     'mod' => 'i',
47332                                                                                                     'ldelim' => '/'
47333                                                                                                   }, 'Parse::RecDescent::Token' )
47334                                                                                          ],
47335                                                                               'line' => 576
47336                                                                             }, 'Parse::RecDescent::Production' )
47337                                                                    ],
47338                                                         'name' => 'group_start',
47339                                                         'vars' => '',
47340                                                         'line' => 574
47341                                                       }, 'Parse::RecDescent::Rule' ),
47342                               'correlation_name' => bless( {
47343                                                              'impcount' => 0,
47344                                                              'calls' => [
47345                                                                           'NAME'
47346                                                                         ],
47347                                                              'changed' => 0,
47348                                                              'opcount' => 0,
47349                                                              'prods' => [
47350                                                                           bless( {
47351                                                                                    'number' => '0',
47352                                                                                    'strcount' => 0,
47353                                                                                    'dircount' => 0,
47354                                                                                    'uncommit' => undef,
47355                                                                                    'error' => undef,
47356                                                                                    'patcount' => 0,
47357                                                                                    'actcount' => 0,
47358                                                                                    'items' => [
47359                                                                                                 bless( {
47360                                                                                                          'subrule' => 'NAME',
47361                                                                                                          'matchrule' => 0,
47362                                                                                                          'implicit' => undef,
47363                                                                                                          'argcode' => undef,
47364                                                                                                          'lookahead' => 0,
47365                                                                                                          'line' => 138
47366                                                                                                        }, 'Parse::RecDescent::Subrule' )
47367                                                                                               ],
47368                                                                                    'line' => undef
47369                                                                                  }, 'Parse::RecDescent::Production' )
47370                                                                         ],
47371                                                              'name' => 'correlation_name',
47372                                                              'vars' => '',
47373                                                              'line' => 138
47374                                                            }, 'Parse::RecDescent::Rule' ),
47375                               'SQL_procedure_statement' => bless( {
47376                                                                     'impcount' => 0,
47377                                                                     'calls' => [],
47378                                                                     'changed' => 0,
47379                                                                     'opcount' => 0,
47380                                                                     'prods' => [
47381                                                                                  bless( {
47382                                                                                           'number' => '0',
47383                                                                                           'strcount' => 0,
47384                                                                                           'dircount' => 0,
47385                                                                                           'uncommit' => undef,
47386                                                                                           'error' => undef,
47387                                                                                           'patcount' => 2,
47388                                                                                           'actcount' => 1,
47389                                                                                           'items' => [
47390                                                                                                        bless( {
47391                                                                                                                 'pattern' => '[^;]*',
47392                                                                                                                 'hashname' => '__PATTERN1__',
47393                                                                                                                 'description' => '/[^;]*/',
47394                                                                                                                 'lookahead' => 0,
47395                                                                                                                 'rdelim' => '/',
47396                                                                                                                 'line' => 94,
47397                                                                                                                 'mod' => '',
47398                                                                                                                 'ldelim' => '/'
47399                                                                                                               }, 'Parse::RecDescent::Token' ),
47400                                                                                                        bless( {
47401                                                                                                                 'pattern' => '(;|\\z)',
47402                                                                                                                 'hashname' => '__PATTERN2__',
47403                                                                                                                 'description' => '/(;|\\\\z)/',
47404                                                                                                                 'lookahead' => 0,
47405                                                                                                                 'rdelim' => '/',
47406                                                                                                                 'line' => 94,
47407                                                                                                                 'mod' => '',
47408                                                                                                                 'ldelim' => '/'
47409                                                                                                               }, 'Parse::RecDescent::Token' ),
47410                                                                                                        bless( {
47411                                                                                                                 'hashname' => '__ACTION1__',
47412                                                                                                                 'lookahead' => 0,
47413                                                                                                                 'line' => 94,
47414                                                                                                                 'code' => '{ $return = $item[1] . $item[2] }'
47415                                                                                                               }, 'Parse::RecDescent::Action' )
47416                                                                                                      ],
47417                                                                                           'line' => undef
47418                                                                                         }, 'Parse::RecDescent::Production' )
47419                                                                                ],
47420                                                                     'name' => 'SQL_procedure_statement',
47421                                                                     'vars' => '',
47422                                                                     'line' => 94
47423                                                                   }, 'Parse::RecDescent::Rule' ),
47424                               'group_between' => bless( {
47425                                                           'impcount' => 0,
47426                                                           'calls' => [
47427                                                                        'group_bound1',
47428                                                                        'group_bound2'
47429                                                                      ],
47430                                                           'changed' => 0,
47431                                                           'opcount' => 0,
47432                                                           'prods' => [
47433                                                                        bless( {
47434                                                                                 'number' => '0',
47435                                                                                 'strcount' => 0,
47436                                                                                 'dircount' => 0,
47437                                                                                 'uncommit' => undef,
47438                                                                                 'error' => undef,
47439                                                                                 'patcount' => 2,
47440                                                                                 'actcount' => 0,
47441                                                                                 'items' => [
47442                                                                                              bless( {
47443                                                                                                       'pattern' => 'BETWEEN',
47444                                                                                                       'hashname' => '__PATTERN1__',
47445                                                                                                       'description' => '/BETWEEN/i',
47446                                                                                                       'lookahead' => 0,
47447                                                                                                       'rdelim' => '/',
47448                                                                                                       'line' => 578,
47449                                                                                                       'mod' => 'i',
47450                                                                                                       'ldelim' => '/'
47451                                                                                                     }, 'Parse::RecDescent::Token' ),
47452                                                                                              bless( {
47453                                                                                                       'subrule' => 'group_bound1',
47454                                                                                                       'matchrule' => 0,
47455                                                                                                       'implicit' => undef,
47456                                                                                                       'argcode' => undef,
47457                                                                                                       'lookahead' => 0,
47458                                                                                                       'line' => 578
47459                                                                                                     }, 'Parse::RecDescent::Subrule' ),
47460                                                                                              bless( {
47461                                                                                                       'pattern' => 'AND',
47462                                                                                                       'hashname' => '__PATTERN2__',
47463                                                                                                       'description' => '/AND/i',
47464                                                                                                       'lookahead' => 0,
47465                                                                                                       'rdelim' => '/',
47466                                                                                                       'line' => 578,
47467                                                                                                       'mod' => 'i',
47468                                                                                                       'ldelim' => '/'
47469                                                                                                     }, 'Parse::RecDescent::Token' ),
47470                                                                                              bless( {
47471                                                                                                       'subrule' => 'group_bound2',
47472                                                                                                       'matchrule' => 0,
47473                                                                                                       'implicit' => undef,
47474                                                                                                       'argcode' => undef,
47475                                                                                                       'lookahead' => 0,
47476                                                                                                       'line' => 578
47477                                                                                                     }, 'Parse::RecDescent::Subrule' )
47478                                                                                            ],
47479                                                                                 'line' => undef
47480                                                                               }, 'Parse::RecDescent::Production' )
47481                                                                      ],
47482                                                           'name' => 'group_between',
47483                                                           'vars' => '',
47484                                                           'line' => 578
47485                                                         }, 'Parse::RecDescent::Rule' ),
47486                               'nextval_expression' => bless( {
47487                                                                'impcount' => 0,
47488                                                                'calls' => [
47489                                                                             'sequence_name'
47490                                                                           ],
47491                                                                'changed' => 0,
47492                                                                'opcount' => 0,
47493                                                                'prods' => [
47494                                                                             bless( {
47495                                                                                      'number' => '0',
47496                                                                                      'strcount' => 0,
47497                                                                                      'dircount' => 0,
47498                                                                                      'uncommit' => undef,
47499                                                                                      'error' => undef,
47500                                                                                      'patcount' => 1,
47501                                                                                      'actcount' => 0,
47502                                                                                      'items' => [
47503                                                                                                   bless( {
47504                                                                                                            'pattern' => 'NEXTVAL\\s+FOR',
47505                                                                                                            'hashname' => '__PATTERN1__',
47506                                                                                                            'description' => '/NEXTVAL\\\\s+FOR/i',
47507                                                                                                            'lookahead' => 0,
47508                                                                                                            'rdelim' => '/',
47509                                                                                                            'line' => 611,
47510                                                                                                            'mod' => 'i',
47511                                                                                                            'ldelim' => '/'
47512                                                                                                          }, 'Parse::RecDescent::Token' ),
47513                                                                                                   bless( {
47514                                                                                                            'subrule' => 'sequence_name',
47515                                                                                                            'matchrule' => 0,
47516                                                                                                            'implicit' => undef,
47517                                                                                                            'argcode' => undef,
47518                                                                                                            'lookahead' => 0,
47519                                                                                                            'line' => 611
47520                                                                                                          }, 'Parse::RecDescent::Subrule' )
47521                                                                                                 ],
47522                                                                                      'line' => undef
47523                                                                                    }, 'Parse::RecDescent::Production' )
47524                                                                           ],
47525                                                                'name' => 'nextval_expression',
47526                                                                'vars' => '',
47527                                                                'line' => 611
47528                                                              }, 'Parse::RecDescent::Rule' ),
47529                               'desc_option' => bless( {
47530                                                         'impcount' => 1,
47531                                                         'calls' => [
47532                                                                      '_alternation_1_of_production_1_of_rule_desc_option'
47533                                                                    ],
47534                                                         'changed' => 0,
47535                                                         'opcount' => 0,
47536                                                         'prods' => [
47537                                                                      bless( {
47538                                                                               'number' => '0',
47539                                                                               'strcount' => 0,
47540                                                                               'dircount' => 0,
47541                                                                               'uncommit' => undef,
47542                                                                               'error' => undef,
47543                                                                               'patcount' => 1,
47544                                                                               'actcount' => 0,
47545                                                                               'items' => [
47546                                                                                            bless( {
47547                                                                                                     'pattern' => 'DESC',
47548                                                                                                     'hashname' => '__PATTERN1__',
47549                                                                                                     'description' => '/DESC/i',
47550                                                                                                     'lookahead' => 0,
47551                                                                                                     'rdelim' => '/',
47552                                                                                                     'line' => 564,
47553                                                                                                     'mod' => 'i',
47554                                                                                                     'ldelim' => '/'
47555                                                                                                   }, 'Parse::RecDescent::Token' ),
47556                                                                                            bless( {
47557                                                                                                     'subrule' => '_alternation_1_of_production_1_of_rule_desc_option',
47558                                                                                                     'expected' => '/NULLS\\\\s+FIRST/i, or /NULLS\\\\s+LAST/i',
47559                                                                                                     'min' => 0,
47560                                                                                                     'argcode' => undef,
47561                                                                                                     'max' => 1,
47562                                                                                                     'matchrule' => 0,
47563                                                                                                     'repspec' => '?',
47564                                                                                                     'lookahead' => 0,
47565                                                                                                     'line' => 564
47566                                                                                                   }, 'Parse::RecDescent::Repetition' )
47567                                                                                          ],
47568                                                                               'line' => undef
47569                                                                             }, 'Parse::RecDescent::Production' )
47570                                                                    ],
47571                                                         'name' => 'desc_option',
47572                                                         'vars' => '',
47573                                                         'line' => 564
47574                                                       }, 'Parse::RecDescent::Rule' ),
47575                               'column_list' => bless( {
47576                                                         'impcount' => 0,
47577                                                         'calls' => [
47578                                                                      'column_name'
47579                                                                    ],
47580                                                         'changed' => 0,
47581                                                         'opcount' => 0,
47582                                                         'prods' => [
47583                                                                      bless( {
47584                                                                               'number' => '0',
47585                                                                               'strcount' => 2,
47586                                                                               'dircount' => 1,
47587                                                                               'uncommit' => undef,
47588                                                                               'error' => undef,
47589                                                                               'patcount' => 1,
47590                                                                               'actcount' => 1,
47591                                                                               'op' => [],
47592                                                                               'items' => [
47593                                                                                            bless( {
47594                                                                                                     'pattern' => '(',
47595                                                                                                     'hashname' => '__STRING1__',
47596                                                                                                     'description' => '\'(\'',
47597                                                                                                     'lookahead' => 0,
47598                                                                                                     'line' => 96
47599                                                                                                   }, 'Parse::RecDescent::Literal' ),
47600                                                                                            bless( {
47601                                                                                                     'expected' => '<leftop: column_name /,/ column_name>',
47602                                                                                                     'min' => 1,
47603                                                                                                     'name' => '\'column_name(s)\'',
47604                                                                                                     'max' => 100000000,
47605                                                                                                     'leftarg' => bless( {
47606                                                                                                                           'subrule' => 'column_name',
47607                                                                                                                           'matchrule' => 0,
47608                                                                                                                           'implicit' => undef,
47609                                                                                                                           'argcode' => undef,
47610                                                                                                                           'lookahead' => 0,
47611                                                                                                                           'line' => 96
47612                                                                                                                         }, 'Parse::RecDescent::Subrule' ),
47613                                                                                                     'rightarg' => bless( {
47614                                                                                                                            'subrule' => 'column_name',
47615                                                                                                                            'matchrule' => 0,
47616                                                                                                                            'implicit' => undef,
47617                                                                                                                            'argcode' => undef,
47618                                                                                                                            'lookahead' => 0,
47619                                                                                                                            'line' => 96
47620                                                                                                                          }, 'Parse::RecDescent::Subrule' ),
47621                                                                                                     'hashname' => '__DIRECTIVE1__',
47622                                                                                                     'type' => 'leftop',
47623                                                                                                     'op' => bless( {
47624                                                                                                                      'pattern' => ',',
47625                                                                                                                      'hashname' => '__PATTERN1__',
47626                                                                                                                      'description' => '/,/',
47627                                                                                                                      'lookahead' => 0,
47628                                                                                                                      'rdelim' => '/',
47629                                                                                                                      'line' => 96,
47630                                                                                                                      'mod' => '',
47631                                                                                                                      'ldelim' => '/'
47632                                                                                                                    }, 'Parse::RecDescent::Token' )
47633                                                                                                   }, 'Parse::RecDescent::Operator' ),
47634                                                                                            bless( {
47635                                                                                                     'pattern' => ')',
47636                                                                                                     'hashname' => '__STRING2__',
47637                                                                                                     'description' => '\')\'',
47638                                                                                                     'lookahead' => 0,
47639                                                                                                     'line' => 96
47640                                                                                                   }, 'Parse::RecDescent::Literal' ),
47641                                                                                            bless( {
47642                                                                                                     'hashname' => '__ACTION1__',
47643                                                                                                     'lookahead' => 0,
47644                                                                                                     'line' => 97,
47645                                                                                                     'code' => '{
47646     $return = join(\' \', \'(\', @{$item[2]}, \')\');
47647 }'
47648                                                                                                   }, 'Parse::RecDescent::Action' )
47649                                                                                          ],
47650                                                                               'line' => undef
47651                                                                             }, 'Parse::RecDescent::Production' )
47652                                                                    ],
47653                                                         'name' => 'column_list',
47654                                                         'vars' => '',
47655                                                         'line' => 96
47656                                                       }, 'Parse::RecDescent::Rule' ),
47657                               '_alternation_1_of_production_63_of_rule_sysibm_function' => bless( {
47658                                                                                                     'impcount' => 0,
47659                                                                                                     'calls' => [],
47660                                                                                                     'changed' => 0,
47661                                                                                                     'opcount' => 0,
47662                                                                                                     'prods' => [
47663                                                                                                                  bless( {
47664                                                                                                                           'number' => '0',
47665                                                                                                                           'strcount' => 0,
47666                                                                                                                           'dircount' => 0,
47667                                                                                                                           'uncommit' => undef,
47668                                                                                                                           'error' => undef,
47669                                                                                                                           'patcount' => 1,
47670                                                                                                                           'actcount' => 0,
47671                                                                                                                           'items' => [
47672                                                                                                                                        bless( {
47673                                                                                                                                                 'pattern' => 'REGR_INTERCEPT',
47674                                                                                                                                                 'hashname' => '__PATTERN1__',
47675                                                                                                                                                 'description' => '/REGR_INTERCEPT/i',
47676                                                                                                                                                 'lookahead' => 0,
47677                                                                                                                                                 'rdelim' => '/',
47678                                                                                                                                                 'line' => 628,
47679                                                                                                                                                 'mod' => 'i',
47680                                                                                                                                                 'ldelim' => '/'
47681                                                                                                                                               }, 'Parse::RecDescent::Token' )
47682                                                                                                                                      ],
47683                                                                                                                           'line' => undef
47684                                                                                                                         }, 'Parse::RecDescent::Production' ),
47685                                                                                                                  bless( {
47686                                                                                                                           'number' => '1',
47687                                                                                                                           'strcount' => 0,
47688                                                                                                                           'dircount' => 0,
47689                                                                                                                           'uncommit' => undef,
47690                                                                                                                           'error' => undef,
47691                                                                                                                           'patcount' => 1,
47692                                                                                                                           'actcount' => 0,
47693                                                                                                                           'items' => [
47694                                                                                                                                        bless( {
47695                                                                                                                                                 'pattern' => 'REGR_ICPT',
47696                                                                                                                                                 'hashname' => '__PATTERN1__',
47697                                                                                                                                                 'description' => '/REGR_ICPT/i',
47698                                                                                                                                                 'lookahead' => 0,
47699                                                                                                                                                 'rdelim' => '/',
47700                                                                                                                                                 'line' => 628,
47701                                                                                                                                                 'mod' => 'i',
47702                                                                                                                                                 'ldelim' => '/'
47703                                                                                                                                               }, 'Parse::RecDescent::Token' )
47704                                                                                                                                      ],
47705                                                                                                                           'line' => 628
47706                                                                                                                         }, 'Parse::RecDescent::Production' )
47707                                                                                                                ],
47708                                                                                                     'name' => '_alternation_1_of_production_63_of_rule_sysibm_function',
47709                                                                                                     'vars' => '',
47710                                                                                                     'line' => 628
47711                                                                                                   }, 'Parse::RecDescent::Rule' ),
47712                               'dereference_operation' => bless( {
47713                                                                   'impcount' => 1,
47714                                                                   'calls' => [
47715                                                                                'scoped_reference_expression',
47716                                                                                'name1',
47717                                                                                '_alternation_1_of_production_1_of_rule_dereference_operation'
47718                                                                              ],
47719                                                                   'changed' => 0,
47720                                                                   'opcount' => 0,
47721                                                                   'prods' => [
47722                                                                                bless( {
47723                                                                                         'number' => '0',
47724                                                                                         'strcount' => 1,
47725                                                                                         'dircount' => 0,
47726                                                                                         'uncommit' => undef,
47727                                                                                         'error' => undef,
47728                                                                                         'patcount' => 0,
47729                                                                                         'actcount' => 0,
47730                                                                                         'items' => [
47731                                                                                                      bless( {
47732                                                                                                               'subrule' => 'scoped_reference_expression',
47733                                                                                                               'matchrule' => 0,
47734                                                                                                               'implicit' => undef,
47735                                                                                                               'argcode' => undef,
47736                                                                                                               'lookahead' => 0,
47737                                                                                                               'line' => 526
47738                                                                                                             }, 'Parse::RecDescent::Subrule' ),
47739                                                                                                      bless( {
47740                                                                                                               'pattern' => '->',
47741                                                                                                               'hashname' => '__STRING1__',
47742                                                                                                               'description' => '\'->\'',
47743                                                                                                               'lookahead' => 0,
47744                                                                                                               'line' => 526
47745                                                                                                             }, 'Parse::RecDescent::Literal' ),
47746                                                                                                      bless( {
47747                                                                                                               'subrule' => 'name1',
47748                                                                                                               'matchrule' => 0,
47749                                                                                                               'implicit' => undef,
47750                                                                                                               'argcode' => undef,
47751                                                                                                               'lookahead' => 0,
47752                                                                                                               'line' => 526
47753                                                                                                             }, 'Parse::RecDescent::Subrule' ),
47754                                                                                                      bless( {
47755                                                                                                               'subrule' => '_alternation_1_of_production_1_of_rule_dereference_operation',
47756                                                                                                               'expected' => '\'(\'',
47757                                                                                                               'min' => 0,
47758                                                                                                               'argcode' => undef,
47759                                                                                                               'max' => 1,
47760                                                                                                               'matchrule' => 0,
47761                                                                                                               'repspec' => '?',
47762                                                                                                               'lookahead' => 0,
47763                                                                                                               'line' => 527
47764                                                                                                             }, 'Parse::RecDescent::Repetition' )
47765                                                                                                    ],
47766                                                                                         'line' => undef
47767                                                                                       }, 'Parse::RecDescent::Production' )
47768                                                                              ],
47769                                                                   'name' => 'dereference_operation',
47770                                                                   'vars' => '',
47771                                                                   'line' => 526
47772                                                                 }, 'Parse::RecDescent::Rule' ),
47773                               'OUTER' => bless( {
47774                                                   'impcount' => 0,
47775                                                   'calls' => [],
47776                                                   'changed' => 0,
47777                                                   'opcount' => 0,
47778                                                   'prods' => [
47779                                                                bless( {
47780                                                                         'number' => '0',
47781                                                                         'strcount' => 0,
47782                                                                         'dircount' => 0,
47783                                                                         'uncommit' => undef,
47784                                                                         'error' => undef,
47785                                                                         'patcount' => 1,
47786                                                                         'actcount' => 0,
47787                                                                         'items' => [
47788                                                                                      bless( {
47789                                                                                               'pattern' => 'outer',
47790                                                                                               'hashname' => '__PATTERN1__',
47791                                                                                               'description' => '/outer/i',
47792                                                                                               'lookahead' => 0,
47793                                                                                               'rdelim' => '/',
47794                                                                                               'line' => 115,
47795                                                                                               'mod' => 'i',
47796                                                                                               'ldelim' => '/'
47797                                                                                             }, 'Parse::RecDescent::Token' )
47798                                                                                    ],
47799                                                                         'line' => undef
47800                                                                       }, 'Parse::RecDescent::Production' )
47801                                                              ],
47802                                                   'name' => 'OUTER',
47803                                                   'vars' => '',
47804                                                   'line' => 115
47805                                                 }, 'Parse::RecDescent::Rule' ),
47806                               'window_order_clause' => bless( {
47807                                                                 'impcount' => 1,
47808                                                                 'calls' => [
47809                                                                              '_alternation_1_of_production_1_of_rule_window_order_clause'
47810                                                                            ],
47811                                                                 'changed' => 0,
47812                                                                 'opcount' => 0,
47813                                                                 'prods' => [
47814                                                                              bless( {
47815                                                                                       'number' => '0',
47816                                                                                       'strcount' => 0,
47817                                                                                       'dircount' => 1,
47818                                                                                       'uncommit' => undef,
47819                                                                                       'error' => undef,
47820                                                                                       'patcount' => 2,
47821                                                                                       'actcount' => 0,
47822                                                                                       'op' => [],
47823                                                                                       'items' => [
47824                                                                                                    bless( {
47825                                                                                                             'pattern' => 'ORDER\\s+BY',
47826                                                                                                             'hashname' => '__PATTERN1__',
47827                                                                                                             'description' => '/ORDER\\\\s+BY/i',
47828                                                                                                             'lookahead' => 0,
47829                                                                                                             'rdelim' => '/',
47830                                                                                                             'line' => 555,
47831                                                                                                             'mod' => 'i',
47832                                                                                                             'ldelim' => '/'
47833                                                                                                           }, 'Parse::RecDescent::Token' ),
47834                                                                                                    bless( {
47835                                                                                                             'expected' => '<leftop: sort_key_expression /,/ sort_key_expression>',
47836                                                                                                             'min' => 1,
47837                                                                                                             'name' => '\'_alternation_1_of_production_1_of_rule_window_order_clause(s)\'',
47838                                                                                                             'max' => 100000000,
47839                                                                                                             'leftarg' => bless( {
47840                                                                                                                                   'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
47841                                                                                                                                   'matchrule' => 0,
47842                                                                                                                                   'implicit' => 'sort_key_expression',
47843                                                                                                                                   'argcode' => undef,
47844                                                                                                                                   'lookahead' => 0,
47845                                                                                                                                   'line' => 560
47846                                                                                                                                 }, 'Parse::RecDescent::Subrule' ),
47847                                                                                                             'rightarg' => bless( {
47848                                                                                                                                    'subrule' => '_alternation_1_of_production_1_of_rule_window_order_clause',
47849                                                                                                                                    'matchrule' => 0,
47850                                                                                                                                    'implicit' => 'sort_key_expression',
47851                                                                                                                                    'argcode' => undef,
47852                                                                                                                                    'lookahead' => 0,
47853                                                                                                                                    'line' => 560
47854                                                                                                                                  }, 'Parse::RecDescent::Subrule' ),
47855                                                                                                             'hashname' => '__DIRECTIVE1__',
47856                                                                                                             'type' => 'leftop',
47857                                                                                                             'op' => bless( {
47858                                                                                                                              'pattern' => ',',
47859                                                                                                                              'hashname' => '__PATTERN2__',
47860                                                                                                                              'description' => '/,/',
47861                                                                                                                              'lookahead' => 0,
47862                                                                                                                              'rdelim' => '/',
47863                                                                                                                              'line' => 560,
47864                                                                                                                              'mod' => '',
47865                                                                                                                              'ldelim' => '/'
47866                                                                                                                            }, 'Parse::RecDescent::Token' )
47867                                                                                                           }, 'Parse::RecDescent::Operator' )
47868                                                                                                  ],
47869                                                                                       'line' => undef
47870                                                                                     }, 'Parse::RecDescent::Production' )
47871                                                                            ],
47872                                                                 'name' => 'window_order_clause',
47873                                                                 'vars' => '',
47874                                                                 'line' => 555
47875                                                               }, 'Parse::RecDescent::Rule' ),
47876                               'TRIGGER' => bless( {
47877                                                     'impcount' => 0,
47878                                                     'calls' => [],
47879                                                     'changed' => 0,
47880                                                     'opcount' => 0,
47881                                                     'prods' => [
47882                                                                  bless( {
47883                                                                           'number' => '0',
47884                                                                           'strcount' => 0,
47885                                                                           'dircount' => 0,
47886                                                                           'uncommit' => undef,
47887                                                                           'error' => undef,
47888                                                                           'patcount' => 1,
47889                                                                           'actcount' => 0,
47890                                                                           'items' => [
47891                                                                                        bless( {
47892                                                                                                 'pattern' => 'trigger',
47893                                                                                                 'hashname' => '__PATTERN1__',
47894                                                                                                 'description' => '/trigger/i',
47895                                                                                                 'lookahead' => 0,
47896                                                                                                 'rdelim' => '/',
47897                                                                                                 'line' => 103,
47898                                                                                                 'mod' => 'i',
47899                                                                                                 'ldelim' => '/'
47900                                                                                               }, 'Parse::RecDescent::Token' )
47901                                                                                      ],
47902                                                                           'line' => undef
47903                                                                         }, 'Parse::RecDescent::Production' )
47904                                                                ],
47905                                                     'name' => 'TRIGGER',
47906                                                     'vars' => '',
47907                                                     'line' => 103
47908                                                   }, 'Parse::RecDescent::Rule' ),
47909                               'comment' => bless( {
47910                                                     'impcount' => 0,
47911                                                     'calls' => [],
47912                                                     'changed' => 0,
47913                                                     'opcount' => 0,
47914                                                     'prods' => [
47915                                                                  bless( {
47916                                                                           'number' => '0',
47917                                                                           'strcount' => 0,
47918                                                                           'dircount' => 0,
47919                                                                           'uncommit' => undef,
47920                                                                           'error' => undef,
47921                                                                           'patcount' => 1,
47922                                                                           'actcount' => 1,
47923                                                                           'items' => [
47924                                                                                        bless( {
47925                                                                                                 'pattern' => '^\\s*-{2}.*\\n',
47926                                                                                                 'hashname' => '__PATTERN1__',
47927                                                                                                 'description' => '/^\\\\s*-\\{2\\}.*\\\\n/',
47928                                                                                                 'lookahead' => 0,
47929                                                                                                 'rdelim' => '/',
47930                                                                                                 'line' => 27,
47931                                                                                                 'mod' => '',
47932                                                                                                 'ldelim' => '/'
47933                                                                                               }, 'Parse::RecDescent::Token' ),
47934                                                                                        bless( {
47935                                                                                                 'hashname' => '__ACTION1__',
47936                                                                                                 'lookahead' => 0,
47937                                                                                                 'line' => 28,
47938                                                                                                 'code' => '{
47939         my $comment =  $item[1];
47940         $comment    =~ s/^\\s*(-{2})\\s*//;
47941         $comment    =~ s/\\s*$//;
47942         $return     = $comment;
47943     }'
47944                                                                                               }, 'Parse::RecDescent::Action' )
47945                                                                                      ],
47946                                                                           'line' => undef
47947                                                                         }, 'Parse::RecDescent::Production' )
47948                                                                ],
47949                                                     'name' => 'comment',
47950                                                     'vars' => '',
47951                                                     'line' => 27
47952                                                   }, 'Parse::RecDescent::Rule' )
47953                             }
47954                }, 'Parse::RecDescent' );
47955 }