add quoted reference to check if the table name contain a full declaration, it quote...
[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 }